AVR microcontrollers: Difference between revisions

Content deleted Content added
mNo edit summary
More info on CPU internals
Line 1:
The '''Atmel AVR''' is a family of [[RISC]] [[microcontroller]]s 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.
 
Unlike the [[PIC microcontroller|PIC]], the AVR [[instruction set]] is strictly orthogonal and compatible across models. The AVR was designed at the outset for efficient execution of [[compiler|compiled]] [[C programming language|C]] code. Thus some instructions, such as '<code>add immediate</code>', are strangely missing (you have to '<code>subtract immediate</code>' the [[complement]] instead), while others, such as '<code>compare with carry</code>', are included.

The AVR is a [[Harvard Architecture|Harvard architecture]] CPU. It has 32 8-bit registers. Some instructions only operate on a subset of these registers. Memory access is via Load/Store instructions. Unlike the PIC, the Stack is located in RAM and isn't strictly limited to a fixed size.

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 [[GNU Compiler Collection|GCC]] tools.
 
The acronym "AVR" has been reported/rumoured to stand for '''''A'''dvanced '''V'''irtual '''R'''ISC'' and/or the initials of the two company founders&mdash;'''A'''lf Egil Bogen and '''V'''egard Wollan&mdash;who for their part have chosen to let the matter rest unresolved, giving mostly shadowy answers when asked directly.