Memoria de código: 32 Kbyte de memoria Flash. Memoria de datos: 2
Kbytes de SRAM y 1 Kbyte de EEPROM, 23 Terminales para
entrada/salida, 26 Fuentes de interrupción Interrupciones, Facilidades
para un Reloj de Tiempo Real, Interfaz SPI como Maestro o Esclavo.
Transmisor/Receptor Universal Síncrono/Asíncrono (USART), Oscilador
interno configurable. Frecuencia máxima de trabajo 20 MHz, Voltaje de
alimentación de 1.8 a 5.5 Volts, Temporizadores; 2 de 8 bits y 1 de 16 bits
y 6 Canales PWM
Arquitectura
Para permitir el paralelismo y maximizar el rendimiento, los
AVR usan una arquitectura Harvard con memorias y buses
separados para el programa y los datos. el programa se
ubica en la memoria Flash y los datos están en 3 espacios
diferentes: en el archivo de registros (32 registros de 8 bits),
en la SRAM y en la EEPROM
Configuración
Los microcontroladores AVR incluyen dos espacios con tecnologías diferentes
para el almacenamiento de datos: SRAM y EEPROM. La SRAM sirve para el
almacenamiento de variables o datos volátiles y para el manejo de la pila de la
CPU. La EEPROM es adecuada para aquellos datos que se quieren preservar
aun en ausencia de energía, como contraseñas, parámetros de configuración,
etc. El espacio en ambos tipos de memoria puede variar entre dispositivos, un
ATMega328P cuenta con 2304 bytes de SRAM y 1024 bytes de EEPROM
Puertos de
Entrada/Salida
Los puertos de entrada/salida son el medio para
que un microcontrolador se comunique con su
entorno. El ATMega328P, tiene tres puertos: Puerto
B, C y D, los Puertos B y D son de 8 bits y el
Puerto C es de 7 bits.
Lenguaje de
programación
ATMega328P utiliza un lenguaje C. Aunque la arquitectura es
tipo RISC, el repertorio de instrucciones es de un tamaño
considerable, el ATMega328P tiene 131 instrucciones y por su
funcionalidad, están organizadas en 5 grupos: 1. Instrucciones
aritméticas y lógicas (28). 2. Instrucciones para el control de
flujo (Bifurcaciones) (36). 3. Instrucciones de transferencia de
datos (35). 4. Instrucciones para el manejo de bits (28). 5.
Instrucciones especiales (4). La ventaja de emplear un lenguaje
de alto nivel es que cuenta con estructuras de control de flujo
que facilitan la codificación de soluciones estructuradas.