ATMEGA328-MMH - 8-Bit AVR MCU 20MHz 32KB Flash VQFN-28 | Microchip
MPN: ATMEGA328-MMH β Active| Qty | Unit Price | Extended |
|---|---|---|
| 1 | $2.6 | $2.60 |
| 10 | $2.34 | $23.40 |
| 100 | $2.08 | $208.00 |
| 500 | $1.86 | $930.00 |
| 1,000 | $1.66 | $1,660.00 |
ATMEGA328-MMH Overview
An 8-bit microcontroller (MCU) is a single integrated circuit that combines a processor core, program memory, data memory, and peripherals such as timers, UART, SPI, and I2C on one chip. Within the power-management and embedded-system hierarchy, the MCU sits at the heart of a device, reading sensors, driving actuators, and running the application firmware. The AVR ATmega family from Microchip (originally Atmel) is one of the most widely used 8-bit MCU families in industry and education.
Key features include the advanced RISC architecture with 131 powerful instructions and 32 general-purpose working registers, 32 KB of self-programmable Flash with read-while-write support, 1 KB EEPROM for non-volatile data storage, 23 general-purpose I/O lines, and a 10-bit ADC with up to 8 channels (including the dedicated ADC6/ADC7 pads on the VQFN package). Two 8-bit timers, one 16-bit timer, a USART, SPI, and two-wire interface (I2C) round out the peripheral set.
Technically, the ATMEGA328-MMH uses a Harvard architecture with separate program and data buses for parallel instruction and data access. It supports six sleep modes for aggressive power reduction, an on-chip debug interface (debugWIRE), and in-system programming via SPI. Supply voltage operation spans 2.5 V to 5.5 V per distributor data, supporting both 3.3 V and 5 V logic systems.
Typical applications include industrial control and automation nodes, consumer electronics, robotics, IoT sensor endpoints, and Arduino-compatible embedded designs - the ATmega328 core is the engine of the Arduino Uno platform, giving it unmatched community and toolchain support.
A key design consideration: at 20 MHz and 5 V the device is at its maximum rated speed grade, so verify the supply is a clean 5 V; derating the clock to 16 MHz or lower is required for reliable 3.3 V operation.
This page synthesizes distributor pricing, drop-in alternatives within the AVR family, pinout data, and practical design notes not found in the manufacturer datasheet.
Drop-in alternatives for ATMEGA328-MMH β same package, pin-to-pin compatible. Different-package parts requiring PCB rework are excluded.
Variants in this series
Same-series models that are drop-in compatible with ATMEGA328-MMH (same form factor and footprint) β differing in Communication Interfaces, Core Processor, EEPROM, Flash Memory, Package.
Quick Comparison Tool β Select alternative parts for side-by-side comparison:
ATMEGA328P-MMH
β Drop-In β οΈ εζ°εΎ ιͺθ―π Reference alternative (not in catalog)
ATMEGA328-20MU
β Drop-In β οΈ εζ°εΎ ιͺθ―π Reference alternative (not in catalog)
ATMEGA168PA-MMH
β Drop-Inπ Reference alternative (not in catalog)
ATMEGA168PA-MU
β Drop-In β οΈ εζ°εΎ ιͺθ―β In Stock
$1.72 / Unit
View Datasheet βATMEGA88PA-MMH
β Drop-In β οΈ εζ°εΎ ιͺθ―π Reference alternative (not in catalog)
ATMEGA48PA-MMH
β Drop-In β οΈ εζ°εΎ ιͺθ―π Reference alternative (not in catalog)
ATMEGA328-MMH Maximum Ratings & Electrical Characteristics
| Core Processor | AVR |
| Core Size | 8-Bit |
| Speed | 20 MHz |
| Flash Memory | 32 KB (16K x 16) |
| EEPROM | 1 KB |
| SRAM | 2 KB |
| Supply Voltage Range | 2.5 V to 5.5 V |
| General Purpose I/O | 23 |
| ADC Resolution | 10-bit |
| ADC Channels | 8 |
| Timers | Two 8-bit, One 16-bit |
| Communication Interfaces | USART, SPI, I2C (Two-Wire) |
| Package | 28-VQFN (4x4 mm) with exposed pad |
| Mounting Type | Surface Mount |
| RoHS Status | Green (RoHS compliant per Mouser listing) |
| Lifecycle Status | Active |
| Packaging | Tray |
ATMEGA328-MMH Pin Configuration
| Pin 1 | PC6 (RESET) β Reset input / I/O |
| Pin 2 | PD0 (RXD) β Port D bit 0 / USART receive |
| Pin 3 | PD1 (TXD) β Port D bit 1 / USART transmit |
| Pin 4 | PD2 (INT0) β Port D bit 2 / external interrupt 0 |
| Pin 5 | PD3 (INT1/OC2B) β Port D bit 3 / interrupt 1 / PWM |
| Pin 6 | PD4 (T0/XCK) β Port D bit 4 / Timer0 clock |
| Pin 7 | VCC β Digital supply voltage |
| Pin 8 | GND β Ground |
| Pin 9 | PB6 (XTAL1/TOSC1) β Crystal oscillator pin 1 / Port B bit 6 |
| Pin 10 | PB7 (XTAL2/TOSC2) β Crystal oscillator pin 2 / Port B bit 7 |
| Pin 11 | PD5 (T1/OC0B) β Port D bit 5 / Timer1 clock / PWM |
| Pin 12 | PD6 (AIN0/OC0A) β Port D bit 6 / analog comparator / PWM |
| Pin 13 | PD7 (AIN1) β Port D bit 7 / analog comparator |
| Pin 14 | PB0 (ICP1/CLKO) β Port B bit 0 / input capture / clock out |
| Pin 15 | PB1 (OC1A) β Port B bit 1 / PWM output |
| Pin 16 | PB2 (SS/OC1B) β Port B bit 2 / SPI slave select / PWM |
| Pin 17 | PB3 (MOSI/OC2A) β Port B bit 3 / SPI master out / PWM |
| Pin 18 | PB4 (MISO) β Port B bit 4 / SPI master in |
| Pin 19 | PB5 (SCK) β Port B bit 5 / SPI clock |
| Pin 20 | AVCC β ADC supply voltage |
| Pin 21 | AREF β ADC analog reference |
| Pin 22 | GND β Ground |
| Pin 23 | PC0 (ADC0) β Port C bit 0 / ADC channel 0 |
| Pin 24 | PC1 (ADC1) β Port C bit 1 / ADC channel 1 |
| Pin 25 | PC2 (ADC2) β Port C bit 2 / ADC channel 2 |
| Pin 26 | PC3 (ADC3) β Port C bit 3 / ADC channel 3 |
| Pin 27 | PC4 (ADC4/SDA) β Port C bit 4 / ADC / I2C data |
| Pin 28 | PC5 (ADC5/SCL) β Port C bit 5 / ADC / I2C clock |
Typical Applications
ATMEGA328-MMH is suitable for 6 applications: Arduino-Compatible Embedded Designs, Industrial Control and Automation, IoT Sensor Endpoints, Robotics and Hobby Controllers, Consumer Electronics, Test and Measurement Accessories.
Arduino-Compatible Embedded Designs
The ATMEGA328-MMH is the silicon behind the Arduino Uno platform, making it the default choice for Arduino-compatible custom boards. Its 32 KB Flash holds the Arduino Uno bootloader plus user sketches, and its 23 GPIO lines map directly to the standard Arduino pin mapping. In a custom VQFN-28 design, connect an external 16 MHz crystal, an ISP header, and decoupling capacitors to replicate Uno behavior; the MMH variant additionally exposes ADC6/ADC7 as dedicated analog inputs unavailable on DIP versions. Firmware developed with the Arduino IDE requires no code changes when migrating from an Uno to a board based on this part, preserving the vast Arduino library ecosystem.
Recommended
Industrial Control and Automation
In factory automation nodes, the ATMEGA328-MMH's 20 MIPS throughput, hardware USART, SPI, and I2C interfaces make it well suited for sensor aggregation and actuator control. The 10-bit ADC with 8 channels digitizes analog transducers (0-10 V via dividers, 4-20 mA via sensing resistors), while the 16-bit timer generates precise PWM for motor drives or valve control. Operating from a 5 V industrial supply with 2.5-5.5 V tolerance gives noise margin headroom typical of electrically harsh panels. Its watchdog timer and brown-out detector support fail-safe recovery, and the 1 KB EEPROM stores calibration and configuration data that must survive power cycles without external non-volatile memory.
Recommended
IoT Sensor Endpoints
For battery-powered IoT sensor nodes, the ATMEGA328-MMH combines adequate compute (20 MHz AVR core) with six sleep modes that drop the core to microamp-level consumption between sampling intervals. Typical usage: sleep in power-down mode, wake on watchdog or external interrupt, sample a sensor over I2C or the internal 10-bit ADC, then transmit via an external radio module over SPI. At 3.3 V, derate the clock to approximately 13-16 MHz per the voltage-versus-frequency curve in the Microchip datasheet to guarantee operation across temperature and battery discharge. The 2 KB SRAM comfortably hosts protocol stacks for simple sensor payloads, and the VQFN-28's small 4x4 mm footprint suits compact node PCBs.
Recommended
Robotics and Hobby Controllers
Robotics subsystems such as motor controller boards, servo drivers, and line-following robots benefit from the ATMEGA328-MMH's blend of PWM resources and analog inputs. Two 8-bit timers and one 16-bit timer generate multiple simultaneous PWM channels for H-bridge motor control, while the 10-bit ADC reads potentiometer, current-sense, and IR-reflectance signals. The AVR's single-cycle instruction execution makes bit-banged protocols and fast control loops practical at 20 MHz. Community availability of motor-driver libraries and shields designed for the ATmega328 shortens development time significantly compared with less popular cores, and the 23 GPIO lines drive servos and logic-level MOSFET gate drivers directly at 5 V.
Recommended
Consumer Electronics
Consumer products - kitchen appliances, remote controls, small displays, and chargers - use the ATMEGA328-MMH where a low-cost, reliable 8-bit MCU with mature tooling is required. Its 32 KB Flash accommodates feature-rich firmware including UI state machines and EEPROM-backed user settings, while the internal RC oscillator eliminates the cost of an external crystal in timing-tolerant designs. The 2.5-5.5 V supply range allows direct operation from single-cell lithium stacks via a regulator or from 5 V USB power. Microchip's active lifecycle status and multi-source distributor availability (9 distributors per Octopart) reduce supply risk for multi-year consumer production runs, an important consideration for appliance manufacturers.
Recommended
Test and Measurement Accessories
Bench accessories such as programmable load controllers, signal generators, and calibration fixtures leverage the ATMEGA328-MMH's timers and ADC for measurement-grade timing. The 16-bit timer with input capture can timestamp external events with microsecond resolution at 20 MHz, and the 10-bit ADC, when paired with a precision voltage reference on the AREF pin, performs 8-channel monitoring of supply rails and sensor outputs. debugWIRE single-wire on-chip debugging over the RESET line simplifies firmware development on assembled boards without dedicating pins to a JTAG port. Its 5 V operation interfaces directly with common bench logic levels, avoiding level-shift circuitry in instrumentation prototypes.
Recommended
Recommended Products Summary
Engineering reference data for ATMEGA328-MMH β comparison, design guidance, and compliance information.
Selection Guide
Comparison with Alternatives
| Parameter | This Product | ATMEGA328P-MMH | ATMEGA328-20MU | ATMEGA168PA-MMH | ATMEGA88PA-MMH |
|---|---|---|---|---|---|
| Package | 28-VQFN (4x4 mm) | 28-VQFN (4x4 mm) - same | 28-VQFN (4x4 mm) - same | 28-VQFN (4x4 mm) - same | 28-VQFN (4x4 mm) - same |
| Brand | Microchip Technology | Microchip Technology | Microchip Technology | Microchip Technology | Microchip Technology |
| Flash Memory | 32 KB | 32 KB | 32 KB | 16 KB | 8 KB |
| SRAM | 2 KB | 2 KB | 2 KB | 1 KB | 1 KB |
| EEPROM | 1 KB | 1 KB | 1 KB | 512 B | 512 B |
| Max Clock Speed | 20 MHz | 20 MHz | 20 MHz | 20 MHz | 20 MHz |
| picoPower Low-Sleep-Current | No | Yes | No | Yes | Yes |
Key Differentiators
- Double the program memory of the 168 family (vs ATMEGA168PA-MMH)
- Arduino ecosystem compatibility (vs ATMEGA88PA-MMH)
- Dedicated ADC6/ADC7 analog inputs (vs ATMEGA328-20MU in DIP-28 variants (ATMEGA328P-PU))
Design Notes
Match the clock speed to the supply voltage: 20 MHz operation requires approximately 4.5-5.5 V, while 3.3 V systems must derate to roughly 13-16 MHz per the speed-versus-VCC curve in the Microchip ATmega328 datasheet. Connect AVCC (pin 20) to VCC through a low-pass LC filter (10 uH inductor plus 100 nF capacitor) when ADC accuracy matters, and never leave AVCC floating even if the ADC is unused. Enable the brown-out detector at 2.7 V or 4.3 V via fuses to prevent EEPROM corruption during undervoltage events.
The VQFN-28 (4x4 mm) exposed pad on the package bottom should be soldered to a grounded copper area on the PCB for mechanical reliability and thermal dissipation - use a solder paste stencil with approximately 50-70% coverage on the center pad to avoid excessive solder squeeze-out onto the perimeter pads. Place 100 nF ceramic decoupling capacitors within 2 mm of the VCC and AVCC pins, one per supply pin, plus 10 uF bulk capacitance near the part. The exposed ADC6/ADC7 pads exist only on this VQFN variant, so route them as short, guarded analog traces.
Do not assume Arduino Uno compatibility at the board level: the Uno runs 16 MHz, while this part is rated to 20 MHz - if you fuse it for 20 MHz, Arduino timing functions (millis, delay) must be reconfigured. PB6/PB7 serve as XTAL1/XTAL2 when an external crystal is used, leaving only 22 GPIO in that configuration. Reset (PC6) needs a 10 k pull-up for ISP programming reliability, and debugWIRE shares the RESET line - disable debugWIRE fuse before switching to ISP programming to avoid lockout.
Estimated: at 5 V, 20 MHz with all I/O lightly loaded, the ATmega328 dissipates on the order of 30-50 mV-scaled milliwatts (typical active current ~ 10-15 mA at 5 V, i.e. 50-75 mW), so the 4x4 mm VQFN with an exposed pad and a modest ground pour keeps junction temperature well within the industrial range - no heatsink consideration is required. Power consumption becomes a design factor only in sleep-mode-driven battery applications, where choosing the ATMEGA328P-MMH picoPower variant reduces power-down current to sub-microamp levels.
Compliance Information
Mouser lists ATMEGA328-MMH as 'GRN' (green/RoHS). AEC-Q100 qualification is not marketed for this commercial-grade part. REACH and conflict-minerals status not stated in provided data.