Introduction
AVR is a family of microcontrollers originally manufactured and sold by Atmel in 1996 and now by Microchip Technology from 2016. AVR family microcontroller used the AVR CPU architecture which is a modified Harvard 8-bit architecture. AVR architecture was designed by Alf-Egil Bogen and Vegard Wollan at the Norwegian Institute of Technology. They designed the architecture in such a way that program and data are stored in separate physical memory systems with different address spaces, but it was possible to read data items from program memory using special instructions. They manufactured the first development chips under Nordic VLSI (now Nordic Semiconductor), later the IP was sold to Atmel, and further development was done there which lead to their first release of the AVR 8-bit chip in 1997. In this article, we will be concentrating on the 8-bit AVR family which shares the same architecture.
What You Will Learn
- What are the different microcontrollers in AVR family?
- What are the different families of 8-bit AVR microcontrollers?
- What are the features of AVR family microcontrollers?
Family
AVR microcontrollers are generally classified into :
- tinyAVR – small footprint, fewer features, fewer I/O pins, and less memory
- megaAVR – standard AVR chips
- AVR Dx – HMI, industrial control, IoT applications
- XMEGA – large footprint, many features
Features | tinyAVR | megaAVR | AVR Dx | XMEGA |
---|---|---|---|---|
Program Memory | 0.5 – 32 KB | 4 – 256 KB | 16 – 128 KB | 16 – 384 KB |
Pin Package | 6 – 32 Pin | 28 – 100 Pin | 14 – 64 Pins | 44 – 64 – 100 Pin |
Peripheral Features | Limited | Standard | Super Extended | Extended |
Common Features of AVR Microcontroller Family
- Configurable multifunction, bi-directional general-purpose I/O ports with, internal pull-up resistors
- Configurable internal oscillators
- Internal, self-programmable flash memory up to 256 KB (384 KB on XMega)
- On-chip debugging (OCD) support through JTAG or debugWIRE
- ISP, Serial Programming, Low Voltage and High Voltage programming support
- Internal EEPROM up to 4 KB
- Internal SRAM up to 16 KB (32 KB on XMega)
- 8-bit and 16-bit timers with PWM and Input Capture
- Internal analog comparator
- 10 or 12-bit A/D converters, with multiplexer
- 12-bit D/A converters in some devices
- I²C compatible Two-Wire Interface (TWI)
- Synchronous/asynchronous serial peripherals (UART/USART)
- Serial Peripheral Interface Bus (SPI)
- Brownout detection
- Watchdog timer (WDT)
- Multiple low power consumption sleep modes
- CAN controller support in some models
- USB controller support in some models
- Ethernet controller support in some models
- LCD controller support in some models
- DMA controllers and “event system” peripheral communication in some models
- Fast cryptography support for AES and DES in some models
Detailed Comparison of 8-bit AVR Microcontrollers
Device Family | Pin Count | Program Flash Memory (KB) | SRAM (KB) | Supply Voltage | Clock Freq in MHz | ADC (No. of Bits) | ADC (No. of Channels) | Comparators | ADC Gain Stage | DAC (No. of Bits) | Temperature Sensor | Internal Voltage Reference | Zero Cross Detector (ZCD) | 8-bit PWM | 16-bit PWM | Quadrature Decoder | Waveform Extension (WeX) | Real-Time Counter | 8-bit Timer/Counters | 12-bit Timer Counter | 16-bit Timer/Counter | Custom Logic | Hardware Multiplier | Crypto (AES/DES) | CRC/SCAN | POR | BOD | WDT | USART | USB | I2C | SPI | IRCOM | Serial Number | QTouch® Technology | QTouch Technology with PTC (2) | LCD | External Bus Interface | DMA Channels | Event System | SleepWalking | Sleep Modes | picoPower® Technology |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ATtiny4/5/9/10 | 6 | 0.5–1 | 0.032 | 1.8–5.5 | 12 | 10 | 4(3) | Y | 2 | 1 | Y | Y | Y | 4 | |||||||||||||||||||||||||||||
ATtiny102/104 | 8/14 | 1 | 0.032 | 1.8–5.5 | 12 | 10 | 5/8 | Y | Y | 2 | 2 | Y | Y | 1 | 4 | ||||||||||||||||||||||||||||
ATtiny13A | 8–20 | 1 | 0.064 | 1.8–5.5 | 20 | 10 | 4 | Y | 2 | Y | Y | Y | Y | 3 | Y | ||||||||||||||||||||||||||||
ATtiny20/40 | 12–20 | 2/4 | 0.128/0.256 | 1.8–5.5 | 12 | 10 | 8/12 | Y | Y | 2 | 2 | 1 | 1 | Y | Y | Y | 1 | 1 | Y | 4 | |||||||||||||||||||||||
ATtiny24A/44A/84A | 14–20 | 2–8 | Up to 0.512 | 1.8–5.5 | 20 | 10 | 8 | Y | Y | Y | Y | 2 | 2 | 1 | 1 | Y | Y | Y | 1 | 1 | Y | 4 | Y | ||||||||||||||||||||
ATtiny48/88 | 28–32 | 4/8 | Up to 0.512 | 1.8–5.5 | 16 | 10 | 8 | Y | Y | Y | 1 | 1 | 1 | 1 | Y | Y | Y | 1 | 1 | 3 | Y | ||||||||||||||||||||||
ATtiny87/167 | 20–32 | 8/16 | 0.512 | 1.8–5.5 | 16 | 10 | 11 | Y | Y | Y | 1 | 2 | 1 | 1 | Y | Y | Y | 1(8) | 1 | 2 | 4 | ||||||||||||||||||||||
ATtiny261A/461A/861A | 20–32 | 2–8 | Up to 0.512 | 1.8–5.5 | 20 | 10 | 11 | Y | Y | Y | Y | 1 | 1 | Y | Y | Y | 1 | 1 | Y | 4 | Y | ||||||||||||||||||||||
ATtiny20x/40x/80x/160x | 8–24 | 2–16 | Up to 1 | 1.8–5.5 | 20 | 10 | 12 | Y | Y | Y | 2 | Y | 1 | Y | Y | Y | Y | Y | Y | 1(1) | 1 | 1 | Y | Y | Y | 3 | Y | ||||||||||||||||
ATtiny21x/41x/81x/161x/321x | 8–24 | 2–32 | Up to 2 | 1.8–5.5 | 20 | 10 | 12 | Y | 8 | Y | Y | 2 | Y | 1 | 1 | Y | Y | Y | Y | Y | Y | 1(1) | 1 | 1 | Y | Y(4) | Y | Y | 3 | Y | |||||||||||||
ATtiny441/841 | 14–20 | 4/8 | Up to 0.512 | 1.7–5.5 | 16 | 10 | 12 | Y | Y | Y | 1 | 2 | 1 | 2 | Y | Y | Y | 2 | 1 | 1 | 4 | Y | |||||||||||||||||||||
ATtiny2313A | 20 | 2 | 0.128 | 1.8–5.5 | 20 | – | – | Y | Y | 2 | 2 | 1 | 1 | Y | Y | Y | 1 | 1 | 2 | 3 | Y | ||||||||||||||||||||||
ATmega8A/16A/32A | 28–44 | 8–32 | 1–2 | 2.7–5.5 | 16 | 10 | 8 | Y | 2 | 1 | Y | 2 | 1 | Y | Y | Y | Y | 1 | 1 | 1 | Y | 5 | |||||||||||||||||||||
ATmega8U2/16U2/32U2 | 32 | 8–32 | 0.5–1 | 2.7–5.5 | 16 | – | – | Y | Y | Y | 4 | 6 | Y | 2 | 3 | Y | Y | Y | Y | 2 | Y | 2 | 2 | 6 | |||||||||||||||||||
ATmega16U4/32U4 | 32 | 16/32 | 1/2 | 2.7–5.5 | 16 | 10 | 12 | Y | Y | Y | 5 | 1 | 1 | Y | Y | Y | Y | 1 | Y | 1 | 6 | ||||||||||||||||||||||
ATmega48PB/88PB/168PB/328PB | 32 | 4–32 | 0.5–2 | 1.8–5.5 | 20 | 10 | 8 | Y | Y | Y | 4 | 2/6(6) | Y | 2 | 1/3(6) | Y | Y | Y | Y | 1/2(6) | 1/2(6) | 1/2(6) | Y | Y(6) | 6 | ||||||||||||||||||
ATmega80x/160x/320x/480x | 28–48 | 8–48 | 1–6 | 1.8–5.5 | 20 | 10 | 16 | Y | Y | Y | 4 | 3 | Y | 5 | Y | Y | Y | Y | Y | Y | 4 | 1 | 1 | Y | Y | Y | 3 | Y | |||||||||||||||
ATmega64A/128A | 64 | 64–128 | 4 | 2.7–5.5 | 16 | 10 | 8 | Y | Y | Y | 2 | 6 | 2 | 2 | Y | Y | Y | Y | 2 | 1 | 1 | Y | 6 | ||||||||||||||||||||
ATmega164PA/324PA/644PA/1284P | 44 | 16–128 | 1–16 | 1.8–5.5 | 20 | 10 | 8 | Y | Y | Y | 4 | 2/2/4 | Y | 2 | 1/1/2 | Y | Y | Y | Y | 2 | 1 | 1 | Y | 6 | Y | ||||||||||||||||||
ATmega165PA/325PA/645P | 44 | 16–64 | 1–4 | 1.8–5.5 | 16 | 10 | 8 | Y | Y | 4 | 6 | Y | 2 | 3 | Y | Y | Y | Y | 3 | 2 | 2 | 6 | Y | ||||||||||||||||||||
ATmega169PA/329PA/649P | 64 | 16–64 | 1–4 | 1.8–5.5 | 16 | 10 | 8 | Y | Y | 2 | 2 | Y | 2 | 1 | Y | Y | Y | Y | 1 | 1 | 1 | Y | Y | 5 | |||||||||||||||||||
ATmega324PB | 44 | 32 | 2 | 1.8–5.5 | 20 | 10 | 8 | Y | Y | 2 | 2 | Y | 2 | 1 | Y | Y | Y | Y | 1 | 1 | 1 | Y | Y | 5 | |||||||||||||||||||
ATmega640/1280/2560/1281/2561 | 64–100 | 64–256 | 8 | 1.8–5.5 | 16 | 10 | 8/16 | Y | Y | Y | 4 | 6/12 | Y | 2 | 4 | Y | Y | Y | Y | 2/4 | 1 | 1 | Y | Y(5) | 6 | ||||||||||||||||||
ATmega3290PA/6490P | 100 | 32–64 | 2–4 | 1.8–5.5 | 20 | 10 | 8 | Y | Y | Y | 2 | 2 | Y | 2 | 1 | Y | Y | Y | Y | 1 | 1 | 1 | Y | Y | 5 | ||||||||||||||||||
ATmega3250PA/6450P | 100 | 32–64 | 2–4 | 1.8–5.5 | 20 | 10 | 8 | Y | Y | Y | 2 | 2 | Y | 2 | 1 | Y | Y | Y | Y | 1 | 1 | 1 | Y | 5 | |||||||||||||||||||
AVR-DA Family | 28-64 | 32-128 | 4–16 | 1.8–5.5 | 24 | 12 | 12 | Y | 10 | Y | Y | 1-3 | 9–17 | 3–6 | Y | 1 | 1–5 | Y | Y | Y | Y | Y | Y | 3–6 | 1–2 | 2 | Y | Y | Y | Y | Y | 3 | Y | ||||||||||
ATxmega A1U/A3U/A4U Family | 44-100 | 16–128 | 2–8 | 1.6–3.6 | 32 | 12 | 12/16 | Y | Y | 12 | Y | Y | 5-8 | Y | Y | Y | 5-8 | Y | Y | Y | Y | Y | Y | 5-8 | Y | 2-4 | 2-4 | Y | Y | Y | 4 | Y | 5 | Y | |||||||||
ATxmega B1/B3 Family | 64–100 | 64–128 | 4–8 | 1.6–3.6 | 32 | 12 | 8 | Y | Y | Y | Y | 2/3 | Y | Y | Y | 2/3 | Y | Y | Y | Y | Y | Y | 1/2 | Y | 1 | 1 | Y | Y | Y | Y | 2 | Y | 5 | Y | |||||||||
ATxmega C3/D3/C4/D4 Family | 44-64 | 16–384 | 2–32 | 1.6–3.6 | 32 | 12 | 12/16 | Y | Y | Y | Y | 4/5 | Y | Y | Y | 4/5 | Y | Y | Y | Y | Y | 2/3 | Y(7) | 2 | 2 | Y | Y | Y | Y | 5 | Y | ||||||||||||
ATxmega32E5 Family | 32 | 8–32 | 1–4 | 1.6–3.6 | 32 | 12 | 16 | Y | Y | 12 | Y | Y | 3 | Y | Y | Y | 3 | Y | Y | Y | Y | Y | Y | 2 | 1 | 1 | Y | Y | Y | 4 | Y | 5 | Y |
Post a Comment