• No se han encontrado resultados

Tema 4: Microcontrolador AT90S2313

N/A
N/A
Protected

Academic year: 2021

Share "Tema 4: Microcontrolador AT90S2313"

Copied!
63
0
0

Texto completo

(1)

Tema 4: Microcontrolador

Tema 4: Microcontrolador

AT90S2313

AT90S2313

- Sistema de interrupciones y RESET

- Sistema de interrupciones y RESET

- Mapa de registros de E/S

- Mapa de registros de E/S

- Registros del sistema

- Registros del sistema

- Puertos B y D

- Puertos B y D

- Temporizadores

- Temporizadores

- UART

- UART

- Perro guardián

- Perro guardián

(2)

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

Sistema de control de interrupciones y RESET

Sistema de control de interrupciones y RESET

Un RESET reinicia la ejecución de instrucciones y

Un RESET reinicia la ejecución de instrucciones y

sitúa al microcontrolador en un estado inicial

sitúa al microcontrolador en un estado inicial

conocido.

conocido.

Existen tres causas que activan un RESET

Existen tres causas que activan un RESET

– Power On Reset ( encendido )Power On Reset ( encendido )

– Reset externo ( terminal de Reset )Reset externo ( terminal de Reset )

– Watchdog reset ( activado por el perro guardián )Watchdog reset ( activado por el perro guardián )

(3)

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

Sistema de control de interrupciones y RESET

Sistema de control de interrupciones y RESET

Estructura de generación de un reset interno

Estructura de generación de un reset interno

(4)

Power On Reset (POR)

Power On Reset (POR)

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

Sistema de control de interrupciones y RESET

Sistema de control de interrupciones y RESET

(5)

Reset externo

Reset externo

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

Sistema de control de interrupciones y RESET

Sistema de control de interrupciones y RESET

(6)

Watchdog Reset

Watchdog Reset

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

Sistema de control de interrupciones y RESET

Sistema de control de interrupciones y RESET

(7)

Tras un RESET interno, el microcontrolador inicia

Tras un RESET interno, el microcontrolador inicia

el proceso de ejecución de instrucciones a partir

el proceso de ejecución de instrucciones a partir

de la dirección 0 de la memoria de programa.

de la dirección 0 de la memoria de programa.

Otras causas (interrupciones) provocan que se

Otras causas (interrupciones) provocan que se

inicie la ejecución de instrucciones en posiciones

inicie la ejecución de instrucciones en posiciones

determinadas de la memoria de programa

determinadas de la memoria de programa

( vectores de interrupción)

( vectores de interrupción)

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

Sistema de control de interrupciones y RESET

Sistema de control de interrupciones y RESET

(8)

¿Qué es una interrupción?

¿Qué es una interrupción?

– Evento que requiere la suspensión (interrupción) Evento que requiere la suspensión (interrupción) del programa actual y la ejecución de una rutina

del programa actual y la ejecución de una rutina

concreta (rutina de interrupción), al final de la cual

concreta (rutina de interrupción), al final de la cual

se devuelve el control al programa interrumpido.

se devuelve el control al programa interrumpido.

¿Qué se necesita para procesar interrupciones?

¿Qué se necesita para procesar interrupciones?

– - Pila. Almacena la dirección de la instrucción del - Pila. Almacena la dirección de la instrucción del programa interrumpido.

programa interrumpido.

– - Rutina de interrupción - Rutina de interrupción instaladainstalada debidamente debidamente según su

según su vector de interrupciónvector de interrupción..

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

Sistema de control de interrupciones y RESET

Sistema de control de interrupciones y RESET

(9)

La tabla de vectores de interrupción

La tabla de vectores de interrupción

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

Sistema de control de interrupciones y RESET

Sistema de control de interrupciones y RESET

Vector nº Dirección de programa

Origen Definición de interrupción

1 $000 RESET Hardware Pin and Watchdog Reset

2 $001 INT0 External interrupt request 0

3 $002 INT1 External interrupt request 1

4 $003 TIMER1, CAPT1 Timer/counter 1 capture event 5 $004 TIMER1, COMP1 Timer/counter 1 compare match

6 $005 TIMER1, OVF1 Timer/counter 1 overflow

7 $006 TIMER0,OVF0 Timer/counter 0 overflow

8 $007 UART,RX UART,rx complete

9 $008 UART,UDRE UART Data register empty

10 $009 UART,TX UART, tx complete

11 $00A ANA_COMP Analog Comparator

(10)

Ejemplo de utilización de los vectores de

Ejemplo de utilización de los vectores de

interrupción.

interrupción.

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

Sistema de control de interrupciones y RESET

Sistema de control de interrupciones y RESET

$000 rjmp RESET ; Reset Handler

$001 rjmp EXT_INT0 ; IRQ0 Handler

$002 rjmp EXT_INT1 ; IRQ1 Handler

$003 rjmp TIM_CAPT1 ; Timer1 capture Handler $004 rjmp TIM_COMP1 ; Timer1 compare Handler $005 rjmp TIM_OVF1 ; Timer1 overflow Handler $006 rjmp TIM_OVF0 ; Timer0 overflow Handler $007 rjmp UART_RX ; UART RX complete Handler

$008 rjmp UART_UDRE ; UART data register empty Handler $009 rjmp UART_7X ; UART TX complete Handler

