The ATmega328 microcontroller is the current top of the line in the 28-pin ATmega x8 series. The ATmega328 has 32kB flash memory, 2kB RAM, and 1kB EEPROM. The ATmega328 can be considered a step up from the ATmega8.
The ATmega328 will run at 3.3V with a 16MHz crystal, although it is not recommended due to the possibility of corrupting the EEPROM contents. I have run the MCU out of an Arduino at 3.3V for several days, and I have seen a video of a gentleman running an Arduino at 3.0V. I would not attempt to program the ATmega328 at that voltage and speed, though. Flash and EEPROM both have timing issues at minimum voltages. I programmed an Arduino, then pulled the ATmega328 from it and ran it on a breadboard at 3.3V.
The calculator below provides a way to find the maximum operating frequency for any valid power supply voltage (1.8 to 5.5). Enter the power supply voltage and click "Calculate Max Frequency" to find the specified maximum frequency at your Vcc.
|Power Consumption (approximate)||0.6mA/MHz|
|Maximum I/O Current (per pin)||40mA|
|Maximum I/O Current (all ports)||100mA(low)/150mA(high)|
|Maximum I/O Current (total)||200mA (PDIP)|
|Maximum I/O Current (total)||400mA (PDIP/QFP/MLF)|
A minimal ATmega328 circuit consists of an ATmega328 and something to set it on. Everything else is optional. The circuit below shows a programming port, reset circuit, and a crystal oscillator. Any or all of these could be left off and the device would function perfectly well. By default the unit runs an 8MHz internal RC oscillator, divided by 8, for a 1MHz system clock.