What's AVR?
Detailed Description
- What's AVR?
- AVR is an 8 bit microcontroller family currently produced by Atmel Corporation.
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 TinyAVR controllers with 1KB flash ROM, no RAM, and 8 pins, up to MegaAVR controllers with 128KB flash ROM, 4KB RAM, 4KB EEPROM, 10 bit ADC with 8 channels, timers, comparators, JTAG, etc.
With Atmel's physical implementation of the AVR instruction set, most instructions take one clock. In real life applications, the average clocks per instruction (CPI) is typically 1.2...1.7, depending on the application. CPI=1.4 is a good average. Atmel's implementation has a short pipeline, with 2 stages (fetch and execute).
With Atmel's 0.5µm technology (I think) these cores run at 16MHz at most.
The key to the relative success of the AVR architecture is a (relatively) well designed instruction set. It is (almost) RISC and (almost) orthogonal. Now you'll probably say: "Heck, everything is almost ok! Why not choosing to implement a controller with a damn good instruction set?" Well, because I couldn't find any. As I wanted to clone an 8 bit controller currently on the market, I resisted the temptation to build my own "perfect" instruction set, because I should have also written some of the associated software (assembler, compiler, simulator, etc), and that would have taken more time than designing the controller itself. Not to say that I'd probably be the only one using that controller. Imperfect as it is, the AVR instruction set is still relatively good when compared to other 8 bit controllers on the market.
Generated on Thu Mar 3 00:16:26 2005 for Pipelined AVR microcontroller (pAVR) by
1.3.9.1