$00A rjmp ANA_COMP ; Analog Comparator Handler

(11)

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

Registros de entrada/salida

Registros de entrada/salida

SRAM 32 registros 64 registros E/S 11

(12)

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

Registros de entrada/salida

Registros de entrada/salida

SRAM 32 registros 64 registros E/S 12

(13)

Permiten configurar:

Permiten configurar:

– - Interrupciones externas. - Interrupciones externas.

– - Modos de bajo consumo.- Modos de bajo consumo.

Registros:

Registros:

– GIMSKGIMSK

– GIFRGIFR

– MCUCRMCUCR

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

Registros del sistema

Registros del sistema

(14)

Registro General Interrupt Mask.

Registro General Interrupt Mask.

– Habilita la generación de interrupciones externas a Habilita la generación de interrupciones externas a través de los pines PD2 (INT0) y PD3(INT1), si los

través de los pines PD2 (INT0) y PD3(INT1), si los

bits INT0 e INT1 están a 1. Quedan inhabilitadas

bits INT0 e INT1 están a 1. Quedan inhabilitadas

para 0.

para 0.

Las interrupciones externas pueden ser activadas

Las interrupciones externas pueden ser activadas

por nivel o por flanco (MCUCR).

por nivel o por flanco (MCUCR).

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

Registros del sistema (GIMSK)

Registros del sistema (GIMSK)

(15)

Registro General Interrupt Flag.

Registro General Interrupt Flag.

– Un evento en el pin PD2 (INT0), pone a 1 INTF0. Si los bits Un evento en el pin PD2 (INT0), pone a 1 INTF0. Si los bits INT0 de GIMSK e I de SREG están a 1, la CPU salta a

INT0 de GIMSK e I de SREG están a 1, la CPU salta a

ejecutar la instrucción situada en la dirección $001.

ejecutar la instrucción situada en la dirección $001.

– Un evento en el pin PD3 (INT1), pone a 1 INTF1. Si los bits Un evento en el pin PD3 (INT1), pone a 1 INTF1. Si los bits INT1 de GIMSK e I de SREG están a 1, la CPU salta a

INT1 de GIMSK e I de SREG están a 1, la CPU salta a

ejecutar la instrucción situada en la dirección $002.

ejecutar la instrucción situada en la dirección $002.

– Los flags INTFi se ponen a cero automáticamente cuando se Los flags INTFi se ponen a cero automáticamente cuando se ejecuta la rutina de interrupción o alternativamente se ponen

ejecuta la rutina de interrupción o alternativamente se ponen

a 0,

a 0, ¡ escribiendo un 1¡ escribiendo un 1

!.

!.

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

Registros del sistema (GIFR)

Registros del sistema (GIFR)

(16)

MCU control register.

MCU control register.

– SE: (1) Habilita la posibilidad de pasar a modo SE: (1) Habilita la posibilidad de pasar a modo

“dormido” mediante la instrucción SLEEP. (0) Inhabilita

“dormido” mediante la instrucción SLEEP. (0) Inhabilita

la posibilidad.

la posibilidad.

– En modo “dormido”, se para la ejecución de En modo “dormido”, se para la ejecución de instrucciones. Bajo consumo de energía.

instrucciones. Bajo consumo de energía.

– El microcontrolador se “despierta” cuando ocurre una El microcontrolador se “despierta” cuando ocurre una interrupción. Entonces ejecuta la interrupción y

interrupción. Entonces ejecuta la interrupción y

contínua la ejecución a continuación de la instrucción

contínua la ejecución a continuación de la instrucción

SLEEP

SLEEP

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

Registros del sistema (MCUCR)

Registros del sistema (MCUCR)

(17)

MCU control register.

MCU control register.

– SM: Selecciona entre dos “modos de dormir”SM: Selecciona entre dos “modos de dormir”

• (1)Power Down(1)Power Down

– Oscilador externo paradoOscilador externo parado

– Funcionan: watchdog, interrupciones externas y resetFuncionan: watchdog, interrupciones externas y reset

• (0)Idle Mode(0)Idle Mode

– Funcionan: temporizadores, watchdog e Funcionan: temporizadores, watchdog e interrupciones

interrupciones

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

Registros del sistema (MCUCR)(cont.)

Registros del sistema (MCUCR)(cont.)

(18)

MCU control register.

MCU control register.

– ISC11,ISC10: Configuran el modo de interrupción ISC11,ISC10: Configuran el modo de interrupción de la entrada externa INT1

de la entrada externa INT1

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

Registros del sistema (MCUCR)(cont.)

Registros del sistema (MCUCR)(cont.)

(19)

MCU control register.

MCU control register.

– ISC01,ISC00: Configuran el modo de interrupción ISC01,ISC00: Configuran el modo de interrupción de la entrada externa INT0

de la entrada externa INT0

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

Registros del sistema (MCUCR)(cont.)

Registros del sistema (MCUCR)(cont.)

(20)

Permiten

Permiten

configurar

configurar

los

los

pines

pines

del

del

microcontrolador y establecer (o leer) los valores

microcontrolador y establecer (o leer) los valores

de tensión asociados a cada uno de los pines

de tensión asociados a cada uno de los pines

Existen dos puertos:

Existen dos puertos:

– - Puerto B de 8 bits- Puerto B de 8 bits

