Content deleted Content added
No edit summary |
Merged "AVR orthogonality" into "Atmel AVR". Added a few details on AVR architecture. Added page "AVR instruction set". Re-arranged text to make page more unitary. |
||
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.
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. The concatenated Register File, Input-Output File and Data Memory
The AVR [[instruction set]] is more regular than that of many other 8-bit microcontrollers ([[PIC microcontroller|PIC]] for example), but [[AVR orthogonality|not strictly orthogonal]]. Compatibility across models is preserved.▼
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 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. <br>
▲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.
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
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.
|