¿Por qué necesitamos resistores pull-up o pines tri estado para las interrupciones externas AVR?

1

Digamos que necesitamos escribir un programa para ATmega32, que reacciona a una interrupción externa (INT0) a través del pin D2. La interrupción debe ocurrir durante el flanco descendente de la señal.

Lo noté en los libros que DDRA = 0b00000010 se hace para "activar la resistencia de pull-up". ¿Por qué lo necesitamos? ¿Debemos hacer lo mismo si queremos una interrupción de flanco ascendente o una interrupción activada por nivel?

    
pregunta crysoberil

1 respuesta

3

La activación de la resistencia pullup es completamente independiente de la detección de la señal. Si el pin se activa activamente en todo momento, entonces no hay necesidad de activar el pullup, y de hecho al hacerlo aumentará el consumo de corriente cuando la entrada sea baja.

Por otro lado, muchas fuentes de interrupción externas son en realidad salidas drenaje abierto , que significa que no son capaces de conducir activamente la entrada a alto. En este caso, debemos activar la resistencia de extracción para evitar que la entrada flote.

    
respondido por el Ignacio Vazquez-Abrams

Lea otras preguntas en las etiquetas