detector de doble borde

1

Estoy diseñando un proyecto de hobby que se ejecutará con una batería, así 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 en el que consume muy poca energía, y luego puede ser interrumpido por la caída de un borde en un pin.

Quiero generar un pulso alto-bajo-alto cuando el estado de un interruptor de lámina cambia en cualquier dirección. He estado leyendo mucho y parece que se puede construir un circuito monoestable 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.

Uno de los pensamientos, fue simplemente combinar dos disparos únicos que están configurados para dispararse en los flancos ascendentes y descendentes respectivamente, y usar los transistores en la salida para bajar el pull-up común (algo así como una compuerta NOR).

Como soy un aficionado, estoy utilizando principalmente componentes pasivos. ¿Cuál es la forma "real" de hacer esto en una configuración de baja potencia 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: Este es un ejemplo del circuito que estaba usando para detectar solo el borde descendente:

Yaquíestáelpulsode~20msqueestabaproduciendoalpresionarelbotónde~200mssimulandoelinterruptordelámina(elCanal1esVbeparaT1yelCanal2semideenRST):

    
pregunta billbo

3 respuestas

4

Está solicitando un convertidor de borde a falla, que generalmente es una bandera que indica un kludge. ¿Está realmente seguro de que su SoC no se puede configurar para interrumpir en cualquiera de los bordes? Esta es una característica común de muchos microcontroladores. En los PIC, se denomina 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 cablearla en dos de esas entradas.

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

OUTserábajasiemprequelasdosentradasdelapuertaseaniguales.Laseñalenelpin2seretrasaunpocoporelfiltrodepasobajoR-C.EstosignificaqueduranteunbreveperíododetiempodespuésdeloscambiosdeIN,elpin1tendráelnuevovaloryelpin2elvalorantiguo,loquehacequeelOUTseaalto.Alcabodepocotiempo,laseñaldelpin2serecuperaylasalidavuelveabajar.

Puedeusarestoparadispararalfinaldelpulso,ousarunacompuertaXNORparaobtenerunpulsonegativoparaqueelbordedeataqueprovoquelainterrupción.

Comodijistequeeresunaficionado,aquíhayuncircuitoqueusasolopartesdebasura:

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

C1 AC-acopla la señal de entrada en Q1. Q1 girará por un tiempo debido a un flanco ascendente en IN. Cuando lo hace, hace salir a baja. R5 es un pullup pasivo, por lo que OUT es 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, saca su salida alta en lugar de la baja que desea. El Q3 lo invierte y se baja cuando Q2 está activado.

    
respondido por el Olin Lathrop
2

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

Usaríaunapuertaconunaentradadeactivaciónschmittparamayorconfiabilidad.

OtalvezunpardeinversoresenlugardelRC:-

La inversión de la salida es básicamente fácil.

    
respondido por el Andy aka
0

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

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

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

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

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

    
respondido por el jbord39

Lea otras preguntas en las etiquetas