Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones...
-
Upload
esmerelda-grijalva -
Category
Documents
-
view
24 -
download
4
Transcript of Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones...
![Page 1: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/1.jpg)
Introducción a los Microcontroladores
![Page 2: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/2.jpg)
Introducción a los Microcontroladores
Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos
![Page 3: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/3.jpg)
Introducción
Uso de los microcontroladores Microondas, Lavarropas,
Televisores, ... Automóviles, aviones, barcos Teléfonos Automatización industrial Pequeños dispositivos ad-hoc ...
![Page 4: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/4.jpg)
Introducción
Ejemplo. Se quiere: Leer periódicamente una temperatura Prender y apagar un calefactor Mostrar en un display la temperatura Permitir al usuario ajustar la
temperatura Posibilidad de actualizar la
funcionalidad con un interfase serie
![Page 5: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/5.jpg)
Introducción
Diseño discreto. Se requiere: Un microprocesador 20 líneas de I/O (2 chips de 16 c/u) 1 Interfaz serie (1 chip) 1 Timer (1 chip) Memoria SRAM (para variables) Memoria Flash (para programa) Memoria EEPROM (para constantes)
![Page 6: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/6.jpg)
Introducción
Diseño discreto.
![Page 7: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/7.jpg)
Introducción
Diseño Integrado.
ATmega16 (atmel)
![Page 8: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/8.jpg)
Oferta de Microcontroladores Estructurada por “familias” y
“subfamilias”. Por ejemplo, cada familia tiene el
mismo nucleo del procesador (su código será compatible): 8051,PIC,HC,ARM
O son familias orientadas a la aplicación O por performance (de diferente tipo)
![Page 9: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/9.jpg)
Oferta de Microcontroladores
![Page 10: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/10.jpg)
Oferta de Microcontroladores
![Page 11: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/11.jpg)
Oferta de Microcontroladores
![Page 12: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/12.jpg)
Oferta de Microcontroladores Dentro de cada “familia” hay
mucha varidad de dispositivos Pueden estar agrupados en
“subfamilias” Una forma de clasificación es en
base a los perifericos que integran o memoria
![Page 13: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/13.jpg)
Oferta de Microcontroladores MC9RS08KA Family
![Page 14: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/14.jpg)
Arquitectura
![Page 15: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/15.jpg)
Arquitectura: Procesador
REPASO
![Page 16: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/16.jpg)
Arquitectura Von Neuman vs. Hardvard CISC vs. RISC Tamaño/variedad de las
instrucciones Velocidad: clock; 8/16/32 bits
![Page 17: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/17.jpg)
Arquitectura de las instrucciones
Por stack Por acumulador Dos direcciones Tres direcciones
REPASO
![Page 18: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/18.jpg)
Arquitectura Modos de direccionamiento
REPASO
![Page 19: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/19.jpg)
Memoria Registros (memoria de corto plazo):
Pequeña (relativamente) Almacenamiento temporario p/CPU
Memoria de datos Relativamente Grande Almacena datos mientras el MCU funciona
Memoria de programa Relativamente Grande De preferencia, mantiene el programa
incluso con el MCU apagado.
![Page 20: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/20.jpg)
Memoria: Tipo físicos
REPASO
![Page 21: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/21.jpg)
Memoria: Atención S/DRAM: sin limite de escrituras EEPROM: 100.000 ciclos de
borrado Flash: 10.000 ciclos de borrado
![Page 22: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/22.jpg)
Memoria: Direccionamiento Separado:
Cada tipo físico se direcciona por separado (por ejemplo, usando diferentes registros índices)
Hay direcciones repetidas Contínuo:
Se accede siempre igual y la logica interna accede a la memoria que corresponde
No hay direcciones repetidas
![Page 23: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/23.jpg)
Memoria: Direccionamiento Separado
![Page 24: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/24.jpg)
Memoria: Direccionamiento Continuo
![Page 25: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/25.jpg)
Memoria: ejercicio For (i=100;i>=0;i--) Inadvertidamente i es almacenada en EEPROM Inadvertidamente i esta implementada como
unsigned Como la EEPROM es lenta, cada iteración lleva,
digamos, 10 ms ¿Que pasa al conectar el MCU?:
el programa se cuelga Me doy cuenta, digamos, a los 10 segundos Empiezo a “debuggear” el programa (pero no apago el
MCU)¿En cuanto tiempo me quedo sin microcontrolador?
![Page 26: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/26.jpg)
I/O
![Page 27: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/27.jpg)
Digital I/O Implementadas por pines de conexión
directa al exterior: Los MCU tienen en general de 8 a 32 pines
(o más). Se agrupan en “ports” de a 8 pines. En general, los pines se pueden configurar
como entrada o salida La lógica puede ser positiva o negativa. Los pines pueden tener otras funciones
alternativas.
![Page 28: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/28.jpg)
Digital I/O
•pin 1 del port B
•Módulo de Interrupción 1 - entrada 5
•Pin Tx de puerto serie
•Conversor AD canal 5
![Page 29: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/29.jpg)
Digital I/O Los pines se controlan mediante 3
registros: Data Direction Register (DDR): hay uno por
cada puerto y cada bit determina la dirección de un pin.
Port Register (PORT): uno por cada puerto y cada bit controla el estado del puerto (si es de salida)
Port Input Register (PIN): uno por cada puerto y cada bit da el estado de su respectivo pin, esté este configurado como entrada o salida.
![Page 30: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/30.jpg)
Digital I/O
![Page 31: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/31.jpg)
Digital I/O
![Page 32: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/32.jpg)
Digital I/O
PTBDD = 0x80; // initialize PTB7 as output PTBD = 0; // initialize PTB to 0 PTBD_PTBD7 = ~PTBD_PTBD7; // invert the output
Ejemplo:bit 7 bit 0
![Page 33: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/33.jpg)
Digital I/O PORT Register: de preferencia
debe escribirse con operaciones de escritura de bit, si estan disponibles
Caso contrario usar : Read-Modify-Write con cuidado.
![Page 34: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/34.jpg)
Digital Input La entrada se muestrea con cada
pulso (flanco ascendente normalmente) del clock, lo que ocasiona “metaestabilidad”:
![Page 35: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/35.jpg)
Digital Input Normalmente incorporan un
Schmitt-trigger. Para reducir la “metaestabilidad”
se introducen “sincronizadores”
![Page 36: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/36.jpg)
Digital Input Cancelación de ruidos Resistencias de pull-up/down en las
entradas: puede (debe) programarse su conexión/desconexión (a veces mediante el registro PORT).
![Page 37: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/37.jpg)
Digital Output Apenas el DDR setea un pin como
salida, el MCU excita el pin de acuerdo al contenido del registro PORT correspondiente.
Cuidado con los cortocircuitos Orden de seteo de DDR y PORT
![Page 38: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/38.jpg)
Analog I/O Conversión DIGITAL a ANALOGICA:
Usando un modulador de ancho de pulso
![Page 39: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/39.jpg)
Conversión DIGITAL a ANALOGICA:
Por redes del tipo R-2R. Para r bits sería:
REPASO
![Page 40: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/40.jpg)
Conversión Analógica-Digital (CAD)
Comparador: determina si V1 >V2 y arroja 1, ó 0 en caso contrario.
![Page 41: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/41.jpg)
Conversión Analógica-Digital (CAD)
Conversion de valor
REPASO
![Page 42: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/42.jpg)
Conversión Analógica-Digital (CAD)
La velocidad de muestreo determina la máxima frecuencia posible de muestrear (fmax<fs/2). Además, hay que tener en cuenta el tiempo que puede llevar la conversión.
La conversion lleva tiempo: para asegurar la estabilidad se usa una etapa de retención (sample-hold)
REPASO
![Page 43: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/43.jpg)
Conversión Analógica-Digital (CAD)
Directa (flash): muy rápida (1 bit time); muy cara
REPASO
Este modo de conversión rápido es utilizado en algunos MCU y por lo general, no hay mas de 1 o 2 canales “rápidos”.
![Page 44: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/44.jpg)
Conversión Analógica-Digital (CAD)
Seguidor (tracking): muy lenta (2r bit times) y variable; barata.
REPASO
![Page 45: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/45.jpg)
Conversión Analógica-Digital (CAD)
Aproximaciones sucesivas: velocidad media y fija en r+1
REPASO
Este es el modo mas utilizado
![Page 46: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/46.jpg)
Conversión Analógica-Digital (CAD)
Control del CAD
Habilitación
Tensión de Referencia
Entrada Salida (registro)
Conversion Complete
Start Conversion
![Page 47: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/47.jpg)
Conversión Analógica-Digital (CAD) Los MCU pueden tener de 4 a 16 o más entradas
(canales) y un solo CAD, de 8 a 12 bits de precisión. Se multiplexan los canales (aumentan los tiempos) Autoincremento: al leer un canal, se pasa al
siguiente y se efectúa un SC automáticamente. Existe el “modo contínuo” y de disparos sucesivos
mediante el RTC Una conversión puede “dispararse” por eventos
como un timer, una variación de una entrada digital o una señal externa.
![Page 48: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/48.jpg)
CAD: Ejemplo de características en un MCU
Linear successive approximation algorithm with 12 bits resolution.
Up to 28 analog inputs. Output formatted in 12-, 10- or 8-bit right-justified format. Single or continuous conversion (automatic return to idle after
single conversion). Configurable sample time and conversion speed/power. Conversion complete flag and interrupt. Input clock selectable from up to four sources. Operation in wait or stop3 modes for lower noise operation. Asynchronous clock source for lower noise operation. Selectable asynchronous hardware conversion trigger. Automatic compare with interrupt for less-than, or greater-than
or equal-to, programmable value.
![Page 49: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/49.jpg)
CAD: Ejemplo de implementación en un MCU
Estado, control y configuración
reloj
multiplexor
comparador
![Page 50: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/50.jpg)
CAD: Ejemplo de un registro de configuración
![Page 51: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/51.jpg)
// Configures ADC peripheral (ADC clock = 6.25MHz)
// Bus clock as clock source, 12-bit conversión and divisor=4
ADCCFG = 0x44;
![Page 52: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/52.jpg)
Conversión Analógica-Digital
![Page 53: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/53.jpg)
Conversión Analógica-Digital
![Page 54: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/54.jpg)
Introducción a los Microcontroladores
Introducción Arquitectura Memoria I/O Interrupciones Timers Interfaces y Otros Periféricos
![Page 55: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/55.jpg)
Interrupciones Un programa sin uso de interrupiones (polling):
¿inconvenientes?
Procesar
Producir salidas
. . .do_init();. . .for (;;) {
do_inputs();do_some_process();set_outputs()
}
Inicializa-ciones
Leer entradas
![Page 56: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/56.jpg)
Interrupciones Con interrupciones:
Pueden no existir
Procesar
Producir salidas
. . .do_init();. . .interrupts_on;for (;;) {
do_some_process();set_outputs()
}
Atender evento 1
Atender evento 2
Atender evento n
. . .
Inicializa-ciones
![Page 57: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/57.jpg)
Interrupciones Las interrupciones se generan
cuando cuando cambia un “estado”.
Permiten la reacción ante eventos Restricciones de tiempo real Polling vs. Interrupts Interrupt Service Routine (ISR)
REPASO
![Page 58: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/58.jpg)
Interrupciones Control de Interrupciones
Interrupt Enable (IE): bit que se setea para habilitar al controlador que llame a la ISR cuando se produce el evento.
Interrupt Flag (IF): lo setea el MCU cuando se produce el evento. Se limpia automatica o manualmente.
Interrupt mode (IM): mas de un bit para indicar si la interrupcion se produce por flanco ascendente, descendente, , etc.
Global Interrupt Enable.
![Page 59: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/59.jpg)
Interrupciones Control de Interrupciones
Inhabilitar las interrupciones no implica perder eventos.
Cuidado al limpiar la IF Normal Interrupts and NMI
![Page 60: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/60.jpg)
Interrupciones Interrupt Vector Table: es una
tabla donde se indica para cada interrupcion en donde se encuentra la ISR que la atiende.
Puede contener la dirección de la primera instrucción de la ISR respectiva o una instrucion jump (JSR) a la ISR (depende el MCU)
REPASO
![Page 61: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/61.jpg)
Interrupciones: IVT En el Atmega128 (Atmel):
![Page 62: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/62.jpg)
MC
9S0
8Q
G8
(F
rees
cale
)
![Page 63: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/63.jpg)
Interrupciones Prioridades: fijas o variables Dentro de una ISR se puede
establecer cuales interrupciones se permiten (sin hacerlo “a mano” vía los IE)
Cancelación de ruidos Eventos internos
![Page 64: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/64.jpg)
Interrupciones Pasos que ocurren ante una interrupción:
1. MCU setea la IF (esté o no habilitada la interrupción
2. Se termina la instrucción en curso o si el MCU está en estado “sleep”, se despierta.
3. Se identifica la ISR considerando los IE y la interrupcion de mas alta prioridad (si hay mas de un IF seteado).
4. Se llama a la ISR (... y ya pasó un tiempito)
![Page 65: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/65.jpg)
Interrupciones
KBI1P2
El controlador de interrupciones 1 (KBI1) tiene 8 entradas conectadas a determinados puertos
Ejemplo:
![Page 66: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/66.jpg)
Interrupciones Registros de control (ubicación en
la memoria) Son 3
dirección mnemónicos de funcion de cada bit
![Page 67: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/67.jpg)
Interrupciones
![Page 68: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/68.jpg)
![Page 69: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/69.jpg)
Interrupciones Mapeo a variables:
![Page 70: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/70.jpg)
Interrupciones Ejemplo inicialización:
void InitKBI() { /*KBI1 Init*/ KBI1SC_KBIE = 0; // Mask KBI1 interrupts KBI1ES_KBEDG3 = 0; // KBI1P3 internal pull-up, falling edge/low level KBI1ES_KBEDG2 = 0; // KBI1P2 internal pull-up, falling edge/low level KBI1PE_KBIPE3 = 1; // Enable KBI1P3 interrupts KBI1PE_KBIPE2 = 1; // Enable KBI1P2 interrupts KBI1SC_KBIMOD = 0; // Detect edges only KBI1SC_KBACK = 1; // Clear possible false interrupts KBI1SC_KBIE = 1; // Enable KBI1 interrupts
} //end InitKBI
![Page 71: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/71.jpg)
Atención de la interrupción
Interrupciones
![Page 72: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/72.jpg)
Interrupciones
Calificador: dice que la función es una subrutina de interrupción
Número de vector que debe atender esta rutina
Alternativa:
Se le puede definir al linker (archivo .prm) que guarde la direccion de la funcion directamente:
VECTOR ADDRESS 0xFFDA KBIx-ISR
Y entonces la sintaxis queda:
interrupt void KBIx_ISR(void) { ...
![Page 73: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/73.jpg)
Interrupciones En el main:
![Page 74: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/74.jpg)
Interrupciones
![Page 75: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/75.jpg)
Interrupciones Polling vs. Interrupts Siempre hay que analizar la situación
puntual, pero en general, usar interrupciones cuando: Los eventos son infrecuentes Hay mucho tiempo entre eventos El cambio de estado es importante Quiero detectar impulsos cortos Hay eventos generados por hardware (no hay
rebotes o picos) Hay muy poco para hacer así que conviene estar
en modo sleep
![Page 76: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/76.jpg)
Interrupciones Conviene “polear” cuando:
El operador es humano No se requiere una temporización precisa El estado es mas importante que el
cambio Los “impulsos” duran mucho Hay ruido en la señal Hay cosas para hacer en el main (pero no
demasiado)
![Page 77: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/77.jpg)
Introducción a los Microcontroladores
Introducción Arquitectura Memoria I/O Interrupciones Timers Interfaces y Otros Periféricos
![Page 78: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/78.jpg)
Timers Son contadores que suben o bajan
con cada pulso de reloj. El valor actual se lee de un registro
o se setea en el mismo. Cuidado al acceder a timers con
longitud de registro mayor a la palabra del MCU
![Page 79: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/79.jpg)
Timers Los timers generalmente generan
una interrupción cuando hacen overflow
Esto sirve para generar señales o eventos peródicos (con acotada precisión)
Pueden tener una señal de clock independiente del MCU. Con ella se incrementa la cuenta.
![Page 80: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/80.jpg)
Timers Prescaler
Es otro contador (de 8 o 10 bits) que trabaja contra el clock y produce una salida que es la que entra al timer.
Se logra una extension de tiempos a medir por la division del prescaler. Ejemplo:
8 bit timer, clock de 1 Mhz -> cuenta máxima 255 uS con una resolución de 1 uS
8 bit timer, clock de 1 Mhz, prescaler en 1024 -> cuenta máxima 260 ms con una resolución de 1 ms.
![Page 81: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/81.jpg)
Timers Otras fuentes de cuenta:
Pulsos externos Cristal externo: generlamente de 32.768 KHz
que implementa otro RTC independiente en el MCU
Timestamp (input capture) Puede setearse un evento para que automáticamente
se copie el valor del contador en un registro de captura. Ejemplo: cuando un comparador cambia, tomar la cuenta.
Disparo de salida (output compare) Se setea el timer una cuenta y cuando se alcanza,
automáticamente se levanta una salida, o similar.
![Page 82: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/82.jpg)
Timers Ejemplo de registros (un solo
timer)
Este timer es muy versátil y trabaja tambien como PWM
![Page 83: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/83.jpg)
![Page 84: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/84.jpg)
Timers
![Page 85: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/85.jpg)
Timers
![Page 86: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/86.jpg)
Timers Ejemplo de uso simple:
Clock=BUSclk=>8 Mhz
![Page 87: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/87.jpg)
Introducción a los Microcontroladores
Introducción Arquitectura Memoria I/O Interrupciones Timers Interfaces y Otros
Periféricos
![Page 88: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/88.jpg)
Modulación de Ancho de Pulso (PWM) Es un timer que genera una señal
periódica de salida con período y ciclo de trabajo configurables
![Page 89: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/89.jpg)
Modulación de Ancho de Pulso (PWM) Además de su uso como CDA, los
PWM se usan para controlar ABS en autos, niveles de iluminación en LCDs, control de motores, etc.
![Page 90: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/90.jpg)
Timers y PWM
![Page 91: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/91.jpg)
Otras características
RTC (Real Time Counters) Watchdog Consumo: reduccion de tensión,
frecuencia y modo sleep Reset, POR y BOR External, Internal (software) Reset Keyboard interrupts
![Page 92: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/92.jpg)
Interfaces y Otros Periféricos SCI (UART)
Provee una (o mas) interface de comunicación asincrónica serie (UART) por medio de dos hiloas (Tx y Rx)
Parámetros comunes: full o half duplex, data bits, parity bits, stop bits, baud rate
![Page 93: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/93.jpg)
Interfaces y Otros Periféricos SCI (UART)
Generalmente los modulos generan interrupciones (fin de transmisión, recepción, etc.)
De las SCI del MCU se pueden generar con componentes externos interfases físicas RS232, RS422, RS485, etc.
USART (sincrónica) Agrega un hilo para sincronismo, el cual es generado
por una de las partes Si se usa como UART, el pin se puede usar como I/O
![Page 94: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/94.jpg)
Interfaces y Otros Periféricos
SPI (Serial Peripherical Interface) Para comunicación serie mediante 4
hilos basada en master-slave: MOSI: Master Out – Slave In MISO: Master In – Slave out SCK: System Clock, generado por el master SS: Slave select. Si hay mas de una linea,
con un decodificador externo se pueden atender 2n slaves.
![Page 95: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/95.jpg)
Interfaces y Otros Periféricos
![Page 96: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/96.jpg)
Interfaces y Otros Periféricos IIC (I2C)
Inter-IC bus, de Phillips, es un bus sincrónico que opera en modo master-slave con dos hilos SCL y SDA en modo half duplex, para distancias cortas, hasta 3.4 Mbps, mediante el intercambio de tramas.
No hay límites al numero de dispositivos a conectar (capacidad total en el bus < 400pF)
Cada nodo (uno debe ser master, por lo menos) tiene una dirección de 7 o 10 bits
![Page 97: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/97.jpg)
Interfaces y Otros Periféricos
IIC (I2C)
![Page 98: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/98.jpg)
Interfaces y Otros Periféricos Ethernet
Implementación de 10/100/1000* Ethernet MAC con PHY
Para conexiones a redes de area local estándar
CAN (Controller Area Network) de Bosh y Flexcan Originalmente diseñado para su uso en
automoviles y ahora extendido a otras areas, permite la comunicación por bus en 1 Mbps hasta 40 m. mediante “broadcast”.
![Page 99: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/99.jpg)
Interfaces y Otros Periféricos Módulos de criptografía Stack TCP/IP (para módulos ethernet) IEEE 1149.1 Test Access Port (JTAG) DMA Timers QSPI (Queued SPI) EzPort, para programar la memoria flash
interna desde flash externas en forma directa
LCD controllers ...
![Page 100: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/100.jpg)
Interfaces y Otros Periféricos
![Page 101: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/101.jpg)
Arquitectura
![Page 102: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/102.jpg)
![Page 103: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/103.jpg)
MC9S08LC60
![Page 104: Introducción a los Microcontroladores. Introducción Arquitectura Memoria I/O Interrupciones Timers/PWM Interfaces y Otros Periféricos.](https://reader033.fdocumento.com/reader033/viewer/2022061303/54f2bc384a79592a388b4a9c/html5/thumbnails/104.jpg)
MCF52235