– - Puerto D de 7 bits.- Puerto D de 7 bits.

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

Puertos

Puertos

(21)

Puerto E/S bidireccional de 8 bits. Cada pin es

Puerto E/S bidireccional de 8 bits. Cada pin es

configurado individualmente.

configurado individualmente.

Hay tres registros asociados al puerto B

Hay tres registros asociados al puerto B

– PORTB: (R/W)PORTB: (R/W)

– DDRB: (R/W)DDRB: (R/W)

– PINB: (R)PINB: (R)

Los pines del puerto disponen de resistencias de

Los pines del puerto disponen de resistencias de

pull-up que pueden activarse o no.

pull-up que pueden activarse o no.

Alternativamente, los pines del puerto pueden

Alternativamente, los pines del puerto pueden

tener otras funciones activas o no.

tener otras funciones activas o no.

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

Puerto B

Puerto B

(22)

Funciones alternativas a los pines del puerto B

Funciones alternativas a los pines del puerto B

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

Puerto B(cont.)

Puerto B(cont.)

(23)

Registro DDRB

Registro DDRB

(R/W)

(R/W)

– El bit K de este registro define si el pin K será El bit K de este registro define si el pin K será usado como entrada (0) o salida (1).

usado como entrada (0) o salida (1).

PINB (R)

PINB (R)

– Permite la lectura de los valores lógicos de los Permite la lectura de los valores lógicos de los pines.

pines.

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

Puerto B(cont.)

Puerto B(cont.)

23 23

(24)

Registro PORTB

Registro PORTB

(R/W)

(R/W)

– Si el pin K está configurado como salida, el valor Si el pin K está configurado como salida, el valor lógico del bit K de este registro, se muestra en pin

lógico del bit K de este registro, se muestra en pin

correspondiente.

correspondiente.

– Si el pin K está configurado como entrada, Si el pin K está configurado como entrada, entonces el bit K de este registro activa la

entonces el bit K de este registro activa la

resistencia de pull-up(1), o no, (0).

resistencia de pull-up(1), o no, (0).

– ¡Lecturas de este registro no reflejan el estado de ¡Lecturas de este registro no reflejan el estado de los pines!

los pines!

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

Puerto B(cont.)

Puerto B(cont.)

(25)

Puerto E/S bidireccional de 7 bits. Cada pin es

Puerto E/S bidireccional de 7 bits. Cada pin es

configurado individualmente.

configurado individualmente.

Hay tres registros asociados al puerto D

Hay tres registros asociados al puerto D

– PORTD: (R/W)PORTD: (R/W)

– DDRD: (R/W)DDRD: (R/W)

– PIND: (R)PIND: (R)

Los pines del puerto disponen de resistencias de

Los pines del puerto disponen de resistencias de

pull-up que pueden activarse o no.

pull-up que pueden activarse o no.

Alternativamente, los pines del puerto pueden

Alternativamente, los pines del puerto pueden

tener otras funciones activas o no.

tener otras funciones activas o no.

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

Puerto D

Puerto D

(26)

Funciones alternativas a los pines del puerto D

Funciones alternativas a los pines del puerto D

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

Puerto D(cont.)

Puerto D(cont.)

(27)

Registro DDRD

Registro DDRD

(R/W)

(R/W)

– El bit K de este registro define si el pin K será El bit K de este registro define si el pin K será usado como entrada (0) o salida (1).

usado como entrada (0) o salida (1).

PIND (R)

PIND (R)

– Permite la lectura de los valores lógicos de los Permite la lectura de los valores lógicos de los pines.

pines.

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

Puerto D(cont.)

Puerto D(cont.)

(28)

Registro PORTD

Registro PORTD

(R/W)

(R/W)

– Si el pin K está configurado como salida, el valor Si el pin K está configurado como salida, el valor lógico del bit K de este registro, se muestra en pin

lógico del bit K de este registro, se muestra en pin

correspondiente.

correspondiente.

– Si el pin K está configurado como entrada, Si el pin K está configurado como entrada, entonces el bit K de este registro activa la

entonces el bit K de este registro activa la

resistencia de pull-up(1), o no, (0).

resistencia de pull-up(1), o no, (0).

– ¡Lecturas de este registro no reflejan el estado de ¡Lecturas de este registro no reflejan el estado de los pines!

los pines!

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

Puerto D(cont.)

Puerto D(cont.)

(29)

Son

Son

contadores

contadores

que

que

se

se

incrementan

incrementan

periódicamente (modo temporizador) o cada vez

periódicamente (modo temporizador) o cada vez

que se genera un evento (modo contador)

que se genera un evento (modo contador)

Existen dos temp/cont:

Existen dos temp/cont:

– - T0 de 8 bits- T0 de 8 bits

– - T1 de 16 bits (con funciones añadidas)- T1 de 16 bits (con funciones añadidas)

Ambos

Ambos

temporizadores

temporizadores

pueden

pueden

generar

generar

interrupciones.

interrupciones.

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

Temporizadores/Contadores

Temporizadores/Contadores

(30)

El temporizador 0 y 1 disponen de un prescaler

El temporizador 0 y 1 disponen de un prescaler

de 10 bits que permite configurar la fuente de

de 10 bits que permite configurar la fuente de

reloj hacia cada temporizador.

