2 votos

Topología de rebote para codificador rotativo

Estoy buscando desbotar la salida de un codificador rotativo que estoy usando como interruptor a tierra con un pull-up. Buscando en internet he visto el circuito de desbordamiento de la figura 2 y he leído sobre él aquí . Sin embargo, también vi la primera imagen de abajo y leí sobre ella aquí . ¿Es uno mejor que el otro para mi aplicación? Según la hoja de datos, el GPIO del imx6sl que estoy usando tiene un disparador Schmitt e histéresis de entrada, así que asumo que tener un condensador conectado a él está bien.

Figura 1

Figure 1

Figura 2

Figure 2

3voto

Klinger Puntos 3096

Asumiendo que el MCU y el Schmitt Trigger tienen una resistencia de entrada infinita y modelándolos como un abierto, podemos cerrar el interruptor y ver qué pasa.

Con el interruptor cerrado en la figura 2, la resistencia R2 está en serie con el condensador, lo que significa que hay 0V DC en la entrada.

En el primer diagrama, con el interruptor cerrado, la resistencia R está en paralelo con el condensador, lo que significa que habrá un voltaje en la entrada a menos que Rpull-up >> R, haciendo que la caída de voltaje a través de R sea insignificante. 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 bordes ascendentes y descendentes.

Por lo tanto, la primera imagen no es una alternativa viable a la figura 2 y además no desbarata correctamente el interruptor. La figura 2 es preferible.

1voto

Spehro Pefhany Puntos 90994

La figura 2 es preferible asumiendo que la fuente de alimentación de E/S de tu MCU es la misma que la tensión de pullup para R1, y que se utilizan niveles de tensión CMOS.

Conectar condensadores directamente a los pines de la MCU, puede ser posible, pero es mejor tener alguna resistencia en serie, como unos cientos de ohmios hasta 1K. Si eliges no usar resistencias, debes asegurarte de que el dv/dt en el carril Vdd pueda nunca sea inferior a \$-\frac {i_{MAX}}{C}\$ donde \$i_{MAX}\$ es la corriente máxima del diodo de sujeción (para evitar el enclavamiento).

Supongo que has identificado la necesidad de una desbordamiento por hardware - normalmente no es necesario y el desbordamiento por firmware (entradas de sondeo) hace el trabajo. Si estás usando interrupciones, entonces el desbordamiento por hardware puede ser necesario, pero eso es raramente deseable.

0voto

Michael Puntos 1

He utilizado el rebote por software con muy buenos resultados. Este enfoque requiere que usted es capaz de sondear los pines de entrada con la suficiente frecuencia para no perder la actividad del interruptor:

  1. entradas de la encuesta
  2. si alguno de los interruptores ha pasado de off a on , almacenar ese valor
  3. ignorar otras transiciones durante un periodo de tiempo para evitar el rebote del interruptor

Esta técnica se puede utilizar junto con el desbordador de hardware de la figura 2, sobre todo si no se puede sondear con mucha frecuencia.

Una combinación de rebote por software y por 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 sólo por hardware o sólo por software.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X