1.12k likes | 1.61k Views
Introducción a los Microcontroladores. 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, ...
E N D
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 • 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
REPASO Arquitectura: Procesador
Arquitectura • Von Neuman vs. Hardvard • CISC vs. RISC • Tamaño/variedad de las instrucciones • Velocidad: clock; 8/16/32 bits
REPASO Arquitectura • de las instrucciones • Por stack • Por acumulador • Dos direcciones • Tres direcciones
REPASO 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.
REPASO 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.
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
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.
bit 7 bit 0 1 0 0 0 0 0 0 0 Digital I/O Ejemplo: PTBDD = 0x80; // initialize PTB7 as output PTBD = 0; // initialize PTB to 0 PTBD_PTBD7 = ~PTBD_PTBD7; // invert the output
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
REPASO 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.
REPASO Conversión Analógica-Digital (CAD) • Conversion de valor
REPASO 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 Conversión Analógica-Digital (CAD) • Directa (flash): muy rápida (1 bit time); muy cara 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”.
REPASO Conversión Analógica-Digital (CAD) • Seguidor (tracking): muy lenta (2r bit times) y variable; barata.
REPASO Conversión Analógica-Digital (CAD) • Aproximaciones sucesivas: velocidad media y fija en r+1 Este es el modo mas utilizado
Tensión de Referencia Salida (registro) Entrada Start Conversion Conversion Complete Habilitación Conversión Analógica-Digital (CAD) • Control del CAD
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.
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.
Estado, control y configuración reloj multiplexor comparador CAD: Ejemplo de implementación en un MCU