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