reloj hacia cada temporizador.

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

Temporizadores/Contadores

Temporizadores/Contadores

(31)

Timer/Counter Interrupt Mask register.

Timer/Counter Interrupt Mask register.

– TOEI0: (1) Habilita interrupción por overflow del TOEI0: (1) Habilita interrupción por overflow del timer 0. (0) Inhabilita.

timer 0. (0) Inhabilita.

– TOEI1: Igual que TOIEO pero para el timer 1.TOEI1: Igual que TOIEO pero para el timer 1.

– OCIE1A: (1) Habilita interrupción de comparación OCIE1A: (1) Habilita interrupción de comparación del timer1. (0) Inhabilita.

del timer1. (0) Inhabilita.

– TICIE1: (1) Habilita interrupción por captura ICP. TICIE1: (1) Habilita interrupción por captura ICP. (0) Inhabilita.

(0) Inhabilita.

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

Temporizadores/Contadores (TIMSK)

Temporizadores/Contadores (TIMSK)

(32)

Timer/Counter Interrupt Flag register.

Timer/Counter Interrupt Flag register.

– TOV0: Se pone a 1 si ocurre overflow en timer 0. Si los bits TOV0: Se pone a 1 si ocurre overflow en timer 0. Si los bits TOIE0 de TIMSK e I de SREG están a 1, la CPU salta a

TOIE0 de TIMSK e I de SREG están a 1, la CPU salta a

ejecutar la instrucción situada en la dirección $006.

ejecutar la instrucción situada en la dirección $006.

– TOV1: Se pone a 1 si ocurre overflow en timer 1. Si los bits TOV1: Se pone a 1 si ocurre overflow en timer 1. Si los bits TOIE1 de TIMSK e I de SREG están a 1, la CPU salta a

TOIE1 de TIMSK e I de SREG están a 1, la CPU salta a

ejecutar la instrucción situada en la dirección $005.

ejecutar la instrucción situada en la dirección $005.

– Los flags TOV0 y TOV1 se ponen a cero automáticamente Los flags TOV0 y TOV1 se ponen a cero automáticamente cuando se ejecuta la rutina de interrupción correspondiente,

cuando se ejecuta la rutina de interrupción correspondiente,

o se ponen a cero manualmente

o se ponen a cero manualmente ¡ESCRIBIENDO un 1!¡ESCRIBIENDO un 1!

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

Temporizadores/Contadores

Temporizadores/Contadores

(TIFR)

(TIFR)

(33)

Timer/Counter Interrupt Flag register (cont.).

Timer/Counter Interrupt Flag register (cont.).

– OCF1A: Se pone a 1 los contenidos del timer 1 y el registro 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 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

de SREG están a 1, la CPU salta a ejecutar la instrucción

situada en la dirección $004.

situada en la dirección $004.

– ICF1: Se pone a 1 si el contenido del timer1 se ha transferido 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

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

a 1, la CPU salta a ejecutar la instrucción situada en la

dirección $003.

dirección $003.

– Los flags TOV0 y TOV1 se ponen a cero automáticamente Los flags TOV0 y TOV1 se ponen a cero automáticamente cuando se ejecuta la rutina de interrupción correspondiente,

cuando se ejecuta la rutina de interrupción correspondiente,

o se ponen a cero manualmente

o se ponen a cero manualmente ¡ESCRIBIENDO un 1!¡ESCRIBIENDO un 1!

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

Temporizadores/Contadores

Temporizadores/Contadores

(TIFR) (cont.)

(TIFR) (cont.)

(34)

• Dispone de un contador de 8 bits (TCNT0)Dispone de un contador de 8 bits (TCNT0)

• Un registro de control TCCR0 que configura la señal de Un registro de control TCCR0 que configura la señal de reloj que llega al TCNT0

reloj que llega al TCNT0

• Registros de habilitación y flags (TIFR,TIMSK)Registros de habilitación y flags (TIFR,TIMSK)

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

Temporizador 0

Temporizador 0

(35)

Registro TCCR0.

Registro TCCR0.

– Los bits CS0x definen la entrada de reloj del contadorLos bits CS0x definen la entrada de reloj del contador

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

Temporizador 0

Temporizador 0

(36)

Registro TCNT0

Registro TCNT0

– Contador ascendente.Contador ascendente.

– Overflow cuando pasa de 0xFF a 0x00Overflow cuando pasa de 0xFF a 0x00

– El contador se carga en el ciclo posterior a su El contador se carga en el ciclo posterior a su escritura

escritura

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

Temporizador 0

Temporizador 0

(37)

Dispone de un contador de 16 bits (TCNT1H,

Dispone de un contador de 16 bits (TCNT1H,

TCNT1L)

TCNT1L)

Un registro de captura de 16 bits (ICR1H,ICR1L)

Un registro de captura de 16 bits (ICR1H,ICR1L)

Un registro de comparación de salida (OCR1AH,

Un registro de comparación de salida (OCR1AH,

OCR1AL)

OCR1AL)

Controla el comportamiento de la salida OC1 (PB3)

Controla el comportamiento de la salida OC1 (PB3)

ante determinados eventos.

ante determinados eventos.

Generación PWM.

Generación PWM.

Posibilidad de generación de tres interrupciones

Posibilidad de generación de tres interrupciones

(TIMSK, TIFR)

