Detección de flanco ascendente / descendente para problemas con el circuito de generación de interrupciones

0

Estoy intentando generar un impulso para activar una interrupción cuando la entrada cambia de estado.
Alta- > Baja & Bajo > Alto


La entrada es un interruptor reed.
Estoy usando una puerta XOR ( SN74AHC1G86QDBVRQ1 ) con un retraso RC en una entrada
GPIO2 se utiliza para detectar el estado de la entrada después de que la MCU se despierta de la interrupción.
El circuito funciona correctamente cuando se cambia de Bajo - > Alto. Cuando se cambia de alto a bajo, solo funcionará cuando una sonda de alcance u otro objeto metálico toque el terminal 2 (GPIO2).


¿Alguien tiene alguna sugerencia sobre por qué sucede esto?

    
pregunta Lanc

1 respuesta

1

El problema es que cuando se abre el interruptor de lámina, el pin GPIO2 se tira hacia abajo a través de la resistencia de 10 megas. Las tapas parásitas alrededor de su circuito pueden producir un comportamiento errático e impredecible, porque el nodo GPIO2 es básicamente de alta impedancia.

Para resolver su problema, la forma más fácil que veo es reducir los 10 M tan bajo como lo permita su interruptor de láminas, cambiar RD a al menos 10x RPD, o 100x si es posible, y reducir C en consecuencia para mantener su tiempo constante.

También puedes tratar de crear un controlador push-pull para tu circuito de detección de bordes, pero las cosas se complican un poco más.

Cerraré con otra sugerencia: supongo que tiene un microcontrolador que lee estos pulsos y hace algo como consecuencia. La mayoría de los microcontroladores (¿todos?) Le permiten activar una interrupción de borde, por lo que básicamente ya tienen dentro de todos los circuitos necesarios. Lea el manual de su micro cuidadosamente, apuesto a que su solución solo está cambiando un poco en un registro en algún lugar.

    
respondido por el Vladimir Cravero

Lea otras preguntas en las etiquetas