Guía definitiva para cambiar el rebote (Parte 6)
HogarHogar > Blog > Guía definitiva para cambiar el rebote (Parte 6)

Guía definitiva para cambiar el rebote (Parte 6)

Jun 21, 2024

Hace mucho tiempo, en la noche de los tiempos, cuando tenía los ojos brillantes y la cola poblada, mientras escribía las primeras palabras de esta búsqueda para explorar el tema del rebote y antirrebote de los interruptores, en realidad pensé que solo se necesitaría uno, tal vez dos, columnas. Es triste decirlo, pero a medida que los días se convirtieron en semanas y las semanas en meses, me convertí en un hombre mucho más triste y más sabio.

No puedo creer que estemos ahora en la Parte 6. Mientras estoy sentado aquí en la mesa de mi cocina (consulte también la Guía de supervivencia para el trabajo desde casa de Kevin) tratando valientemente de dejar atrás mi monitor, espero que esta sea la última en la serie, pero nunca sé exactamente qué voy a escribir hasta que las palabras comienzan a gotear de la punta de mis dedos, donde estas pequeñas bellezas alegres y alegres (las palabras, no las yemas de mis dedos) son recién recogidas al amanecer en el lado norte de la colina mientras el rocío de la mañana todavía brilla en sus atrevidas y alegres serifas, espuelas y colas. La conclusión es que todos tendremos que esperar hasta llegar al final de esta columna para ver si realmente es el final de la serie. (“Dum dum dum duuuuuum… Dum dum dum duuuuuum…” La tensión aumenta.)

Antes de lanzarnos de cabeza a la refriega con entusiasmo y abandono, recordemos brevemente cómo llegamos a este punto en nuestras deliberaciones. En la Parte 1, presentamos el concepto de rebote del interruptor. Más adelante, en la Parte 2, profundizamos en el rebote asociado con un interruptor de palanca unipolar y de una vía (SPST) y un interruptor de palanca unipolar y de dos vías (SPDT).

En la Parte 3, comenzamos a considerar soluciones de hardware para cambiar el rebote, comenzando con la idea de usar una red RC seguida de un disparador Schmitt para eliminar el rebote de un interruptor de palanca SPST. En la Parte 4, analizamos el uso de una variedad de multivibradores monoestables para contrarrestar los interruptores de palanca SPST (desafortunadamente, finalmente llegamos a la conclusión de que usar multivibradores monoestables no era un buen camino a seguir).

Más recientemente, en la Parte 5, volvimos a los interruptores de palanca SPDT y consideramos técnicas antirrebote basadas en pestillos implementados utilizando dos inversores, pestillos SR (basados ​​en NAND y NOR) y pestillos y flip-flops tipo D.

En esta columna, estamos preparados para analizar una categoría restante de soluciones antirrebote basadas en hardware en forma de circuitos integrados (CI) especiales. Si el destino nos sonríe, también abordaremos la implementación del rebote en diseños de matrices de puertas programables en campo (FPGA). Finalmente, centraremos nuestra atención en las técnicas de rebote del software.

Si algo de esto no le resulta familiar, es posible que desee echar un vistazo a mis columnas asociadas Tipos de conmutadores y Terminología de conmutadores. Quizás también le interese leer y reflexionar sobre mi columna Registros, pestillos y chanclas. Por último, pero no menos importante, como hemos señalado antes, los interruptores de palanca, los interruptores basculantes y los interruptores de botón exhiben un rebote de interruptor prácticamente de la misma manera. De hecho, los únicos interruptores que no rebotan son los que la mayoría de nosotros rara vez usamos, como los interruptores de inclinación de mercurio.

Caracterizando el sistema

Antes de comenzar a profundizar, y mientras lo pienso, cuando estaba charlando con el gurú integrado Jack Ganssle hace unas semanas, mencionó que su recomendación para cualquiera involucrado en el diseño de un sistema, especialmente las personas que diseñan sistemas de misión crítica y sistemas críticos para la seguridad, es que caracterizan los interruptores que planean usar antes de implementarlos en un mundo desprevenido.

Es muy fácil tanto para los diseñadores de hardware como para los desarrolladores de software recurrir a soluciones “probadas y verdaderas” sin pensarlo detenidamente. Por ejemplo, en la Parte 1 de la clásica Guía para evitar rebotes de Jack, mencionó un tipo de interruptor que involucraba contactos dorados chapados en una placa de circuito impreso (PCB). Había una cubierta de goma asociada que, cuando se presionaba, presentaba una especie de elastómero conductor a los contactos dorados. Jack notó que el resultado analógico era una rampa lenta de cero a cinco voltios, sin ruido, roce u otra incertidumbre, y sin rastro de rebote. Desafortunadamente, cuando esta señal se presentó a una entrada TTL, su lenta rampa a través de la “zona prohibida” (0,8 a 2,0 V) resultó en un milisegundo (ms) de oscilaciones salvajes, que podrían considerarse “rebotes virtuales”.

