Detector de doble borde

Estoy diseñando un proyecto de pasatiempo que funcionará con una batería, por lo que estoy tratando de reducir el consumo de energía. El SoC que estoy usando tiene la capacidad de entrar en un modo de suspensión profunda donde consume muy poca energía y luego puede ser interrumpido por un borde descendente en un pin.

Quiero generar un pulso alto-bajo-alto cuando el estado de un interruptor de lengüeta cambia en cualquier dirección. He estado leyendo mucho y parece que se puede construir un circuito monoestable de un solo disparo a partir de un par de transistores y un circuito RC para generar un pulso de salida cuando se detecta un borde. Entiendo cómo funciona eso. Sin embargo, no puedo encontrar la mejor manera de pulsar también en el borde opuesto.

Un pensamiento fue simplemente combinar dos one-shots que están configurados para dispararse en los bordes ascendente y descendente respectivamente, y usar los transistores en la salida para bajar el pull-up común (algo así como una puerta NOR).

Como soy un aficionado, uso principalmente componentes pasivos. ¿Cuál es la forma "real" de hacer esto en una configuración de bajo consumo utilizando dispositivos lógicos?

Editar: creo que debería mencionar algo sobre los requisitos de tiempo. Normalmente, el interruptor de láminas estará abierto o cerrado durante muchos segundos como mínimo antes de cambiar de estado.

Editar: aquí hay un ejemplo del circuito que estaba usando para detectar solo el borde descendente:

Esquemático

Y aquí está el pulso de ~20ms que estaba produciendo para presionar el botón de ~200ms simulando el interruptor de lengüeta (el canal 1 es Vbe para T1 y el canal 2 se mide en RST):

Alcance de la respuesta del pulso

Respuestas (4)

Está solicitando un convertidor de borde a falla, que generalmente es una bandera que indica una chapuza. ¿Está realmente seguro de que su SoC no se puede configurar para interrumpir en cualquier borde? Esta es una característica común de muchos microcontroladores. En los PIC se llama interrupción al cambiar , por ejemplo, y casi todos los PIC tienen algunas entradas que son capaces de hacerlo.

Si su hardware realmente solo puede interrumpir en un flanco descendente, entonces una posibilidad es simplemente invertir la señal y conectarla a dos de esas entradas.

Para responder a su pregunta directamente, se puede hacer un convertidor de borde a falla desde una puerta XOR:

OUT será bajo siempre que ambas entradas a la puerta sean iguales. La señal en el pin 2 se retrasa un poco por el filtro de paso bajo RC. Esto significa que durante un breve período de tiempo después de que IN cambie, el pin 1 tendrá el valor nuevo y el pin 2 tendrá el valor anterior, lo que hace que OUT suba. Después de un rato, la señal del pin 2 se pone al día y la salida vuelve a ser baja.

Puede usar esto para disparar al final del pulso, o usar una puerta XNOR para obtener un pulso negativo para que el borde de ataque active la interrupción.

Como dijiste que eres un aficionado, aquí hay un circuito que usa solo partes de chatarra:

Esto puede parecer un nido de ratas, pero es fácil de entender si lo divides en partes individuales.

C1 AC acopla la señal de entrada en Q1. Q1 se apagará por un momento debido a un flanco ascendente en IN. Cuando lo hace, fuerza la SALIDA a nivel bajo. R5 es un pull-up pasivo, por lo que OUT está alto cuando no pasa nada. Eso se encarga de detectar un flanco ascendente en IN.

La detección del flanco descendente se realiza de manera similar con C2 y Q2. Sin embargo, cuando Q2 se enciende, aumenta su salida en lugar de la baja que desea. Q3 invierte eso y sale bajo cuando Q2 está encendido.

Una respuesta más completa podría incluir el acondicionamiento de entrada del interruptor de láminas, que generalmente requiere una resistencia pull-up o pull-down para el voltaje de suministro lógico. Una de las compuertas de repuesto podría usarse como un búfer, de lo contrario, la resistencia pull-up/pull-down debe ser significativamente más pequeña que la "R1" de Olin. La interrupción del cambio es la mejor solución.
Sí, AFAIK, el SoC solo se interrumpe en el borde descendente e implementa su propia activación desde el modo de suspensión profunda vinculando un pin de salida para reiniciar y configurando ese pin alto durante un período de tiempo determinado antes de caer y activar el dispositivo. ¡Implementaré el "nido de ratas" y veré cómo funciona para mí!

Este circuito de retardo y compuerta XOR podría funcionar para usted: -

ingrese la descripción de la imagen aquí

Usaría una puerta con una entrada de disparador schmitt para mayor confiabilidad.

O tal vez un par de inversores en lugar del RC: -

ingrese la descripción de la imagen aquí

Invertir la salida es básicamente fácil.

Sí, la solución de inversores + XOR se puede implementar usando 3/4 de un 74xx86 para el caso (útil si aún no tiene las puertas de repuesto deambulando por su placa)

detección de doble borde una entrada pulsada

Si conecta su interruptor de lengüeta en SW1, los LED K1 y K2 se pulsan alternativamente. Este circuito fue diseñado para una aplicación muy específica y es para 9 voltios, pero algunos retoques con los valores de la resistencia y el capacitor deberían permitirle encender la energía de su unidad solo durante la duración del pulso cada vez que cambia el estado del interruptor de láminas. cableado en el transistor k1 y k2 C y E.

Tu idea inicial parece buena. Evitaría la idea de la chancleta, pero es una solución perfectamente válida (tal vez innecesaria).

Por lo general, esto podría implementarse fácilmente con una puerta AOI22 ( puerta CMOS compleja de una sola etapa que implementa! ((A0 * A1) + (B0 * B1))

A0 y A1 funcionarían para formar un detector de pulsos de flanco ascendente, y B0/B1 para formar el flanco descendente.

Para el flanco ascendente, retrase una entrada en un número impar de etapas de inversión (más inversiones o más límite entre etapas significa un pulso más largo). Para el flanco descendente, invierta una entrada una vez. Invierta la otra entrada un número par de etapas de inversión (nuevamente, cuantas más inversiones tenga o más límite entre cada nodo que cause retraso, más largo será el pulso de salida). Tiene mucho más sentido con las formas de onda que se muestran:

detectores de borde

Cabe mencionar que en esta configuración la AOI22 actúa como una puerta XOR (debido a la polaridad de las entradas).