(TIMSK, TIFR)

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

Temporizador 1

Temporizador 1

(38)

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

Temporizador 1

Temporizador 1

(39)

TCNT1H y TCNTL

TCNT1H y TCNTL

– Se incrementa en cada ciclo programado de Se incrementa en cada ciclo programado de prescaler.

prescaler.

– La lectura y escritura simultánea de los 16 bits se La lectura y escritura simultánea de los 16 bits se realiza a través del registro oculto TEMP (8 bits).

realiza a través del registro oculto TEMP (8 bits).

– Escritura: 1º en TCNT1H (->TEMP) y 2º en Escritura: 1º en TCNT1H (->TEMP) y 2º en TCNTIL.

TCNTIL.

– Lectura: 1º de TCNT1L (TCNT1H->TEMP) y 2º en Lectura: 1º de TCNT1L (TCNT1H->TEMP) y 2º en TCNT1H

TCNT1H

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

Temporizador 1

Temporizador 1

(40)

OCR1AH y OCR1AL

OCR1AH y OCR1AL

– Su contenido se compara continuamente con TCNT1.Su contenido se compara continuamente con TCNT1.

– En coincidencia, el flag OCF1A del TIFR se activa y se En coincidencia, el flag OCF1A del TIFR se activa y se actúa según se programó en los registros de control.

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 Si los bits OCIE1A de TIMS e I de SREG están a 1, se genera la interrupción de vector $4.

genera la interrupción de vector $4.

– Se escribe 1º en OCR1AH seguido de OCR1AL y se Se escribe 1º en OCR1AH seguido de OCR1AL y se lee, primero de OCR1AL y después OCR1AH.

lee, primero de OCR1AL y después OCR1AH.

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

Temporizador 1

Temporizador 1

(41)

ICR1H y ICR1L

ICR1H y ICR1L

– Registro de 16 bits de sólo lectura que se carga con Registro de 16 bits de sólo lectura que se carga con el contenido de TCNT1 cuando se detecta un flanco

el contenido de TCNT1 cuando se detecta un flanco

en la entrada ICP (PD6).

en la entrada ICP (PD6).

– A la vez que la transferencia, se activa el flag ICF1 A la vez que la transferencia, se activa el flag ICF1 del TIFR, y si los bits OCIE1A de TIMS e I de SREG

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.

están a 1, se genera la interrupción de vector $3.

– Se escribe 1º en OCR1AH seguido de OCR1AL y se Se escribe 1º en OCR1AH seguido de OCR1AL y se lee, primero de OCR1AL y después OCR1AH.

lee, primero de OCR1AL y después OCR1AH.

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

Temporizador 1

Temporizador 1

(42)

TCCR1B

TCCR1B

– CS12,CS11,CS10: Selecciona la temporización del CS12,CS11,CS10: Selecciona la temporización del timer1.

timer1.

º

º

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

Temporizador 1

Temporizador 1

(43)

TCCR1B(cont.)

TCCR1B(cont.)

– CTC1: Si es 1, TCNT1 se pone a 0 un ciclo de reloj de 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

CPU después de la coincidencia en comparación. Si es

0, prosigue su cuenta.

0, prosigue su cuenta.

– ICES1: Escoge el tipo de flanco, que en la entrada ICES1: Escoge el tipo de flanco, que en la entrada ICP, genera la captura. (1) subida, (0) bajada.

ICP, genera la captura. (1) subida, (0) bajada.

– ICNC1: Cancela ruido sobre el terminal ICP. (1) Activo ICNC1: Cancela ruido sobre el terminal ICP. (1) Activo (0) Inactivo.

(0) Inactivo.

• Muestrea la entrada ICP durante cuatro ciclos Muestrea la entrada ICP durante cuatro ciclos consecutivos.

consecutivos.

• Se consideran valores válidos de ICP aquellos que Se consideran valores válidos de ICP aquellos que mantienen su constancia durante los cuatro ciclos.

mantienen su constancia durante los cuatro ciclos.

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

Temporizador 1

Temporizador 1

(44)

TCCR1A

TCCR1A

– COM1A1,COM1A0: Determinan la acción sobre la COM1A1,COM1A0: Determinan la acción sobre la salida OC1 (PB3) en coincidencia en comparación.

salida OC1 (PB3) en coincidencia en comparación.

• Tienen función diferente si PWM está activo.Tienen función diferente si PWM está activo.

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

Temporizador 1

Temporizador 1

(45)

TCCR1A(cont.)

TCCR1A(cont.)

– PWM11,PWM10: Seleccionan el modo de modulación PWM11,PWM10: Seleccionan el modo de modulación por anchura de pulsos que actúa sobre la salida OC1.

por anchura de pulsos que actúa sobre la salida OC1.

– En este modo, TCNT1 actúa como un contador En este modo, TCNT1 actúa como un contador reversible, desde $0 hasta TOP y de TOP a $0.

reversible, desde $0 hasta TOP y de TOP a $0.

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

Temporizador 1

Temporizador 1

(46)

TCCR1A(cont.)

TCCR1A(cont.)

– Cuando el contenido de TCNT1 coincide con los 8,9 o Cuando el contenido de TCNT1 coincide con los 8,9 o 10 LSB’s de OCR1A, el pin OC1 se activa o borra

