The AVR is a modified Harvard architecture 8-bit RISC single-chip microcontroller. The AVR was developed by Atmel in 1996 and was one of the first microcontroller families to use on-chip flash memory for program storage. The AVR microcontoller is like a small computer – includes a CPU, some flash program memory, some SRAM and some EEPROM, all in one little chip – little black thing with pins coming out of it.
Software for the AVR is usually developed in assembly or C, compiled with avr-gcc compiler and loaded on to the chip using a hardware programmer as the one on picture below. The AVR has a large, active, and open community which is a huge advantage when getting started. If we combine it all with small size, lower power consumption and really low cost then it make AVR chips an excellent choice for many projects.
Overview of basic AVR families
TinyAVR – ATtiny series
- 0.5–16 kB Flash
- 32–1024 bytes SRAM
- 64-512 bytes EEPROM
- 6–32-pin package
- Limited peripheral set
MegaAVR – ATmega series
- 4–512 kB Flash
- 0.5–16 kB SRAM
- 256–4096 bytes EEPROM
- 28–100-pin package
- Extended instruction set (multiply instructions and instructions for handling larger program memories)
- Extensive peripheral set
AVR XMEGA – ATxmega series
- 16–384 kB Flash
- 1–16 kB SRAM
- 512–4096 bytes EEPROM
- 44–64–100-pin package (A4, A3, A1)
- Extended performance features, such as DMA, “Event System”, and cryptography support.
- Extensive peripheral set with ADCs
The relationship between AVR and Arduino
Arduino is a prototyping board using AVR microcontroller, and also the term “Arduino” is used to refer to the cross-platform IDE, library, and all its ecosystem. There’s a whole bunch of 8-bit AVRs with various Flash/SRAM/peripheral/pin configurations, just as there are a bunch of different Arduino boards and clones.