4_1 interrupciones externas
TRANSCRIPT
Interrupciones Externas
Programación Microcontrolador AVREscuela Militar de Ingenieria
Ing. Germán Pereira Muñoz
09/09/10 Ing. Germán Pereira Muñoz - Interrupciones Externas
2
Interrupciones Externas
• El ATMega16 responde a 4 diferentes Interrupciones-señales externas aplicadas a los pines.
• RESET (pin 9)• INT0 (pin 16 – PD2)• INT1 (pin 17 – PD3)• INT2 (pin 3 – PB2)
reset
int0
int1
int2
Vectores de Reset y de Interrupciones
● El vector Reset puede ser configurado en la seccion de Bootloader usando el bit de configuracion BOOTRST
● Los vectores de interrupcion pueden ser configurados en la seccion de Bootloader usando el bit IVSEL del registro General Interrupt Contol Register (GICR)
09/09/10 Ing. Germán Pereira Muñoz - Interrupciones Externas
3
Fuentes de Reset del AVR:
09/09/10 Ing. Germán Pereira Muñoz - Interrupciones Externas
4
Fuentes de Reset
•JTAG: Bandera de JTAG Reset.•Watchdog Reset: Habilitado el Timer Watchdog y su periodo expiado •Brown-out Reset: Detector Brown-out Detector habilitado y la tensión de alimentación por debajo de umbral •External Reset: Nivel bajo en el pin /RESET – pin de entrada•Power-on Reset: Voltaje de alimentacion se encuentra por debajo del umbral de Power-on Reset
MCUCSR provee información sobre que fuente de reset fue el origen del reset del CPU
09/09/10 Ing. Germán Pereira Muñoz - Interrupciones Externas
5
AVR Fuentes de RESET
AVR Operación Lógica del Reset
El Watchdog timer es usado para determinar cuanto será el delay para adicionar después de un reset_n.
Esto es establecido por el AVR a los fusibles 4.1ms bien o 65ms.
09/09/10 6Ing. Germán Pereira Muñoz - Interrupciones Externas
Voltajes Umbrales del Reset
Ejemplo:Power-on Reset
Ejemplo:Brown Out Reset
09/09/10 Ing. Germán Pereira Muñoz - Interrupciones Externas
7
Operación AVR Brownout
La detección del nivel Brown out (BOD) puede ser configurado entre 2.7V a 4.0V.
Vcc debe estar por debajo del nivel Vbod durante más de 2uS.
BOD circuito tiene100mV histéresis para evitar el RESET debido a problemas técnicos.
BOD debe estar habilitado por la programación del fusible BOD.
2us
09/09/10 8Ing. Germán Pereira Muñoz - Interrupciones Externas
AVR Fuentes de RESET
Watchdog timer
•El watchdog timer es un recurso de hardware que ayuda a que un programa erróneo entre en un de nuevo en un estado de funcionamiento correcto
•El programa debe periódicamente resetear el watchdog timer antes de que se apague.
•Si el timer se apaga, el Microcontrolador y es de esperar que todos los periféricos sean reseteados
•El timer debe ser difícil de resetear, excepto por un comportamiento de software
09/09/10 9Ing. Germán Pereira Muñoz - Interrupciones Externas
Fuentes de Reset
Watchdog timer
El watchdog timer de AVR tiene un reloj separado de 1Mhz.
Ocho ciclos de tiempo de reloj pueden ser escogidos.
El watchdog timer es reseteado por la instrucción WDR del Watchdog Reset.
Si el timer llega a un overflow, el Microcontrolador se resetea como si la fuente de alimentación fuera retirada y vuelta a conectar. Hay tres niveles de seguridad se puede ajustar el watchdog timer . Los niveles de seguridad son programados por los fuse bits.
Estos no se puede cambiar a menos que sea reprogramado.
09/09/10 10Ing. Germán Pereira Muñoz - Interrupciones Externas
Fuentes de Reset
Watchdog Timer Control Register (WDTCR)
watchdog change enable:Debe ser puesto en 1 cuando WDE es puesto en zero.Si es seteado en uno, HW sera limpiado cada 4 ciclos de clock
watchdog enable: Cuando esta en uno, watchdog es habilitado, cuando esta en zero deshabilitado. Solo puede ser limpiado cuando el bit WDCE también esta en uno.
Para deshabilitar el watchdog timer: (imposible en el nivel de seguridad 2)1. Simultáneamente escribir uno lógico en WDCE y WDE.2. Dentro de 4 ciclos escribir 0 en WDE.
watchdog timer prescaler: determina el preescaler para el watchdog timer
09/09/10 11Ing. Germán Pereira Muñoz - Interrupciones Externas
AVR Fuentes de RESET
Watchdog Timer Control Register (WDTCR)
watchdog timer prescaler: determina el preescaler para el watchdog timer
09/09/10 12Ing. Germán Pereira Muñoz - Interrupciones Externas
AVR Fuentes de RESET
Watchdog timer niveles de seguridad
Nivel de seguridad 0:WDT inicialmente deshabilitadoPuede ser habilitado con la escritura de1el bit WDEEl Periodo Timeout puede ser cambiado en cualquier tiempoPara deshabilitarlo:
-Simultaneamente setear a uno WDCE y WDE-Con 4 cyclos de reloj, escribir el bit WDE a cero lógico
Nivel de seguridad 1:WDT inicialmente deshabilitado Puede ser habilitado con la escritura de1el bit WDEEl periodo Timeout o su deshabilitado requiere secuencia de tiempoPara deshabilitar o cambiar el Timeout:
-Simultaneamente, setear a uno WDCE y WDE-Con 4 ciclos de reloj, escribir en los bits WDE y WDP como desee pero con el bit WDCE seteado en 0.
09/09/10 13Ing. Germán Pereira Muñoz - Interrupciones Externas
AVR Fuentes de RESET
Watchdog timer niveles de Seguridad
Nivel de Seguridad 2:WDT inicialmente habilitado, el bit WDE siempre se lee como uno lógicoWDT no puede ser deshabilitadoEl periodo Timeout puede ser cambiado, pero requiere una secuencia de tiempoPara deshabilitar o cambiar el timeout:-Simultáneamente setear a uno WDCE y WDE-Con 4 ciclos de reloj, escribir WDP como se desee con el bit WDCE en cero. El valor del bit WDE es irrelevante.
09/09/10 14Ing. Germán Pereira Muñoz - Interrupciones Externas
AVR Fuentes de RESET
09/09/10 Ing. Germán Pereira Muñoz - Interrupciones Externas
15
Configuración de Interrupciones Externas
• Basadas en Conditiones › Mientras el nivel es bajo
• Disparo basado en Eventos› Cuando el nivel cambia (toggle)
› Flanco de Bajada (negativo Transición 1 a 0)
› Flanco de Ascendente (positivo Transicion 0 a 1)
Interrupciones Externas Int0, Int1 e Int2• Int0 conectado a PD2• Int1 conectedo a PD3• Int2 conectado a PB2• Operacion asincrona: puede despertar al CPU • Flanco desendente/ascendente o por nivel bajo puede disparar la interrupcion, definido por los birts de Interrupt Sense control MCUCR
09/09/10 Ing. Germán Pereira Muñoz - Interrupciones Externas
16
INT1
INT0
ISCxy Interrupt sense Control bits00 – Nivel bajo 01 – Cambio de nivel 10 – Flanco de Bajada 11 – Flanco de subida
Interrupciones Externas Int0, Int1 e Int2
Int0, Int1 e Int2 para ser habilitadas por General Interrupt Control Register GICR (+ I-bit en SREG)
09/09/10 Ing. Germán Pereira Muñoz - Interrupciones Externas
17
09/09/10 Ing. Germán Pereira Muñoz - Interrupciones Externas
18
Registro de banderas de Interrupcion General GICR
• Una bandera en 1 indica que existe una interrupción pendiente › Estas banderas son usadas solo cuando se usa disparos
por Flanco o por cambio de nivel • En la configuración por nivel estas banderas siempre estan en
0
› Un evento especifico de cambio puede colocar en 1 la bandera; debe ser puesta en 0 manualmente o por el servicio de Interrupción
09/09/10 Ing. Germán Pereira Muñoz - Interrupciones Externas
19
Disparos de Nivel
• El procesador verifica los niveles en los pines INT0 e INT1 cada ciclo de reloj
• Pulsos muy cortos (menores a un ciclo de reloj) pueden no ser detectados (sin cambio en el flanco)› La interrupcion de nivel bajo puede ocurrir solo
si el pin se encuentra en nivel bajo al final de la instruccion actual
09/09/10 Ing. Germán Pereira Muñoz - Interrupciones Externas
20
Registro MCUCSR
• Registro de Estado y Control MCU
• ISC2 – Bit de control de Sensibilidad › 0 – Flanco de bajada › 1 – Flanco de Subida
• Esta interrupción no ofrece otros tipos de disparos
INT2
09/09/10 Ing. Germán Pereira Muñoz - Interrupciones Externas
21
Interrupciones por Software • Si los pines de una Interrupción externa son
configurados como salidas, el programa puede colocar los valores 0 o 1 en los pines de interrupción› Esta acción puede disparar una interrupción de
acuerdo a la configuración de la Interrupción Externa
› Desde que una instrucción causa una interrupción, esta es llamada interrupcion por Software
Ejemplo Interrupciones Externas
09/09/10 Ing. Germán Pereira Muñoz - Interrupciones Externas
22
09/09/10 Ing. Germán Pereira Muñoz - Interrupciones Externas
23
09/09/10 Ing. Germán Pereira Muñoz - Interrupciones Externas
24