Chips antirrebote dedicados: en semiconductores

Además de los chips lógicos Jellybean que contienen pestillos SR, como el pestillo SR cuádruple MC14043 basado en NOR y el pestillo SR cuádruple MC14044 basado en NAND de On Semiconductor, existen algunos chips antirrebote de interruptor especialmente diseñados en el mercado.

Uno de esos dispositivos es el MC14490 de On Semiconductor, que admite seis canales (conmutadores SPST), cada uno de los cuales emplea un registro de desplazamiento de 4 bits. Este dispositivo requiere de un reloj para su funcionamiento. El reloj puede derivarse de un oscilador RC interno, que requiere un condensador externo para ajustarse a la frecuencia operativa deseada (retardo de rebote). Alternativamente, el reloj puede funcionar desde una fuente externa, incluido el oscilador de otro MC14490.

Chips antirrebote dedicados: Maxim Integrated

Otra opción es utilizar uno de los dispositivos MAX6816/MAX6817/MAX6818 de Maxim Integrated, que admiten uno, dos y ocho canales, respectivamente, donde cada canal emplea un contador interno. Estos dispositivos eliminan el rebote cuando un interruptor se abre o se cierra al requerir que la señal del interruptor permanezca en el mismo estado durante varios períodos de muestreo. La salida no cambia hasta que la entrada se haya mantenido estable durante 40 ms. Un problema es que estos chips sólo están disponibles como dispositivos de montaje superficial (SMD), pero muchos aficionados (e incluso profesionales de la creación de prototipos) disfrutan de tener acceso a componentes con paquetes de orificios pasantes (LTH).

Además, cuando consideramos soluciones de software para el problema del rebote del interruptor, una de esas soluciones implica una técnica de registro de desplazamiento, mientras que otra emplea un enfoque basado en contadores. La razón por la que menciono esto aquí es que vemos ambos métodos implementados en el hardware de los dispositivos antes mencionados.

Chips antirrebote dedicados: Texas Instruments

Para ser honesto, nunca se sabe lo que acecha a la vuelta de la esquina. A modo de ejemplo, siguiendo una columna anterior, mi amigo Jack Grubbs me envió un correo electrónico para decirme: "Hola Max, estoy disfrutando mucho de esta serie de artículos sobre la eliminación de rebotes en conmutadores".

Bueno, esto inmediatamente me puso de buen humor y, evidentemente, empezamos bien el intercambio de correos electrónicos. Jack continuó diciendo: “El TIC12400-Q1 de Texas Instruments (TI) es un dispositivo de grado automotriz que puede monitorear 24 interruptores con ajustes de corriente humectante configurables. También tiene un convertidor analógico a digital (ADC) de 10 bits integrado para usar con interruptores analógicos de múltiples posiciones, junto con un comparador integrado con cuatro umbrales programables para monitoreo de interruptores digitales. También tienen un kit de módulo de evaluación de $199, junto con una guía de usuario para dicho kit de evaluación. ¡La mayor desventaja de este dispositivo es que su hoja de datos tiene 135 páginas!

Chips antirrebote dedicados: LogiSwitch

Antes de continuar, debo admitir que soy algo parcial aquí, porque actualmente uso los chips antirrebote de LogiSwitch en todos mis proyectos. Además, el fundador de LogiSwitch, mi amigo Mike Pelkey, es el abuelo del salto BASE; es decir, lanzarse en paracaídas desde una estructura fija, donde BASE es un acrónimo de edificio, antena, tramo (puente) y tierra (acantilado). Junto con su amigo Brian Schubert, Mike realizó los primeros saltos en paracaídas desde la cima de la montaña El Capitán en el Parque Nacional Yosemite en 1966. Pero estamos divagando...

A lo largo de más de 40 años de diseño de sistemas digitales, Mike (como casi todos los demás ingenieros diseñadores de hardware del planeta) estuvo plagado del problema del rebote del interruptor. Después de haber empleado prácticamente todas las versiones de técnicas tradicionales de mitigación de rebote de conmutadores basadas en hardware y software conocidas por la humanidad, Mike decidió que tenía que haber una manera mejor.

El resultado de las reflexiones y cavilaciones de Mike fue el concepto LogiSwitch. Con algoritmos de detección de rebotes adaptativos y (en el caso de la serie LS1xx) un exclusivo protocolo de intercambio de 1 cable, estas bellezas deslumbrantes reflejan lo último en tecnología de mitigación de rebotes de interruptores.

Comencemos con los chips LS18/LS19/LS20 de alta inmunidad al ruido, que pueden manejar 3, 6 y 9 canales, respectivamente. Afortunadamente, para mí, todos estos dispositivos están disponibles en paquetes SMT y LTH. Considere el siguiente circuito usando un LS18:

El LogiSwitch LS18 en un circuito (Fuente de la imagen: Max Maxfield)

