Actualmente estoy considerando un circuito controlado por MCU que hará una variedad de cosas, incluido el accionamiento de algunos motores BLDC y la detección analógica (de sensores de posición, temperaturas y similares).
Los diseñadores del chip que me gustaría usar (un STM32F4, FWIW) han considerado apropiado colocar los siguientes dos pines uno al lado del otro:
Algunas cositas más:
Ahora, voy a seguir adelante y postular que poner un pin PWM justo al lado de una entrada ADC es una mala práctica, pero me pregunto:
Editar:
Así es como se ve la parte de MCU. He resaltado el pin del temporizador ofensivo:
De hecho, ha identificado un problema legítimo de diafonía. Estrictamente hablando, la magnitud de acoplamiento de la diafonía no es una función de la frecuencia de la señal. Es una función de qué tan rápido va la señal de alto a bajo o de bajo a alto. Incluso una señal PWM de 1 Hz se acoplaría a una línea cercana durante los flancos de subida y bajada. Obviamente, para su señal de 20 kHz, sucede 40 000 veces por segundo, lo que sin duda puede ser un problema. Como punto de interés académico, una buena señal de onda sinusoidal suave no inducirá tanta diafonía como una onda cuadrada con la misma frecuencia.
Además del tiempo de subida y bajada de los bordes de la onda cuadrada, la diafonía también es una función de la distancia entre las trazas de la señal, la distancia que recorren las dos trazas juntas y su distancia por encima de su plano de referencia.
Dado que el pin PWM y el pin ADC están físicamente uno al lado del otro, sus rastros estarán muy cerca durante cierto tiempo y no hay nada que pueda hacer al respecto. Obviamente, cualquier método para separar los dos rastros lo antes posible ayudará. También puede reducir el efecto de acoplamiento asegurándose de que el plano de referencia esté muy cerca. En una PCB, eso significa usar una placa de 4 capas (o más) para que un plano de tierra se pueda colocar a no más de un espesor de preimpregnado (generalmente solo unas pocas milésimas de pulgada). En una placa de 2 capas, el plano de tierra será el lado opuesto de la placa, que normalmente está a 63 mils de distancia y es muy malo para la diafonía.
Hay una muy buena calculadora en línea gratuita llamada Saturn PCB Design Toolkit que le permitirá aproximar la magnitud de la diafonía. Puede tener una idea de qué tan mal se volverá la diafonía en función de su diseño. No puede conocer el tiempo de transición sin conocer la fuerza de la unidad del controlador de salida y la impedancia exacta de la traza conectada al pin PWM, pero puede usar algo como 10 ns más o menos como una aproximación conservadora.
Si se necesita una precisión muy alta en las lecturas del ADC y la magnitud de la diafonía calculada es demasiado alta, quizás lo mejor que se puede hacer es elegir otra MCU. Hay toneladas más disponibles del mismo fabricante, por lo que debería ser trivial encontrar uno con un pin PWM y ADC separados entre sí. Si hay alguna razón por la que debe usar esa MCU específica, entonces tendrá que determinar con cuánta diafonía puede vivir y diseñar para eso.
¡Me sorprende que nadie aquí haya mencionado nada sobre el nivel de impedancia en las líneas ADC! Obviamente, es más fácil perturbar una línea de alta impedancia en una entrada que perturbar una línea de baja impedancia. Si sus sensores tienen salidas de alta impedancia, recomendaría amortiguar su voltaje de salida localmente (cerca del sensor). Si sus sensores tienen salidas de baja impedancia de salida, es posible que no sea necesario el almacenamiento en búfer.
También podría considerar almacenar en búfer las señales del sensor de todos modos a una distancia corta de la MCU y asegurarse de que las señales permanezcan "limpias". Luego diríjalos a las entradas del ADC.
Debe establecer la velocidad GPIO en el valor más bajo para tener un tiempo de subida y bajada más largo. Esto debería ayudar con el problema de la diafonía. Esta diafonía es inductiva, si su línea PWM no es una línea de baja impedancia, no debería tener ningún problema.
Chetan Bhargava
PKL
PKL
Chetan Bhargava
Ignacio Vázquez-Abrams
usuario76844
dan laks
usuario76844