10 LSB’s de OCR1A, el pin OC1 se activa o borra

dependiendo de COM1A1, COM1A0.

dependiendo de COM1A1, COM1A0.

– En modo PWM, cualquier cambio en OCR1A no se En modo PWM, cualquier cambio en OCR1A no se

produce hasta que TCNT1 alcanza TOP. Esto previene

produce hasta que TCNT1 alcanza TOP. Esto previene

glitches.

glitches.

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

Temporizador 1

Temporizador 1

(47)

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

UART (Comunicaciones serie asíncronas)

UART (Comunicaciones serie asíncronas)

La comunicación serie utiliza un único hilo (+ tierra)

La comunicación serie utiliza un único hilo (+ tierra)

por el que los bits se transmiten uno detrás de otro.

por el que los bits se transmiten uno detrás de otro.

La unidad mínima de transferencia se denomina

La unidad mínima de transferencia se denomina

SDU (unidad de datos serie).

SDU (unidad de datos serie).

Una SDU contiene: un bit de start (cero lógico),

Una SDU contiene: un bit de start (cero lógico),

entre uno y dos bits de stop (1 lógico), entre 5 y 8

entre uno y dos bits de stop (1 lógico), entre 5 y 8

bits de datos y un bit de paridad (opcional) para

bits de datos y un bit de paridad (opcional) para

detección de errores.

detección de errores.

Datos Paridad Stop Start

(48)

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

UART (Comunicaciones serie asíncronas)

UART (Comunicaciones serie asíncronas)

• Un transmisor asíncrono en reposo muestra por su pin Un transmisor asíncrono en reposo muestra por su pin TX un 1.

TX un 1.

• Un receptor asíncrono muestrea su pin RX Un receptor asíncrono muestrea su pin RX continuamente. Si detecta una transición de 1 a 0 (inicio

continuamente. Si detecta una transición de 1 a 0 (inicio

de un bit de start), se procede a recibir un carácter.

de un bit de start), se procede a recibir un carácter.

TX TX RX RX SDU2 SDU1 SDU1 SDU2 TX UDR reposo reposo ← tiempo Inicia la recepción 48

(49)

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

UART (Comunicaciones serie asíncronas)

UART (Comunicaciones serie asíncronas)

• UART (Transmisor Receptor Asíncrono Universal):UART (Transmisor Receptor Asíncrono Universal):

• -Transmisor -Transmisor

• - Receptor- Receptor

• - Generador de baudios- Generador de baudios

• - Lógica de control e interrupciones- Lógica de control e interrupciones

• • • • Transmisor TX Receptor RX UART Generador de baudios Lógica de control e interrupciones 49

(50)

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

UART (Comunicaciones serie asíncronas)

UART (Comunicaciones serie asíncronas)

• UART en el AT90S2313UART en el AT90S2313

– - SDU: 8bits de datos + 1 bit (opcional)- SDU: 8bits de datos + 1 bit (opcional)

– - Diferentes velocidades de transferencia y recepción.- Diferentes velocidades de transferencia y recepción.

– - No es posible configurar el transmisor y el receptor - No es posible configurar el transmisor y el receptor con parámetros diferentes.

con parámetros diferentes.

– - Transmisor y receptor individualmente activos o - Transmisor y receptor individualmente activos o inactivos.

inactivos.

– - Detección de errores en recepción.- Detección de errores en recepción.

– - Posibilidad de generación de interrupciones.- Posibilidad de generación de interrupciones.

– - Registros: UDR, USR, UCR y UBRR.- Registros: UDR, USR, UCR y UBRR.

(51)

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

UART (Comunicaciones serie asíncronas)

UART (Comunicaciones serie asíncronas)

• UART en el AT90S2313 (Transmisor)UART en el AT90S2313 (Transmisor)

• • UDR TxSHR TxD SDU Bus de datos RX 7 6 5 4 3 2 1 0 TX UDRE FE USR OR 51

(52)

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

UART (Comunicaciones serie asíncronas)

UART (Comunicaciones serie asíncronas)

• UART en el AT90S2313 (Transmisor)UART en el AT90S2313 (Transmisor)

• • UDR TxSHR TxD SDU Escritura 1 DATO 2 3 4 RX 7 6 5 4 3 2 1 0 TX UDRE FE USR OR

0: Estado inicial: UDRE=1 y TX=1

1: Escritura de un dato en UDR 2: El paso 1 pone a 0 UDRE

3: Se forma la SDU y se traspasa al registro TxSHR. Entonces UDRE=1 y TX=0

4: La transmisión de la SDU pone a uno el bit TX

(53)

UDR RxSHR Dato RxD Bus de datos RX 7 6 5 4 3 2 1 0 TX UDRE FE USR OR

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

UART (Comunicaciones serie asíncronas)

UART (Comunicaciones serie asíncronas)

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

UART (Comunicaciones serie asíncronas)

UART (Comunicaciones serie asíncronas)

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

UART (Comunicaciones serie asíncronas)

UART (Comunicaciones serie asíncronas)

• UART en el AT90S2313 (Receptor)UART en el AT90S2313 (Receptor)

• •

(54)

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

UART (Comunicaciones serie asíncronas)

UART (Comunicaciones serie asíncronas)

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

UART (Comunicaciones serie asíncronas)