Observe que no necesitamos resistencias pull-up en las entradas (o salidas) del LS18, porque este chip maneja todo esto internamente. El condensador de desacoplamiento de 0,1 uF es opcional, pero proporciona una mayor inmunidad al ruido. Aquí solo mostramos un único interruptor SPST, pero el LS18 puede acomodar tres de esos interruptores. Ahora considere un escenario típico de rebote de un switch como se ilustra a continuación:

LogicSwitch LS18 reacciona al ruido y al rebote del interruptor (Fuente de la imagen: Max Maxfield)

Como vemos, el LS18 rechaza cualquier pico de ruido. En el caso de una transición de interruptor real, la salida del LS18 seguirá la entrada del interruptor 20 ms después del último rebote del interruptor.

Ahora veamos los chips LS118/LS119/LS120 de respuesta rápida. Una vez más, estos pueden manejar 3, 6 y 9 canales, respectivamente. Y, una vez más, todos estos dispositivos están disponibles en paquetes SMT y LTH. Comencemos considerando un escenario típico de rebote de un switch con un chip LS118 como se ilustra a continuación:

El chip LogicSwitch LS118 reacciona al rebote del interruptor pero sin utilizar su capacidad de protocolo de enlace (Fuente de la imagen: Max Maxfield)

Observe que la salida “normalmente baja/apretón de manos” (NL/HS) es la fase opuesta a la entrada del interruptor; es decir, cuando el interruptor está conectado a 0 V (0 lógico), la salida NL/HS será 1 lógico y viceversa.

La parte NL del apodo de este pin se basa en la suposición de que estamos tratando con un interruptor SPST cuyo contacto "normalmente abierto" (NO) se eleva a la lógica 1 (una vez más, el chip LS118 maneja las resistencias pull-up internamente ). Entonces, cuando el interruptor está inactivo (lógico 1), la salida NL/HS es lógico 0.

Hay dos cosas importantes a tener en cuenta aquí. Primero, después de una transición en el interruptor, la salida NL/HS responde casi de inmediato (en cuestión de nanosegundos). En segundo lugar, el LS118 no responderá a ningún evento posterior en la entrada hasta 20 ms después del último rebote del interruptor.

Ahora, siéntate y presta atención, porque aquí es donde las cosas empiezan a ponerse muy interesantes. Los chips LS118/119/120 cuentan con un exclusivo protocolo de intercambio de 1 cable. Cuando el microcontrolador (MCU) "ve" que una de las señales NL/HS aumenta, puede cambiar ese pin de entrada a una salida, bajar la señal durante 50 microsegundos (μs) y luego devolver el pin a una entrada.

Las salidas del LS118 son de colector abierto con pull-ups internos. Cuando el LS118 ve que la MCU está bajando una de sus salidas, comienza a bajar esa salida él mismo. El resultado es el que se ilustra a continuación:

El chip LogicSwitch LS118 reacciona al rebote del interruptor y utiliza su capacidad de protocolo de enlace (Fuente de la imagen: Max Maxfield)

Esta capacidad de protocolo de enlace es interesante por varias razones. Por ejemplo, considere un programa que verifica en bucle el estado de un interruptor y realiza alguna acción como, "Si la señal NL/HS es 1, entonces agregue uno al contador".

Sin nuestra capacidad de protocolo de enlace, el programador tiene que configurar un indicador para realizar un seguimiento de cuándo se ha activado el interruptor para garantizar que el programa no siga incrementando el contador. Esto no es ciencia espacial, pero es una cosa más de la que preocuparse. En comparación, utilizar el apretón de manos hace la vida mucho más sencilla. En nuestro ejemplo, cuando la MCU ve que NL/HS sube, todo lo que tiene que hacer es incrementar el contador y borrar la señal NL/HS a 0, y eso es todo hasta que la señal suba nuevamente.

Pero esto es sólo el comienzo. Armados con este protocolo de apretón de manos, podemos... ¡pero no! Lo siento, pero esta columna ya es mucho más larga de lo que pretendía, así que tendremos que esperar…

La próxima vez

En mi próxima columna, concluiremos nuestras discusiones sobre los diversos escenarios de uso asociados con el protocolo de protocolo de enlace LS1xx, consideraremos el uso de conmutadores con entradas de reinicio y conmutadores con interrupciones, reflexionaremos sobre cómo manejar el rebote del conmutador en FPGA y – Finalmente, nos sumergiremos en las soluciones de software para el problema del rebote del conmutador.

Prometo que mi próxima columna de rebote de interruptores será la última de esta miniserie (no, por supuesto que no cruzo los dedos a la espalda cuando digo esto; ¿cómo es posible que sugiera tal cosa?). Hasta la próxima, como siempre, agradezco sus comentarios, preguntas y sugerencias.

Caracterizando el sistemaChips antirrebote dedicados: en semiconductoresChips antirrebote dedicados: Maxim IntegratedChips antirrebote dedicados: Texas InstrumentsChips antirrebote dedicados: LogiSwitchLa próxima vez