Estoy buscando contrarrestar la salida de un codificador rotatorio que estoy usando como un interruptor a tierra con un pull-up. Buscando en línea, vi el circuito antirrebote en la Figura 2 y leí sobre él aquí . Sin embargo, también vi la primera imagen a continuación y leí sobre ella aquí . ¿Es uno mejor que el otro para mi aplicación? De acuerdo con la hoja de datos, el GPIO del imx6sl que estoy usando tiene un disparador Schmitt y una histéresis de entrada, por lo que asumo que está bien tener un capacitor conectado.
Figura 1
Suponiendo que la MCU y Schmitt Trigger tienen una resistencia de entrada infinita y modelándolos como abiertos, podemos cerrar el interruptor y ver qué sucede.
Con el interruptor cerrado en la figura 2, la resistencia R2 está en serie con el condensador, lo que significa que hay 0 V CC en la entrada.
En el primer diagrama, con el interruptor cerrado, la resistencia R está en paralelo con el capacitor, lo que significa que habrá un voltaje en la entrada a menos que Rpull-up >> R, lo que hace que la caída de voltaje en R sea insignificantemente pequeña. tener diferentes valores de resistencia significaría que la constante de tiempo sería diferente para la carga y la descarga y nuestro rebote sería inconsistente entre los flancos ascendentes y descendentes.
Por lo tanto, la primera imagen no es una alternativa viable a la figura 2 y tampoco elimina correctamente el rebote del interruptor. La figura 2 es preferible.
La Figura 2 es preferible, suponiendo que la fuente de alimentación de E/S de su MCU es la misma que el voltaje pullup para R1, y los niveles de voltaje CMOS están en uso.
Conectando los condensadores directamente a los pines de la MCU, es posible que pueda salirse con la suya, pero es mejor tener cierta resistencia en serie, como unos pocos cientos de ohmios hasta 1K. Si elige no usar resistencias, debe asegurarse de que el dv/dt en el riel Vdd nunca pueda ser inferior a dónde es la corriente máxima del diodo de sujeción (para evitar el enclavamiento).
Supongo que ha identificado alguna necesidad de eliminación de rebotes de hardware; por lo general, no es necesario y la eliminación de rebotes de firmware (entradas encuestadas) hace el trabajo. Si está utilizando interrupciones, entonces puede ser necesario eliminar el rebote del hardware, pero eso rara vez es deseable.
He usado antirrebote de sondeo de software con muy buenos resultados. Este enfoque requiere que pueda sondear los pines de entrada con la frecuencia suficiente para no perderse la actividad del interruptor:
off
a on
, almacene ese valorEsta técnica se puede utilizar junto con el dispositivo antirrebote de hardware de la figura 2, especialmente si no puede sondear con mucha frecuencia.
Una combinación de rebote de software y hardware le permitirá disminuir el tiempo de "ignorar" en el lado del software y disminuir la constante de tiempo RC en el lado del hardware. Esto puede ser mejor que el rebote solo de hardware o solo de software.
adam z
Stephan Gerente General
Stephan Gerente General
Dmitri Grigoriev