UART (Comunicaciones serie asíncronas)

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

UART (Comunicaciones serie asíncronas)

UART (Comunicaciones serie asíncronas)

• UART en el AT90S2313 (Receptor)UART en el AT90S2313 (Receptor)

• • Data RxD RH R Lectura DATO 1 1 4 2 5 3 RX 7 6 5 4 3 2 1 0 TX UDRE FE USR OR UDR RxSHR Dato 0: Estado inicial: RX=0 1: Se recibe una SDU

2: Se manda al UDR los bits de datos de la SDU y se actualizan los bits FE y OR.

3: Se activa el bit RX del USR 4: Se produce la lectura del registro UDR

5: Se borra el bit RX

(55)

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

UART (Comunicaciones serie asíncronas)

UART (Comunicaciones serie asíncronas)

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

UART (Comunicaciones serie asíncronas)

UART (Comunicaciones serie asíncronas)

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

UART (Comunicaciones serie asíncronas)

UART (Comunicaciones serie asíncronas)

• UART en el AT90S2313 (Receptor)UART en el AT90S2313 (Receptor)

• - Error de trama (FE)- Error de trama (FE)

– Se activa cuando la SDU entrante tiene un 0 como bit de stopSe activa cuando la SDU entrante tiene un 0 como bit de stop

– Se borra cuando se reciba una SDU con el bit de stop correcto.Se borra cuando se reciba una SDU con el bit de stop correcto.

• - Error de overrun (OR)- Error de overrun (OR)

– Se activa cuando la SDU del registro de desplazamiento es Se activa cuando la SDU del registro de desplazamiento es sobrescrita por otra SDU.

sobrescrita por otra SDU.

– Se borra cuando la SDU se transfiere al registro UDR.Se borra cuando la SDU se transfiere al registro UDR.

• •

(56)

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

UART (Comunicaciones serie asíncronas)

UART (Comunicaciones serie asíncronas)

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

UART (Comunicaciones serie asíncronas)

UART (Comunicaciones serie asíncronas)

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

UART (Comunicaciones serie asíncronas)

UART (Comunicaciones serie asíncronas)

• UART en el AT90S2313 (Generador de Baudios)UART en el AT90S2313 (Generador de Baudios)

– Configura la velocidad de transmisión y recepciónConfigura la velocidad de transmisión y recepción

– Registro UBRR Registro UBRR

– • •

(57)

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

UART (Comunicaciones serie asíncronas)

UART (Comunicaciones serie asíncronas)

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

UART (Comunicaciones serie asíncronas)

UART (Comunicaciones serie asíncronas)

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

UART (Comunicaciones serie asíncronas)

UART (Comunicaciones serie asíncronas)

• UART en el AT90S2313 (Configuración)UART en el AT90S2313 (Configuración)

– Se realiza en el registro UCRSe realiza en el registro UCR

• - Habilitación de interrupciones si están a 1:- Habilitación de interrupciones si están a 1:

– RXCIE: Dato nuevo en registro buffer de RX.RXCIE: Dato nuevo en registro buffer de RX.

– TXCIE: Registro desplazamiento TX vacío.TXCIE: Registro desplazamiento TX vacío.

– UDRIE: Registro buffer de TX vacío. UDRIE: Registro buffer de TX vacío.

– • •

RXCIE

7 6 5 4 3 2 1 0

TXCIE UDRIE RXEN TXEN CHR9 RXB8 TXB8

RX 7 6 5 4 3 2 1 0 TX UDRE FE OR USR UCR & & & Interrupción 57

(58)

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

UART (Comunicaciones serie asíncronas)

UART (Comunicaciones serie asíncronas)

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

UART (Comunicaciones serie asíncronas)

UART (Comunicaciones serie asíncronas)

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

UART (Comunicaciones serie asíncronas)

UART (Comunicaciones serie asíncronas)

• UART en el AT90S2313 (Configuración) (cont.)UART en el AT90S2313 (Configuración) (cont.)

– - Habilitación/Inhabilitación del transmisor (TxEN) y - Habilitación/Inhabilitación del transmisor (TxEN) y el receptor (RxEN)

el receptor (RxEN)

– –

– - RxEN a 1 habilita el receptor y pone el pin - RxEN a 1 habilita el receptor y pone el pin PD0(RXD) como entrada (independientemente del

PD0(RXD) como entrada (independientemente del

valor del bit DDRD0). Un 0 inhabilita el receptor.

valor del bit DDRD0). Un 0 inhabilita el receptor.

– - TxEN a 1 habilita el transmisor y pone el pin PD1 - TxEN a 1 habilita el transmisor y pone el pin PD1 (TXD) como salida, con independencia de DDRD1.

(TXD) como salida, con independencia de DDRD1.

Un 0 inhabilita el transmisor. Un 0 inhabilita el transmisor. – • • RXCIE 7 6 5 4 3 2 1 0

TXCIE UDRIE RXEN TXEN CHR9 RXB8 TXB8

UCR

(59)

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

UART (Comunicaciones serie asíncronas)

UART (Comunicaciones serie asíncronas)

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

UART (Comunicaciones serie asíncronas)

UART (Comunicaciones serie asíncronas)

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

UART (Comunicaciones serie asíncronas)

UART (Comunicaciones serie asíncronas)

