ATmega328 (DIP) Symbol
Definition: The ATmega328 (DIP) symbol represents the Microchip (formerly Atmel) ATmega328P 8-bit AVR microcontroller in a 28-pin dual in-line package (DIP-28), shown in circuit schematics as a rectangular IC block with labelled port pins including PC6/RST, PD0/RX, PD1/TX, PD2–PD3, GND on the left and PB0–PB3, VCC, and AREF on the right, as conventionally depicted following ANSI/IEEE 315-1975 IC symbol conventions.
Also known as: ATmega328P, ATmega328P-PU, AVR ATmega328, Arduino MCU, ATmega DIP28.
What the ATmega328 (DIP) symbol means
The ATmega328 (DIP) symbol in a schematic represents the standalone ATmega328P microcontroller IC at the component level, exposing all functional pins so that a PCB designer can specify exactly which port pins connect to which circuit elements. Unlike the higher-level Arduino Uno block symbol, the ATmega328 symbol shows individual port pin assignments (PC6/RST, PD0/RX, PD1/TX, PD2, PD3, GND, PB0–PB3, VCC, AREF) enabling precise circuit design without the Arduino bootloader or USB interface assumptions.
The ATmega328P is the microcontroller at the heart of the Arduino Uno board, and using its bare DIP symbol allows engineers to design custom PCBs using the ATmega328P directly with their own power supply, crystal, and programming interface. The symbol's pin labels use the AVR port naming convention (Port B, Port C, Port D) with alternate functions (RX, TX, INT0, INT1, etc.) noted alongside the primary port designators.
How to identify the ATmega328 (DIP) symbol
The ATmega328 (DIP) symbol is a tall rectangle representing the 28-pin DIP-28 package. Left-side pins include PC6/RST (top-left), PD0/RX, PD1/TX, PD2, PD3, and GND going downward. Right-side pins include PB0, PB1, PB2, PB3, VCC, and AREF going from top to bottom on the right. The label 'ATmega328' or 'ATMEGA328P' appears inside the rectangle. In full-pinout symbols, all 28 pins are shown including the complete Port B (PB0–PB7), Port C (PC0–PC6), Port D (PD0–PD7), dual VCC and GND, AVCC, and AREF pins.
Function in a circuit
The ATmega328P is an 8-bit RISC microcontroller with 32 KB flash program memory, 2 KB SRAM, and 1 KB EEPROM. It operates at up to 20 MHz (16 MHz with Arduino bootloader) from a 1.8–5.5 V supply. The device has 23 programmable I/O pins organised in three 8-bit ports (B, C, D), a 6-channel 10-bit ADC (Port C), two 8-bit timers, one 16-bit timer, UART, SPI, and TWI (I2C) hardware interfaces. It executes most instructions in a single clock cycle, achieving 1 MIPS per MHz throughput.
Standards: IEC vs ANSI
| IEC 60617 | The ATmega328P DIP symbol follows IEC 60617-12 conventions for integrated circuit rectangular block symbols, with input and output pins on the left and right faces respectively and the component name inside the rectangle. IEC does not define specific symbols for commercial microcontrollers. |
|---|---|
| ANSI/IEEE 315 | ANSI/IEEE 315-1975 governs the general rectangular IC symbol format used for the ATmega328P. The pin labelling follows the manufacturer's datasheet pinout. The IC designator prefix is U (e.g., U1) per ANSI/IEEE 315. |
| Key difference | No IEC vs. ANSI glyph difference exists for the ATmega328P symbol itself; both standards use rectangular IC blocks. The pin label conventions match the manufacturer's datasheet. ANSI/IEEE 315 prescribes the U prefix; some European schematics use IC or T prefix, but U is universal in modern EDA tools. |
Terminals / pins
| Pin | Name |
|---|---|
| pc6 | PC6/RST |
| pd0 | PD0/RX |
| pd1 | PD1/TX |
| pd2 | PD2 |
| pd3 | PD3 |
| gnd | GND |
| pb0 | PB0 |
| pb1 | PB1 |
| pb2 | PB2 |
| pb3 | PB3 |
| vcc | VCC |
| aref | AREF |
Typical values
Operating voltage: 1.8–5.5 V; maximum clock: 20 MHz (at 5V), 10 MHz (at 3.3V), 8 MHz internal RC; flash: 32 KB (0.5 KB bootloader); SRAM: 2 KB; EEPROM: 1 KB; I/O pins: 23; ADC channels: 6 (10-bit); UART: 1; SPI: 1; I2C (TWI): 1; timers: 2×8-bit, 1×16-bit; current per I/O pin: 40 mA; total DC current per port: 100 mA.
Where the ATmega328 (DIP) symbol is used
- Custom PCB designs requiring the ATmega328P without the full Arduino Uno board overhead
- Embedded sensor nodes in IoT and wireless monitoring systems using the ATmega328P at 3.3 V with a low-power crystal
- Motor controller PCBs where the ATmega328P reads encoder feedback and generates PWM motor drive signals
- Data loggers storing sensor readings to EEPROM or communicating via UART to a host
- Bootloader-burned standalone Arduino-compatible PCBs for production devices where the Arduino board form factor is not required
- Educational electronics projects demonstrating bare-metal AVR programming without the Arduino IDE abstraction
- Industrial control modules requiring a self-contained 5 V microcontroller with SPI, I2C, and UART peripherals
Example
In a standalone temperature-logging PCB, the ATmega328P DIP symbol connects its AREF pin to a 3.3 V reference, PC0–PC2 (analog inputs) to three NTC thermistor voltage dividers, and PD1/TX to a MAX232 level-shifter for RS-232 logging. A 16 MHz crystal with 22 pF load capacitors connects between XTAL1 and XTAL2 pins (not shown in the simplified symbol here), and the PC6/RST pin has a 10 kΩ pull-up resistor to VCC for in-system programming.
Key facts
- The ATmega328P is an 8-bit AVR RISC microcontroller manufactured by Microchip Technology (formerly Atmel), housed in a 28-pin DIP package, operating at up to 20 MHz from 1.8–5.5 V.
- The schematic symbol exposes 12 pins in the hobbyist block: PC6/RST, PD0/RX, PD1/TX, PD2, PD3, GND on the left; PB0, PB1, PB2, PB3, VCC, AREF on the right — a subset of the full 28-pin DIP pinout.
- The ATmega328P includes 32 KB of flash, 2 KB of SRAM, and 1 KB of EEPROM; all program code executes from flash and is stored in non-volatile memory that retains data for 10,000 erase/write cycles.
- Port C pins PC0–PC5 double as the 6-channel, 10-bit ADC inputs, allowing analog voltage measurements with 5 mV resolution at 5 V supply (1,024 steps over 0–5 V range).
- The AREF pin accepts an external analog reference voltage for the ADC, allowing precision voltage measurements referenced to a stable external source rather than the noisy VCC supply.
- PC6/RST is the reset pin and must be held LOW for the chip to reset; an external 10 kΩ pull-up to VCC prevents accidental resets, and an in-system programming (ISP) header drives this pin LOW to enter programming mode.
- The ATmega328P is the microcontroller on the Arduino Uno board, pre-programmed with the Arduino bootloader at the factory; bare ATmega328P-PU chips can be programmed with the bootloader using a separate AVR ISP programmer.
- I/O pin PD0 is the hardware UART receive (RX) and PD1 is the UART transmit (TX), shared with the USB-to-serial chip on the Arduino Uno; using D0/D1 for general I/O while connected to USB causes serial communication collisions.
Frequently asked questions
What does the ATmega328 DIP symbol look like in a schematic?
The ATmega328 DIP symbol is a tall rectangle labelled 'ATmega328' or 'ATMEGA328P'. Left-side pins include PC6/RST, PD0/RX, PD1/TX, PD2, PD3, and GND from top to bottom. Right-side pins include PB0, PB1, PB2, PB3, VCC, and AREF from top to bottom. Full-pinout symbols show all 28 pins across both sides.
What is the difference between the ATmega328 symbol and the Arduino Uno symbol?
The ATmega328 symbol represents only the microcontroller IC with its individual port pins, suitable for custom PCB design. The Arduino Uno symbol represents the full development board as a black box, showing only the externally accessible header pins (D0, D2, USB, etc.) and hiding the crystal, USB bridge, and power regulation circuitry.
What are the port pins on the ATmega328P?
The ATmega328P has three I/O ports: Port B (PB0–PB7, 8 pins), Port C (PC0–PC6, 7 pins including PC6/RST), and Port D (PD0–PD7, 8 pins). Total programmable I/O: 23 pins. Port C pins PC0–PC5 also function as ADC channels ADC0–ADC5. Port D pins PD0/PD1 are the hardware UART RX/TX.
What standard governs the ATmega328 schematic symbol?
The ATmega328 schematic symbol follows ANSI/IEEE 315-1975 and IEC 60617-12 conventions for rectangular IC block symbols. The IC designator prefix is U (e.g., U1) per ANSI/IEEE 315. No standards body defines a specific symbol for the ATmega328P — the pin layout follows Microchip's official datasheet pinout.
What is the AREF pin on the ATmega328 symbol?
AREF is the Analog Reference pin, which sets the reference voltage for the 6-channel 10-bit ADC on Port C. Connecting a stable voltage (e.g., 3.3 V from an LM4040 reference) to AREF provides more accurate ADC readings than using the internal VCC reference, which may vary with load. A 100 nF decoupling capacitor to GND is recommended on AREF.
How is the ATmega328P programmed?
The ATmega328P is programmed via its 6-pin ISP (In-System Programming) header: MOSI (PB3), MISO (PB4), SCK (PB5), RST (PC6), VCC, and GND. Tools such as the USBasp, AVRISP mkII, or Arduino-as-ISP can load firmware directly to flash. With the Arduino bootloader installed, the chip can also be programmed via UART (D0/D1) using the Arduino IDE.
What is the maximum clock speed of the ATmega328P?
The ATmega328P has a maximum clock speed of 20 MHz at 5 V supply voltage. At 3.3 V, the maximum reliable speed is 10 MHz. An internal RC oscillator provides 8 MHz (±10% accuracy). The Arduino Uno uses an external 16 MHz crystal, which falls within the 5 V operating envelope and provides accurate timing for UART communication.
Place the ATmega328 (DIP) symbol on a wiring diagram or schematic in the free online circuit diagram maker — no download required.