The Atmel AVR is a family of RISC microcontrollers from Atmel. The AVR architecture was conceived by two students at the Norwegian Institute of Technology (NTH) and further refined and developed at Atmel Norway, the Atmel daughter company founded by the two chip architects.
The AVR is a Harvard architecture CPU. It has 32 8-bit registers. Some instructions only operate on a subset of these registers. The concatenated register file, input/output file and data memory make up a unified address space accessed through load/store operations. Unlike the PIC, the stack is located in this unified memory space and isn't strictly limited to a fixed size.
The AVR was designed at the outset for efficient execution of compiled C code. Thus some instructions, such as 'add immediate
', are strangely missing (you have to 'subtract immediate
' the complement instead), while others, such as 'compare with carry
', are included.
The AVR instruction set is physically implemented and sold on the market as a bunch of controllers, sharing the same AVR core but differing on peripheral / RAM / ROM capabilities: from the Tiny AVR controllers with 1KB flash ROM, no RAM, and 8 pins, up to Mega AVR controllers with 128KB flash ROM, 4KB RAM, 4KB EEPROM, 10 bit ADC with 8 channels, timers, comparators, JTAG, etc. Compatibility across models is preserved.
Atmel's AVR controllers have a pipeline with 2 stages (fetch and execute) that allows them to execute most instructions in 1 clock, which makes them relatively fast among the 8-bit controllers on the market.
The AVR instruction set is more regular than that of many other 8-bit microcontrollers (PIC for example). However, it is not strictly orthogonal: pointer registers X, Y, Z have different addressing capabilities, and the same with Register File and IO File locations, .
Like the PIC, it has a dedicated hobbyist following (exemplified by the AVRFreaks Internet forum), largely due to the existence of inexpensive/free development tools, for instance a port of the GNU GCC tools.
The acronym AVR has been reported/rumoured to stand for Advanced Virtual RISC and/or the initials of the two company founders—Alf Egil Bogen and Vegard Wollan—who for their part have chosen to let the matter rest unresolved, giving mostly shadowy answers when asked directly.
External links
- Atmel's AVR product page
- Atmel Norway
- AVRFreaks
- AVR Electron Psychogenic Newbie Resource
- WinAVR development tools at Sourceforge – open source tool suite hosted on Microsoft Windows, and including GCC
- avrmon-stk200 – avr-gdb compatible GNU/Linux-based debug monitor system for connecting to Atmel's "STK200 Starter Kit"