• UART en el AT90S2313 (Configuración) (cont.)UART en el AT90S2313 (Configuración) (cont.)

– - Habilitación/Inhabilitación del noveno bit en - Habilitación/Inhabilitación del noveno bit en transmisión y recepción.

transmisión y recepción.

– CHR9 = 1, habilita, CHR9 = 0, inhabilita.CHR9 = 1, habilita, CHR9 = 0, inhabilita.

– –

– - En transmisión la SDU contiene los 8 bits - En transmisión la SDU contiene los 8 bits depositado en el UDR más el bit TXB8 del UCR.

depositado en el UDR más el bit TXB8 del UCR.

– - En recepción, los 8 bits lsb's de la SDU se - En recepción, los 8 bits lsb's de la SDU se mandan al registro UDR mientras que el noveno bit

mandan al registro UDR mientras que el noveno bit

se escribe en el bit RXB8 del UCR.

se escribe en el bit RXB8 del UCR.

RXCIE

7 6 5 4 3 2 1 0

TXCIE UDRIE RXEN TXEN CHR9 RXB8 TXB8

UCR

(60)

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

UART (Comunicaciones serie asíncronas)

UART (Comunicaciones serie asíncronas)

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

UART (Comunicaciones serie asíncronas)

UART (Comunicaciones serie asíncronas)

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

UART (Comunicaciones serie asíncronas)

UART (Comunicaciones serie asíncronas)

• UART en el AT90S2313 (Resumen de registros)UART en el AT90S2313 (Resumen de registros)

(61)

• Vigila el funcionamiento del programa. Vigila el funcionamiento del programa.

• Dispone de un oscilador propio a 1Mhz con un “prescaler” Dispone de un oscilador propio a 1Mhz con un “prescaler” programable que permite el ajuste del intervalo de

programable que permite el ajuste del intervalo de

vigilancia entre 16 y 2048ms

vigilancia entre 16 y 2048ms

• El watchdog genera un RESET interno, transcurrido el El watchdog genera un RESET interno, transcurrido el tiempo de vigilancia.

tiempo de vigilancia.

• La instrucción WDR “redispara” el tiempo de vigilancia.La instrucción WDR “redispara” el tiempo de vigilancia.

• Dispone de un registro de control, WDTCR que activa o Dispone de un registro de control, WDTCR que activa o desactiva el perro guardián y establece el intervalo de

desactiva el perro guardián y establece el intervalo de

vigilancia

vigilancia

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

Perro guardían (

Perro guardían (

Watchdog)

Watchdog)

(62)

WDTCR

WDTCR

– WDE,WDTOE habilitan o inhabilitan el perro WDE,WDTOE habilitan o inhabilitan el perro guardián.

guardián.

– WDP2-0, seleccionan el intervalo de vigilancia.WDP2-0, seleccionan el intervalo de vigilancia.

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

Perro guardían (Watchdog)

Perro guardían (Watchdog)

(63)

– Habilitación del perro guardiánHabilitación del perro guardián

• WDE = 1WDE = 1

Inhabilitación del perro guardián

Inhabilitación del perro guardián

• Escribir, a la vez, un 1 en WDTOE y WDEEscribir, a la vez, un 1 en WDTOE y WDE

• En los siguientes cuatro ciclos de reloj, escribir un 0 En los siguientes cuatro ciclos de reloj, escribir un 0 en WDE.

en WDE.

– Transcurridos cuatro ciclos de reloj de que WDTOE Transcurridos cuatro ciclos de reloj de que WDTOE se puso a 1, el hardware lo pone a 0.

se puso a 1, el hardware lo pone a 0.

Microcontrolador

Microcontrolador

AT90S2313

AT90S2313

Perro guardían (

Perro guardían (

Watchdog)

Watchdog)

Referencias

Documento similar

Artículo 1 º.Queda incluida en las disposiciones de la Ley Nº 18.237 de 20 de diciembre de 2007 de Expediente Electrónico Judicial, en lo concerniente al gobierno

Capítulo 27 Resumido: Medidas de conservación para contrarrestar las principales amenazas a la biodiversidad Amazónica.. Panel Científico por la Amazonía (PCA)

Pero antes hay que responder a una encuesta (puedes intentar saltarte este paso, a veces funciona). ¡Haz clic aquí!.. En el segundo punto, hay que seleccionar “Sección de titulaciones

Porcentaje de radiación solar interceptada (RSI; 0,35 - 2,5 µm) y de radiación fotosintéticamente activa interceptada (RFAI) a lo largo del ciclo de cultivo para las

Esta parte de la UART se encargará de transformar los caracteres de los que se compone el comando que queremos enviar a bytes con la estructura del protocolo SDI- 12, así como

the timing and I /O hardware, in our systems packed in Coprocessor 2, including the UART and keyboard drivers for Bluebox; the shared and ring buses; adapting the memory hierar- chy

EL PAPEL DE LA POLITICA FISCAL EN EL CRECIMIENTO Y DESARROLLO ECONOMICO DE MEXICO 1982-2014, UNA. PERSPECTIVA PARA EL CORTO PLAZO

#### Leal Camacho Jessica Berenice Jiménez Vázquez Miguel Angel 15-ago-11 30527780-2 Análisis del Crédito al Consumo en México; 1995-2010 Tesis Escolarizado. #### Ledezma Pedraza