¿Pueden múltiples disparadores Schmitt en serie eliminar completamente un interruptor?

8

Después de lidiar con la eliminación de rebotes del software por un tiempo, encuentro que tiene un alto costo en el sistema, así que pensé en hacer inicialmente un rebote de hardware con un disparador Schmitt (74HC14), un condensador, un botón y una resistencia como se muestra a continuación en talkingelectronics.com :

circuito de electrónica

Pero leí que el disparador Schmitt es la mitad de desagradable que un inversor normal al determinar cuándo emitir un valor alto o bajo, porque cambia de estado en la marca del 33% y 66%, donde un inversor normal cambiaría más cerca de la marca del 50% (pero con la versión HC probablemente sea más del 55%).

Me preguntaba, porque el disparador Schmitt es de seis inversores en un paquete, mejoraría considerablemente la eliminación de rebotes con cualquier botón de mi elección aplicado a la primera entrada si hiciera seis del circuito en el lado derecho con los mismos valores de componente y conectara todos de ellos en serie? (Ejemplo: salida del primer circuito a la entrada del segundo circuito donde se encuentran el condensador y la resistencia).

Miguel
fuente
3
"porque cambia de estado en la marca de 33% y 66%" , ¿no es ese el punto de usar un disparador de schmitt? ... ¿De modo que hay una ventana en el medio donde no cambia, por lo tanto, elimina el rebote?
Bort
55
¿Cómo afecta la eliminación del rebote en el sistema? La eliminación del software puede ser tan simple como mantener un intervalo de 50 ms entre la lectura de los botones.
Wouter van Ooijen
2
@ Mike ¿Quizás tienes un malentendido sobre los disparadores de Schmitt? ¿Sabe que tienen histéresis y que los puntos de conmutación asimétricos están "superpuestos": no hay banda media donde la señal no esté definida?
tubería
44
Su problema no tiene nada que ver en absoluto con esto: su problema es que no sabe cómo escribir un software que elimine los rebotes de una manera que no sea totalmente ineficiente. Le sugiero que publique otra pregunta en el foro de revisión de código para preguntar qué ha hecho mal en su software, porque incluso el procesador más barato de 8 bits puede eliminar un montón de entradas sin romper el sudor.
Graham
2
@ Mike A menos que tengas miles de eventos por segundo que tengas que renunciar, no veo cómo esto podría consumir un impacto medible en el tiempo de ejecución.
Dmitry Grigoryev

Respuestas:

12

El uso de disparadores Schmitt en serie no reduciría aún más el rebote.

Considere el filtro:

Comparación de la forma de onda del disparador Schmitt

La entrada es (U). La línea roja es un umbral del 50%, cuya salida se ve como señal (A). Rebota cada vez que se cruza la entrada.

Las líneas verdes son algo así como el 33% y el 66%, como has dicho. Pero la salida (B) solo cambia cuando la entrada (U) cruza de un umbral verde al otro.

Lo más importante, la salida es totalmente ALTA o BAJA (digital). Entonces, si la salida de un disparador Schmitt se alimenta a la entrada de otro, esencialmente no habría diferencia.

Tome la salida filtrada de arriba (B) y piense cómo sería visto por otro disparador de Schmitt:

Schmitt disparador en serie con otro

Nuevamente, la salida del primero sería ALTA o BAJA. Por lo tanto, cruzaría los umbrales al mismo tiempo, dando como resultado la misma salida que la entrada. ¡No hay nada que renunciar! En todo caso, esperaría que creara más ruido, porque está introduciendo más componentes y, por lo tanto, más margen de error.

Parece que lo que está buscando es un disparador Schmitt con umbrales ajustables. Algunos son simétricos (por ejemplo: 33% y 66%, o 10% y 90%). Otros no son simétricos (por ejemplo: 33% y 80%). Puedes crear el tuyo usando un amplificador operacional.

Intenta jugar con esta simulación que armé hace un tiempo: Schmitt Trigger Simulation - No invertido No simétrico

Simulación de disparador de Schmitt: no inversor, no simétrico

Diamante negro
fuente
Teniendo en cuenta que haré una PCB, a veces vincular dos inversores en serie hará que la PCB sea mucho más fácil de crear. ¿Cuánto más ruido esperaré si ato dos de estos inversores en serie?
Mike
Para esa configuración, el "ruido" probablemente sería insignificante. Puede haber un microsegundo de tiempo de propagación. El "ruido" de voltaje no sería un problema demasiado grande, ya que cada disparador es un filtro después de todo. No me preocuparía a menos que la aplicación sea muy dependiente del tiempo, pero supongo que no es solo un botón.
Bort
15
¿Pueden múltiples disparadores Schmitt en serie eliminar completamente un interruptor?

Se puede usar un solo disparador Schmitt con un filtro analógico delante para eliminar el rebote. Sin embargo, después de ese disparo de Schmitt, la señal es completamente digital. Cualquier activador adicional de Schmitt no cambiará eso. Idealmente, preservarán la señal.

En otro tema, la eliminación de rebotes en el firmware no debería presentar mucha carga. La forma habitual es muestrear el estado del interruptor en una interrupción periódica que ya tiene de todos modos. Usted declara el estado sin rebote el valor actual del interruptor cuando ha visto el interruptor en ese estado durante N muestras consecutivas. Por lo general, requiero que el interruptor esté en el mismo estado durante 50 interrupciones consecutivas de 1 ms para que el nuevo estado se considere válido. Eso generalmente toma una fracción muy pequeña de los ciclos generales del procesador.

Olin Lathrop
fuente