I decided to write about the ATmega328 microcontroller, since it is used in the most popular Arduino boards. This 8-bit processor is made by Atmel and belongs to the megaAVR series, which means that separate storage and signal pathways are used for instructions and data. The ATmega328 comes in four different packages:
1. TQFP (Thin Quad Flat Package)
TQFP is a surface mount integrated circuit package with pins extending from each of the four sides. Thru-hole mounting is impossible. This configuration has 32 pins (8 on each side). ATmega328 TQFP is used on the smaller Arduino boards, such as Arduino Nano. The main drawback of this configuration is that if the chip is accidentally blown, the entire board goes into garbage.
2. 28 MLF (MicroLeadFrame) – plastic encapsulated package with a copper leadframe substrate (no extending pins). Not used with Arduino.
3. 32 MLF. Not used with Arduino
4. PDIP (Plastic Dual In-line Package) – package with a rectangular housing and two parallel rows of pins.
This package may be thru-hole mounted on a PCB or (in the case of Arduino) inserted in a socket. Mounting directly into a breadboard is also possible.This configuration permits to easily replace a blown chip: simply pop it off, insert a new one into socket, and reupload your sketch. ATmega328 PDIP has 28 pins and is used in the most popular Arduino board – UNO, as well as in the older Duemilanove boards.
Some of the KEY PARAMETERS of the ATmega328 include:
- 32KB ISP flash memory with read-while-write capabilities. ISP stands for In-System Programming, which means that the chip can be programmed while installed in a complete system, rather than programmed prior to installing.
- 1 KB EEPROM (Electrically Erasable Programmable Read-Only Memory – used to store small amounts of data, such as device configuration, that must be saved when power is removed.
- 2KB SRAM (Static Random-Access Memory – volatile memory, based on a logic circuitry; stores each bit; lost when not powered).
- 8-bit AVR CPU.
- Pin Count: 28 (32 for TQFP).
- 6-channel 10-bit A/D converter (converts voltage to a digital number that represents the quantity’s amplitude).
- Operating Frequency: up to 20 MIPS Throughput at 20 MHz (MIPS – Million Instructions Per Second).
- Operating voltage (Vcc): 1.5V to 5.5V.
An ATmega328 PDIP chip can be used not only in conjunction with an Arduino board, but also as an Arduino alternative. One can replicate an Arduino layout on a breadboard, using an ATmega328, an external 16MHz crystal, a 5V power supply, some sort of a serial connection, and the following pin mapping:
Here is the video of an extremely low cost Arduino simulator (skip to 1:12):
A complete list of the ATmega328 parameters here.
660-pages Datasheet here.
Available from these sellers: