Disparo de interrupción externa AVR por el flanco descendente: ¿durante cuánto tiempo debo mantener la señal baja para garantizar el disparo?

El encabezado de la pregunta parecía demasiado largo. Lo siento por eso.

Así que tengo un esquema que genera un BAJO corto en el pin INT0 de ATmega48PA. A partir de la simulación, descubrí que el nivel BAJO estará allí durante unos 800 ns. Planeo cronometrar el AVR desde el RC interno con un divisor de 1:8, lo que significa 1 MHz Fosc.

¿Cómo me aseguro de que se activará la interrupción?

Leí un poco la hoja de datos pero estaba buscando en los capítulos equivocados o no hay tal información.

¿Podría indicarme la dirección correcta para encontrar la información necesaria?

¡Gracias!

Respuestas (1)

De la hoja de datos, para la descripción de ISC11, ISC10:

Si se selecciona la interrupción de borde o alterna, los pulsos que duran más de un período de reloj generarán una interrupción. No se garantiza que los pulsos más cortos generen una interrupción. Si se selecciona la interrupción de bajo nivel, el nivel bajo debe mantenerse hasta que se complete la instrucción que se está ejecutando actualmente para generar una interrupción.

Dado que un reloj de 1 MHz significa que el pulso de interrupción de 800 ns durará menos de 1 ciclo, la interrupción no se generará de manera confiable. La instrucción AVR más larga requiere 4 ciclos, por lo que usar un reloj mínimo de 6 MHz garantizará que atrape todas las interrupciones mientras el chip está activo.

Según entiendo por la interrupción de activación del borde de la cotización que no requiere que se ejecute la instrucción. Entonces diría que en mi caso particular necesitaré aumentar el nivel bajo por 1000 ns para garantizar la interrupción. ¿Bien?
Si cambia a disparo de flanco descendente, sí.