MCU Interrupción externa Falso disparo

0

Arriba está la imagen que describe la configuración fuera de la MCU.

Vin es de 0 a 5 V de onda cuadrada de pico a pico, que puede tener una frecuencia de 0 a 50 KHz, o incluso mayor.

Se supone que la MCU debe manejar la interrupción de cada flanco descendente O ascendente (configurar como uno de ellos, pero no ambos) del puerto / INT.

Para no bloquear la MCU con interrupciones en caso de VIN de muy alta frecuencia, se agregó un filtro de baja frecuencia simple en frente del puerto MCU.

El problema es que estoy viendo un disparador falso de interrupción, si configuro como disparador de flanco ascendente. Todo funciona bien si configuro la interrupción como flanco descendente.

La forma en que sé que la interrupción es una activación falsa es que estoy midiendo el tiempo entre cada una de las interrupciones, ya que estoy alimentando la señal ciertamente conocida (desde el calibrador, observado con un osciloscopio).

El problema desaparece si quito el condensador 10nF.

Sin embargo, en mi aplicación, he agotado todos los temporizadores, por lo que no puedo usar los temporizadores para limitar la frecuencia de interrupción, lo que me obliga a limitarlo fuera de la MCU

La CPU es la serie PIC32.

¿Hay alguna manera de lograr el propósito de evitar que la interrupción externa se dispare con demasiada frecuencia?

    
pregunta Steve

1 respuesta

3

Su configuración de entrada tiene una constante de tiempo de 10 microsegundos, una cantidad de tiempo enorme al mirar los puertos MCU.

Cuando la entrada hace la transición, pasará un tiempo significativo en la región indeterminada de la entrada, el rango de voltajes entre Vil (max) y Vih (min). Esto hará que el pin de entrada detecte algo y posiblemente cambie de estado varias veces para una única transición de entrada en la salida del búfer de entrada, lo que dará como resultado múltiples interrupciones "fantasmas".

Además, esto parece ser una entrada de CMOS, y los tiempos de subida / bajada lentos pueden dañar la estructura del búfer de entrada.

Esta nota de aplicación de TI explica el problema.

La eliminación del capacitor permite que la señal se mueva a través de la región indeterminada limpiamente, minimizando la posibilidad de metastability como lo son estos pines. Entradas asíncronas.

Veo que los pines del puerto tienen un disparador Schmitt disponible, pero el búfer de 'entrada periférica' no lo tiene. Si puede seleccionar la entrada de activación de Schmitt, entonces el condensador no debería tener ningún efecto (aparte de reducir el número de interrupciones que puede tener por unidad de tiempo).

La hoja de datos que tengo muestra una combinación de pines de entrada y de entrada 'ordinarios', pero la lista variará según el dispositivo, así que verifique sus tablas de pines específicas.

    
respondido por el Peter Smith

Lea otras preguntas en las etiquetas