Introducción a los Microcontroladores
Introducción
Arquitectura
Memoria
I/O
Interrupciones
Timers/PWM
Interfaces y Otros Periféricos
Introducción
Uso de los microcontroladores
Microondas, Lavarropas, Televisores, …
Automóviles, aviones, barcos
Teléfonos
Automatización industrial
Pequeños dispositivos ad-hoc
…
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
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)
Introducción
Diseño discreto.
Introducción
Diseño Integrado.
ATmega16 (atmel)
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)
Oferta de Microcontroladores
Oferta de Microcontroladores
Oferta de Microcontroladores
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
Oferta de Microcontroladores
MC9RS08KA Family
Arquitectura
Arquitectura: Procesador
Arquitectura
Von Neuman vs. Hardvard
CISC vs. RISC
Tamaño/variedad de las instrucciones
Velocidad: clock; 8/16/32 bits
Arquitectura
de las instrucciones
Por stack
Por acumulador
Dos direcciones
Tres direcciones
Arquitectura
Modos de direccionamiento
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.
Memoria: Tipo físicos
Memoria: Atención
S/DRAM: sin limite de escrituras
EEPROM: 100.000 ciclos de borrado
Flash: 10.000 ciclos de borrado
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
Memoria: Direccionamiento
Separado
Memoria: Direccionamiento
Continuo
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?
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.
Digital I/O
(Gp:) pin 1 del port B
Módulo de Interrupción 1 – entrada 5
Pin Tx de puerto serie
Conversor AD canal 5
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.
Digital I/O
Digital I/O
Digital I/O
PTBDD = 0x80; // initialize PTB7 as output
PTBD = 0; // initialize PTB to 0
PTBD_PTBD7 = ~PTBD_PTBD7; // invert the output
(Gp:) 1 0 0 0 0 0 0 0
Ejemplo:
(Gp:) bit 7
(Gp:) bit 0
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.
Digital Input
La entrada se muestrea con cada pulso (flanco ascendente normalmente) del clock, lo que ocasiona metaestabilidad:
Digital Input
Normalmente incorporan un Schmitt-trigger.
Para reducir la metaestabilidad se introducen sincronizadores
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).
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
Analog I/O
Conversión DIGITAL a ANALOGICA:
Usando un modulador de ancho de pulso
Conversión DIGITAL a ANALOGICA:
Por redes del tipo R-2R. Para r bits sería:
Conversión Analógica-Digital (CAD)
Comparador: determina si V1 >V2 y arroja 1, ó 0 en caso contrario.
Conversión Analógica-Digital (CAD)
Conversion de valor
ESTA PRESENTACIÓN CONTIENE MAS DIAPOSITIVAS DISPONIBLES EN LA VERSIÓN DE DESCARGA