Learn, Implement and Share


This article is a part of Arduino / ATmega328p Embedded C Firmware Programming Tutorial. Consider exploring the course home page for articles on similar topics.

Arduino Tutorial Embedded C Register Level Arduino Master Class

Arduino Tutorial Embedded C Register Level Arduino Master Class

Also visit the Release Page for Register Level Embedded C Hardware Abstraction Library and Code for AVR.


This section discusses the Atmega328p specification and features available in the chip. There are other articles in this series that discuss each features in details.


  • High Performance, Low Power Atmel®AVR® 8-Bit Microcontroller Family
  • Advanced RISC Architecture
    • 131 Powerful Instructions – Most Single Clock Cycle Execution
    • 32 x 8 General Purpose Working Registers
    • Fully Static Operation
    • Up to 20 MIPS Throughput at 20MHz
    • On-chip 2-cycle Multiplier
  • High Endurance Non-volatile Memory Segments
    • 4/8/16/32KBytes of In-System Self-Programmable Flash Program Memory
    • 256/512/512/1KBytes EEPROM
    • 512/1K/1K/2KBytes Internal SRAM
    • Write/Erase Cycles: 10,000 Flash/100,000 EEPROM
    • Data retention: 20 years at 85C/100 years at 25C
    • Optional Boot Code Section with Independent Lock Bits
      • In-System Programming by On-chip Boot Program
      • True Read-While-Write Operation
    • Programming Lock for Software Security
  • Atmel® QTouch® library support
    • Capacitive touch buttons, sliders and wheels
    • QTouch and QMatrix® acquisition
    • Up to 64 sense channels
  • Peripheral Features
    • Two 8-bit Timer/Counters with Separate Prescaler and Compare Mode
    • One 16-bit Timer/Counter with Separate Prescaler, Compare Mode, and Capture Mode
    • Real-Time Counter with Separate Oscillator
    • Six PWM Channels
    • 8-channel 10-bit ADC in TQFP and QFN/MLF package with Temperature Measurement
    • 6-channel 10-bit ADC in PDIP Package with Temperature Measurement
    • Programmable Serial USART
    • Master/Slave SPI Serial Interface
    • Byte-oriented 2-wire Serial Interface (Philips I2C compatible)
    • Programmable Watchdog Timer with Separate On-chip Oscillator
    • On-chip Analog Comparator
    • Interrupt and Wake-up on Pin Change
  • Special Microcontroller Features
    • Power-on Reset and Programmable Brown-out Detection
    • Internal Calibrated Oscillator
    • External and Internal Interrupt Sources
    • Six Sleep Modes: Idle, ADC Noise Reduction, Power-save, Power-down, Standby, and Extended Standby
  • I/O and Packages
    • 28-pin PDIP, 32-lead TQFP, 28-pad QFN/MLF and 32-pad QFN/MLF
  • Operating Voltage:
    • 1.8 – 5.5V
  • Temperature Range:
    • -40C to 85C
  • Processing Speed Grade:
    • 0 – 4MHz@1.8 – 5.5V, 0 – 10MHz@2.7 – 5.5.V, 0 – 20MHz @ 4.5 – 5.5V
  • Power Consumption at 1MHz, 1.8V, 25C
    • Active Mode: 0.2mA
    • Power-down Mode: 0.1µA
    • Power-save Mode: 0.75µA (Including 32kHz RTC)
Pinout of ATmega48A/PA/88A/PA/168A/PA/ Atmega328P Atmega328
Pinout of ATmega48A/PA/88A/PA/168A/PA/ Atmega328P / Atmega328
Internal Block Diagram of Atmega328P
Internal Block Diagram of Atmega328P

Crazy Engineer



Leave a Reply

Avatar placeholder

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.