Departamento de Automatización y Control Industrial - DACI
Temario •
Microcontroladres AVR
Registros Microcontroladores AVR Característias ATMEGA 164P
• •
CARACTERÍSTICAS BÁSICAS Microcontrolador de 8-bits RISC Arquitectura Hardvard Memoria de Programa (FLASH) Memoria de Datos (RAM) Memoria de Datos (EEPROM) Timers Puertos I/O
• • • • • • •
CARACTERÍSTICAS ESPECIALES ADC PWM Interfaces seriales (USART, SPI, I2C, CAN, USB )
• • •
Vista simplificada de un Microcontrolador AVR
Arquitectura nucleo de un Microcontrolador AVR
AVR CPU •
•
•
•
La función principal de la CPU es asegurar la correcta ejecución de programas. La CPU debe tener acceso a las memorias, realizar cálculos, controlar periféricos y manejar interrupciones. Para maximizar el rendimiento y paralelismo, el AVR usa una arquitectura Harvard – con memorias y buses separados para instrucciones y datos. La ALU soporta operaciones aritméticas y lógicas entre registros o entre un registro y una constante. Aunque también hay operaciones con un solo registro.
EJECUCIÓN DE INSTRUCCIONES •
•
•
El flujo del programa por naturaleza es secuencial. Las instrucciones en la memoria de Programa son ejecutadas con una segmentación de dos etapas. Mientras una instrucción está siendo ejecutada, la siguiente es capturada de la memoria de programa. Este concepto hace que se produzca una instrucción por cada ciclo de reloj.
Funcionamiento
Familia AVR
Se pueden clasificar en: Clasico, Mega, Tiny, especiales. AVR CLASICOS (AT90Sxxxx): Chip inicial de los microcontroladores AVR
MEGA AVR (ATmegaxxxx): Poderoso micrcontrador con mas de 120 instrucciones, alta capacidad de perifericos, algunas características: Programa de memoria: 4K a 256 K bytes Paquete: 28 – 100 pines Set ampliado de instrucciones
Algunos Uc de la Familia ATmega
MFL
GBGA
Familia AVR Tiny AVR (ATtinyxxxx): Tiene menos instrucciones y es de menor tamaño en comparación con la familia mega.
Programa de memoria: 1K a 8 K bytes Paquete: 8 – 28 pines Perifericos limitados Set de instrucciones limitadas. Ejemplo no tiene instrucción de multiplicación
AVR PROPOSITO ESPECIAL: Tienen características especiales diseñado para aplicaciones especificas: Controlador USB , CAN ( Controller Area Network), Zigbee, Ethernet, FPGA, PWM avanzado
COMPARACIÓN CON OTRAS FAMILIAS 8-bits
Temario •
Microcontroladres AVR
Registros Microcontroladores AVR Característias ATMEGA 164P
• •
Registros Microcontroladores AVR 32 registros de propósito general Todos pueden ser (en principio) operando y resultado en las operaciones con la ALU. No todos los registros admiten las mismas operaciones. Ej: la carga en modo inmediato sólo se puede realizar con los registros R16-R31 La arquitectura AVR está hecha de forma que los registros también son visibles como si fuesen las primeras posiciones de memoria
• •
•
•
Algunos registros especiales (registro de estado, puntero de pila...) son accesibles como si fuesen parte de los registros de E/S, y no están conectados a la ALU Registro Estado (SREG) contiene información acerca de los resultados de las instrucciones aritméticas más recientes ejecutadas
Registro Estado (SREG) contiene información acerca de los resultados de las instrucciones aritméticas más recientes ejecutadas
Puntero de pila o stack pointer •
•
•
•
•
Apunta al primer lugar vacío (o último dato escrito) de una estructura LIFO (Last-In, First-Out) La pila tiene un crecimiento hacia abajo, es decir, de las direcciones altas de memoria a las direcciones bajas. El puntero se decrementa e incrementa automáticamente Útil para subrutinas, pase de parámetros y tamaño de datos variable Se maneja con PUSH (introducir un dato) y POP (sacar un dato)
Temario Microcontroladres AVR Registros Microcontroladores AVR
• •
•
Característias ATMEGA 164P
Atmega 164P CARACTERÍSTICAS: Microcontrolador AVR de 8 bits de alto rendimiento y bajo consumo.
•
Arquitectura Avanzada RISC •
•
•
•
131 instrucciones. La mayoría de un solo ciclo de reloj de ejecución. 32 registros de trabajo de 8 bits para propósito general. Capacidad de procesamiento de unos 20 MIPS a 20 MHz. Multiplicador por hardware de 2 ciclos
Memorias de programa y de datos no volátiles de alta duración 16 K bytes de FLASH auto programable en sistema 512B bytes de EEPROM 1 Kbytes de SRAM Interna Ciclos de escritura/borrado: 10.000 en Flash / 100.000 en EEPROM
•
•
•
•
Interfase JTAG - Capacidades de Boundary Scan de acuerdo con el estándar JTAG - Soporte Extendido Debug dentro del chip - Programación de FLASH, EEPROM, fusibles y bits de bloqueo a través de la interfase JTAG (Joint Test Action Group).
Características de los periféricos - Dos Timer/Contadores de 8 bits con prescalamiento separado y modo comparación. - Un Timer/Contador de 16 bits con prescalamiento separado, modo comparación y modo de captura. - Contador en Tiempo Real con Oscilador separado - 6 Canales para PWM - ADC de 10 bits y 8 canales - Dos puertos Seriales USART Programables - Interfaz Serial SPI maestro-esclavo - Watchdog Timer programable con oscilador independiente, dentro del mismo chip. - Comparador Analógico dentro del mismo Chip
Características especiales del microcontrolador - Power-on Reset (en el encendido) y detección de Brown-out (pérdida de polarización) programable. - Oscilador RC interno calibrado. - Fuentes de interrupción externas e internas. - 6 modos de descanso: idle, Reducción de Ruido ADC, Power-save, Power-down, Standby
Reucción de Ruido ADC. detiene al CPU y a todos los módulos de E/S excepto al Reloj Asincrónico y al ADC, para minimizar el ruido durante la conversión. Modo Standby. el oscilador Cristal/Resonador está corriendo mientras el resto de dispositivos están descansando. Estos permiten comenzar una rápida combinación con el consumo de baja energía. Modo Power-dow. guarda el contenido de los registros pero paraliza al oscilador, desactiva todas las otras funciones de chip hasta la próxima interrupción o mediante reseteo por hardware. Modo Power-save. el reloj asincrónico continúa corriendo, permitiendo tener actualizado al reloj mientras el resto de dispositivos están descansando
Distribución de pines Atmega 164p
Mapa de memoria
Bibliografía 1. Muhammad Ali Mazidi (2011). The avr microcontroller and embedded system. 2. Yago Torroja & Jorge Portilla, “Curso de Microcontroladores”, Escuela Técnica
Superior de Ingenieros Industriales, Universidad Politécnica de Madrid
Departamento de Automatización y Control Industrial - DACI
[email protected]