EL MICROCONTROLADOR ATMEGA328

EL MICROCONTROLADOR ATMEL ATMEGA328

El microcontrolador Atmel ATMega328 es un dispositivo pequeño y barato, pero con capacidad suficiente para realizar una cierta variedad de proyectos interesantes.
Es el microcontrolador que utilizan las placas Arduino Uno, que es la que se muestra en la siguiente imagen:

y es una de las más populares de la línea Arduino. En esta, el microcontrolador se encuentra montado en un zócalo, por lo que es removible. Esto, permite utilizar la placa Arduino Uno como base para la programación del micro, y luego retirarlo y utilizarlo en directo en el zócalo (o soldado sin zócalo) de un circuito impreso diseñado específicamente para un proyecto en particular.

Sus características son las siguienes:

- 8 KBytes de memoria Flash In-System Program Memory Flash (10.000 ciclos de regrabación)
- Encapsulado de 8 terminales (DIP8)
- 6 terminales de entrada/salida
- CPU de 8 bits
- Frecuencia máxima de trabajo de 20 MHercios
- 512 bytes de memoria tipo SRAM interna
- Tensión de alimentación de los 2.7 Voltios a 5.5 Voltios

En el siguiente esquema pueden verse en detalle las funciones que puede cumplir cada terminal del ATMega328:


El siguiente esquema muestra una placa de desarrollo que puede utilizarse para probar prototipos de circuitos basados en este microcontrolador:

La diseñé utilizando una placa perforada de 5 cm x 5 cm, incluye un regulador de tensión LM7805 para asegurar que la placa trabaje con cualquier fuente de alimentación superior a los 5V, un cristal de 16 MHz y los dos capacitores para conformar el oscilador externo y un LED con su resistencia, conectado al terminal 1 (D5).

En paralelo con los terminales del zócalo del micro, cuenta con dos tiras de conectores hembra y una de conectores macho de cada lado, lo que permite utilizar a esta placa como protoboard, al menos para configuraciones sencillas.

Y la siguiente es una versión aún más compacta:

Para cargarle el bootloader, ya sea porque el chip es nuevo, o porque se desconfiguró, se utiliza un programador, que puede ser, por ejemplo, un arduino actuando como ISP, conectando sus terminales como se indica a continuación:

PROGRAMADOR ATMega328
GND GND
+5V +Vcc
SS Reset
MOSI MOSI
MISO MISO
SCK SCL

Para programarlo se le puede conectar por ejemplo, un adaptador USB-SerieTTL, conectando sus terminales como se indica a continuación:

ADAPTADOR ATMega328
GND GND
+5V +Vcc
Rx Tx
Tx Rx