Professional Documents
Culture Documents
2
Microcontrolador AT90S2313
Sistema de control de interrupciones y RESET
3
Microcontrolador AT90S2313
Sistema de control de interrupciones y RESET
4
Microcontrolador AT90S2313
Sistema de control de interrupciones y RESET
• Reset externo
5
Microcontrolador AT90S2313
Sistema de control de interrupciones y RESET
• Watchdog Reset
6
Microcontrolador AT90S2313
Sistema de control de interrupciones y RESET
7
Microcontrolador AT90S2313
Sistema de control de interrupciones y RESET
10
Microcontrolador AT90S2313
Registros de entrada/salida
32 registros
64 registros E/S
SRAM
11
Microcontrolador AT90S2313
Registros de entrada/salida
32 registros
64 registros E/S
SRAM
12
Microcontrolador AT90S2313
Registros del sistema
• Permiten configurar:
– - Interrupciones externas.
– - Modos de bajo consumo.
• Registros:
– GIMSK
– GIFR
– MCUCR
13
Microcontrolador AT90S2313
Registros del sistema (GIMSK)
14
Microcontrolador AT90S2313
Registros del sistema (GIFR)
15
Microcontrolador AT90S2313
Registros del sistema (MCUCR)
17
Microcontrolador AT90S2313
Registros del sistema (MCUCR)(cont.)
18
Microcontrolador AT90S2313
Registros del sistema (MCUCR)(cont.)
19
Microcontrolador AT90S2313
Puertos
20
Microcontrolador AT90S2313
Puerto B
22
Microcontrolador AT90S2313
Puerto B(cont.)
• PINB (R)
– Permite la lectura de los valores lógicos de los
pines.
23
Microcontrolador AT90S2313
Puerto B(cont.)
24
Microcontrolador AT90S2313
Puerto D
26
Microcontrolador AT90S2313
Puerto D(cont.)
• PIND (R)
– Permite la lectura de los valores lógicos de los
pines.
27
Microcontrolador AT90S2313
Puerto D(cont.)
28
Microcontrolador AT90S2313
Temporizadores/Contadores
30
Microcontrolador AT90S2313
Temporizadores/Contadores (TIMSK)
31
Microcontrolador AT90S2313
Temporizadores/Contadores (TIFR)
32
Microcontrolador AT90S2313
Temporizadores/Contadores (TIFR) (cont.)
• Timer/Counter Interrupt Flag register (cont.).
– OCF1A: Se pone a 1 los contenidos del timer 1 y el registro
de comparación, coinciden. Si los bits OCIE1A de TIMSK e I
de SREG están a 1, la CPU salta a ejecutar la instrucción
situada en la dirección $004.
– ICF1: Se pone a 1 si el contenido del timer1 se ha transferido
al registro ICR. Si los bits TICIE de TIMSK e I de SREG están
a 1, la CPU salta a ejecutar la instrucción situada en la
dirección $003.
– Los flags TOV0 y TOV1 se ponen a cero automáticamente
cuando se ejecuta la rutina de interrupción correspondiente,
o se ponen a cero manualmente ¡ESCRIBIENDO un 1!
33
Microcontrolador AT90S2313
Temporizador 0
• Dispone de un contador de 8 bits (TCNT0)
• Un registro de control TCCR0 que configura la señal de
reloj que llega al TCNT0
• Registros de habilitación y flags (TIFR,TIMSK)
34
Microcontrolador AT90S2313
Temporizador 0
• Registro TCCR0.
35
Microcontrolador AT90S2313
Temporizador 0
• Registro TCNT0
– Contador ascendente.
– Overflow cuando pasa de 0xFF a 0x00
– El contador se carga en el ciclo posterior a su
escritura
36
Microcontrolador AT90S2313
Temporizador 1
• Dispone de un contador de 16 bits (TCNT1H,
TCNT1L)
• Un registro de captura de 16 bits (ICR1H,ICR1L)
• Un registro de comparación de salida (OCR1AH,
OCR1AL)
• Controla el comportamiento de la salida OC1 (PB3)
ante determinados eventos.
• Generación PWM.
• Posibilidad de generación de tres interrupciones
(TIMSK, TIFR) 37
Microcontrolador AT90S2313
Temporizador 1
38
Microcontrolador AT90S2313
Temporizador 1
• TCNT1H y TCNTL
– Se incrementa en cada ciclo programado de
prescaler.
– La lectura y escritura simultánea de los 16 bits se
realiza a través del registro oculto TEMP (8 bits).
• OCR1AH y OCR1AL
– Su contenido se compara continuamente con TCNT1.
– En coincidencia, el flag OCF1A del TIFR se activa y se
actúa según se programó en los registros de control.
– Si los bits OCIE1A de TIMS e I de SREG están a 1, se
genera la interrupción de vector $4.
• ICR1H y ICR1L
– Registro de 16 bits de sólo lectura que se carga con
el contenido de TCNT1 cuando se detecta un flanco
en la entrada ICP (PD6).
– A la vez que la transferencia, se activa el flag ICF1
del TIFR, y si los bits OCIE1A de TIMS e I de SREG
están a 1, se genera la interrupción de vector $3.
• TCCR1B
• º
42
Microcontrolador AT90S2313
Temporizador 1
• TCCR1B(cont.)
– CTC1: Si es 1, TCNT1 se pone a 0 un ciclo de reloj de
CPU después de la coincidencia en comparación. Si es
0, prosigue su cuenta.
– ICES1: Escoge el tipo de flanco, que en la entrada
ICP, genera la captura. (1) subida, (0) bajada.
– ICNC1: Cancela ruido sobre el terminal ICP. (1) Activo
(0) Inactivo.
• Muestrea la entrada ICP durante cuatro ciclos
consecutivos.
• Se consideran valores válidos de ICP aquellos que
mantienen su constancia durante los cuatro ciclos.
43
Microcontrolador AT90S2313
Temporizador 1
• TCCR1A
44
Microcontrolador AT90S2313
Temporizador 1
• TCCR1A(cont.)
– PWM11,PWM10: Seleccionan el modo de modulación
por anchura de pulsos que actúa sobre la salida OC1.
45
Microcontrolador AT90S2313
Temporizador 1
• TCCR1A(cont.)
– Cuando el contenido de TCNT1 coincide con los 8,9 o
10 LSB’s de OCR1A, el pin OC1 se activa o borra
dependiendo de COM1A1, COM1A0.
47
Microcontrolador AT90S2313
UART (Comunicaciones serie asíncronas)
RX RX
SDU1
Inicia la recepción
reposo reposo
TX
SDU2 SDU1 ← tiempo
48
Microcontrolador AT90S2313
UART (Comunicaciones serie asíncronas)
• Generador
Transmisor TX
de baudios
•
• Lógica de
control e Receptor RX
interrupciones
•
UART
49
Microcontrolador AT90S2313
UART (Comunicaciones serie asíncronas)
• UART en el AT90S2313
– - SDU: 8bits de datos + 1 bit (opcional)
– - Diferentes velocidades de transferencia y recepción.
– - No es posible configurar el transmisor y el receptor
con parámetros diferentes.
– - Transmisor y receptor individualmente activos o
inactivos.
– - Detección de errores en recepción.
– - Posibilidad de generación de interrupciones.
– - Registros: UDR, USR, UCR y UBRR.
50
Microcontrolador AT90S2313
UART (Comunicaciones serie asíncronas)
• Bus de datos
•
UDR
SDU
TxD
TxSHR
7 6 5 4 3 2 1 0
RX TX UDRE FE OR
USR
51
Microcontrolador AT90S2313
UART (Comunicaciones serie asíncronas)
52
Microcontrolador AT90S2313
UART (Comunicaciones serie asíncronas)
•
Bus de datos
•
UDR
Dato
RxD
RxSHR
7 6 5 4 3 2 1 0
RX TX UDRE FE OR
USR
53
Microcontrolador AT90S2313
UART (Comunicaciones serie asíncronas)
• 5
54
Microcontrolador AT90S2313
UART (Comunicaciones serie asíncronas)
•
55
Microcontrolador AT90S2313
UART (Comunicaciones serie asíncronas)
56
Microcontrolador AT90S2313
UART (Comunicaciones serie asíncronas)
•
&
& Interrupción
• &
7 6 5 4 3 2 1 0
USR RX TX UDRE FE OR
57
Microcontrolador AT90S2313
UART (Comunicaciones serie asíncronas)
–
– - RxEN a 1 habilita el receptor y pone el pin
PD0(RXD) como entrada (independientemente del
valor del bit DDRD0). Un 0 inhabilita el receptor.
– - TxEN a 1 habilita el transmisor y pone el pin PD1
(TXD) como salida, con independencia de DDRD1.
Un 0 inhabilita el transmisor.
58
Microcontrolador AT90S2313
UART (Comunicaciones serie asíncronas)
–
– - En transmisión la SDU contiene los 8 bits
depositado en el UDR más el bit TXB8 del UCR.
– - En recepción, los 8 bits lsb's de la SDU se
mandan al registro UDR mientras que el noveno bit
se escribe en el bit RXB8 del UCR. 59
Microcontrolador AT90S2313
UART (Comunicaciones serie asíncronas)
60
Microcontrolador AT90S2313
Perro guardían (Watchdog)
61
Microcontrolador AT90S2313
Perro guardían (Watchdog)
• WDTCR
62
Microcontrolador AT90S2313
Perro guardían (Watchdog)
63