Microcontroladores AVR

Una guía completa sobre la arquitectura, registros y características del microcontrolador AVR, con especial énfasis en el ATmega 164P.

Sistemas MicroprocesadosArquitectura RISC
Explorar contenido
Temario
01
Microcontroladores AVR

Características básicas y especiales, arquitectura Harvard, CPU y ejecución de instrucciones.

02
Registros Microcontroladores AVR

Registros de propósito general, registro de estado (SREG) y puntero de pila (SP).

03
Características ATmega 164P

Arquitectura RISC avanzada, memorias, periféricos y modos de bajo consumo.

Características de los Microcontroladores AVR
Características Básicas
  • Microcontrolador de 8 bits RISC
  • Arquitectura Harvard
  • Memoria de Programa (FLASH)
  • Memoria de Datos (RAM y EEPROM)
  • Timers y Puertos I/O
Características Especiales
  • ADC (Conversor Analógico-Digital)
  • PWM (Modulación por Ancho de Pulso)
  • Interfaces seriales: USART, SPI, I2C, CAN, USB
Arquitectura Núcleo AVR y CPU (pág. 9)
CPU y Arquitectura Harvard

La CPU asegura la correcta ejecución de programas, accediendo a memorias, realizando cálculos, controlando periféricos y manejando interrupciones.

El AVR usa arquitectura Harvard con memorias y buses separados para instrucciones y datos, maximizando el rendimiento. La ALU soporta operaciones aritméticas y lógicas entre registros o entre un registro y una constante.

Ejecución de Instrucciones

El flujo del programa es secuencial por naturaleza. Las instrucciones se ejecutan con una segmentación de dos etapas: mientras una instrucción se ejecuta, la siguiente es capturada de la memoria de programa. Este concepto produce una instrucción por cada ciclo de reloj.

Familia AVR
AVR Clásico (AT90Sxxxx)

Chip inicial de los microcontroladores AVR.

megaAVR (ATmegaxxxx)

Más de 120 instrucciones, alta capacidad de periféricos. Memoria: 4K–256K bytes. Paquete: 28–100 pines.

tinyAVR (ATtinyxxxx)

Menor tamaño y menos instrucciones. Memoria: 1K–8K bytes. Paquete: 8–28 pines. Periféricos e instrucciones limitados.

AVR Propósito Especial

Diseñados para aplicaciones específicas: USB, CAN, Zigbee, Ethernet, FPGA, PWM avanzado.

Familia ATmega y Comparación con Otras Familias
Algunos modelos ATmega
Registros de los Microcontroladores AVR
Banco de 32 Registros de Propósito General

Los 32 registros (R0–R31) pueden ser operando y resultado en operaciones con la ALU. Sin embargo, no todos admiten las mismas operaciones: la carga en modo inmediato solo se puede realizar con los registros R16–R31. Los registros también son visibles como las primeras posiciones de memoria.

  • Reg. puntero X (R27:R26)
  • Reg. puntero Y (R29:R28)
  • Reg. puntero Z (R31:R30)

Los punteros X, Y, Z se usan para direccionamientos indirectos e indexados.

Registro de Estado (SREG) — 0x3F
  • I: Habilitador global de interrupciones
  • T: Respaldo de un bit (BLD/BST)
  • H: Acarreo de los 4 bits inferiores
  • S: Bit de signo (XOR entre N y V)
  • V: Sobreflujo en complemento a dos
  • N: Bandera de negativo
  • Z: Bandera de cero
  • C: Bandera de acarreo
Puntero de Pila (Stack Pointer)
Stack Pointer (SP) — 0x3E:0x3D

El SP apunta al primer lugar vacío de una estructura LIFO (Last-In, First-Out). La pila crece hacia abajo, de direcciones altas a bajas. El puntero se decrementa e incrementa automáticamente. Es útil para subrutinas, paso de parámetros y datos de tamaño variable.

PUSH

Introduce un dato en la pila y decrementa el SP.

POP

Saca un dato de la pila e incrementa el SP.

Características del ATmega 328P
Arquitectura RISC Avanzada
  • 131 instrucciones, mayoría de 1 ciclo
  • 32 registros de 8 bits
  • 16 MIPS a 16 MHz
  • Multiplicador hardware de 2 ciclos
Memorias No Volátiles
  • 32K bytes FLASH auto-programable
  • 1KB EEPROM / 2KB SRAM interna
  • 10.000 ciclos Flash / 100.000 EEPROM
  • Interfaz JTAG para programación y debug
Periféricos
  • 2× Timer 8-bit + 1× Timer 16-bit
  • 6 canales PWM, ADC 10-bit 8 canales
  • USART, SPI maestro-esclavo
  • Watchdog Timer y Comparador Analógico
Modos de Bajo Consumo
  • Power-on Reset y detección Brown-out
  • Oscilador RC interno calibrado
  • 6 modos: Idle, ADC Noise Reduction, Power-save, Power-down, Standby
Mapa de Memoria — ATmega 328P (Págs. 17-280)
Mapa de Memoria

Memoria de programa

Memoria S-RAM


Sistema de reloj (Pág. 24)

La siguiente figura muestra el sistema de reloj del AVR y su distribución hacia los diferentes módulos del sistema.