Update: March 6, 2005
The AVR is one of the Atmel's 8bit RISC architecture which is incorporated in microcontroller and FPGA core. It is same concept as Microchip's PIC. The first release of the AVR microcontroller is in 1996. Well following section shows the key features of the AVR.
It is the greatest feature that very easy to use. So very easy to start. I understood the PIC completely in several hours, but the AVR was only 3.5 seconds to undrestand :-). Therefore I think this is suited to learn on the microcontroller for beginners. The AVR assembler is free distributed in the Atmel home page, and also no necessity to prepare a device programmer before start to use. In the ISP mode, AVR can be programmed on the target board with some bits of TTL level I/O lines, so that build an ISP cable will suffice for start the AVR. (Related Page). Prices of the AVR are also more inexpensive than same class of the PIC.
All instructions are 16 bits par word, and most of operations are executed in one input clock cycle. Atmel says AVR has 118 instructions. But some instructions (in assembler) are duplicated to same codes, so that actual number of the instructions is 79.
AVR has 32 general purpose registers!! The general purpose registers suffice to execute simple operations within only them, so that no SRAM devices are also available. And large operations are also executed quickly by optimizing register variables.
This is one of the general features on the RISC processors. All alithmethic and logical operations are executed on the general purpose registers. AVR has up to 64KB of linear data memory space, and can direct or indirect addressing with Laod/Store instructions. At the indirect addressing, a part of the general purpose reginsters are used as indirect addressing pointers. They can also use with many addressing modes with displacement, post-increment or pre-decrement. The general purpose registers and I/O registers are accessed with mov/in/out instructions and they are mapped in below of the data memory space, so that they can also be accessed with Load/Store instructions.
All AVR devices have a re-programable Program Flash Memory. It is useful to a small quantity of products, a many variety of products and hobby use. And most AVRs have an integrated Data EEPROM. The AVR has two different programming method of the Parallel Programming Mode and the Serial Downloading Mode. The parallel mode programs the devies quickly on the device programmer. The serial mode does not require any device programmer and can programm the device on the target board via a few wires. This is called "In-System Programming (ISP)".
Device | Package | ROM [word] | RAM [byte] | EEP [byte] | PIO | T/C | PWM | SIO | ADC 10bit | Comp | Note |
---|---|---|---|---|---|---|---|---|---|---|---|
90S1200 | DIP20,SOP20,SSOP20 | 512 | - | 64 | 15 | 1 | - | - | - | 1 | Int.Osc |
90S2313 | DIP20,SOP20 | 1K | 128 | 128 | 15 | 2 | 1 | UART | - | 1 | - |
tiny2313 | DIP20,SSOP20,MLF32 | 1K | 128 | 128 | 18 | 2 | 4 | USART,USI,SPI | - | 1 | BOD,Int.Osc |
tiny26 | DIP20,SOP20,SSOP20,MLF32 | 1K | 128 | 128 | 16 | 2 | 2 | USI | 11 | 1 | BOD,Int.Osc |
tiny261/461/861 | DIP20,SOP20,MLF32 | 1K/2K/4K | 128/256/512 | 128/256/512 | 16 | 2 | 5 | USI | 11 | 1 | BOD,Int.Osc |
90S2333/4433 | DIP28,TQFP32 | 1K/2K | 128 | 128/256 | 20 | 2 | 1 | UART,SPI | 6 | 1 | BOD |
mega8 | DIP28,TQFP32,MLF32 | 4K | 1K | 512 | 23 | 3 | 3 | USART,IIC,SPI | 6 | 1 | BOD,RTC,Int.Osc |
mega48/88/168 | DIP28,TQFP32,MLF32 | 2k/4K/8K | 512/1K/1K | 256/512/512 | 23 | 3 | 6 | USART,IIC,SPI | 6 | 1 | BOD,RTC,Int.Osc |
tiny28 | DIP28,TQFP32,MLF32 | 1K | - | - | 20 | 1 | - | - | - | 1 | Int.Osc |
90S2323 | DIP8,SOP8 | 1K | 128 | 128 | 3 | 1 | - | - | - | - | - |
90S2343 | DIP8,SOP8 | 1K | 128 | 128 | 5 | 1 | - | - | - | - | Int.Osc |
tiny10/11 | DIP8,SOP8 | 512 | - | - | 6 | 1 | - | - | - | 1 | - |
tiny12 | DIP8,SOP8 | 512 | - | 64 | 6 | 1 | - | - | - | 1 | BOD,Int.Osc |
tiny22 | DIP8,SOP8 | 1K | 128 | 128 | 5 | 1 | - | - | - | - | - |
tiny13 | DIP8,SOP8 | 512 | 64 | 64 | 6 | 1 | 1 | - | 4 | 1 | BOD,Int.Osc |
tiny25/45/85 | DIP8,SOP8 | 1K/2K/4K | 128/256/512 | 128/256/512 | 6 | 2 | 3 | USI | 4 | 1 | BOD,Int.Osc |
tiny24/44/84 | DIP14,SOP14,MLF20 | 1K/2K/4K | 128/256/512 | 128/256/512 | 12 | 2 | 4 | USI | 8 | 1 | BOD,Int.Osc |
tiny15 | DIP8,SOP8 | 512 | - | 64 | 6 | 2 | 1 | - | 4 | 1 | BOD,Int.Osc |
90S4414/8515 | DIP40,TQFP44,PLCC44 | 2K/4K | 256/512 | 256/512 | 32 | 2 | 2 | UART,SPI | - | 1 | 8051pin-out,Ext.Mem |
mega8515 | DIP40,TQFP44,MLF44 | 4K | 512 | 512 | 35 | 3 | 3 | USART,SPI | - | 1 | BOD,Int.Osc,8051pin-out,Ext.Mem |
mega161 | DIP40,TQFP44,PLCC44 | 8K | 1K | 512 | 35 | 3 | 3 | 2UART,SPI | - | 1 | BOD,Int.Osc,8051pin-out,Ext.Mem |
mega162 | DIP40,TQFP44,MLF44 | 8K | 1K | 512 | 35 | 4 | 6 | 2USART,SPI | - | 1 | BOD,Int.Osc,8051pin-out,Ext.Mem,JTAG |
90C8534 | TQFP48 | 4K | 256 | 512 | 7 | 2 | - | - | 6 | - | - |
90S4434/8535 | DIP40,TQFP44,PLCC44,MLF44 | 2K/4K | 256/512 | 256/512 | 32 | 3 | 2 | UART,SPI | 8 | 1 | RTC |
mega8535 | DIP40,TQFP44,PLCC44,MLF44 | 4K | 512 | 512 | 32 | 3 | 3 | USART,IIC,SPI | 8 | 1 | BOD,RTC,Int.Osc |
mega163 | DIP40,TQFP44 | 8K | 1K | 512 | 32 | 3 | 3 | UART,IIC,SPI | 8 | 1 | BOD,RTC,Int.Osc |
mega323 | DIP40,TQFP44 | 16K | 2K | 1K | 32 | 3 | 3 | USART,IIC,SPI | 8 | 1 | BOD,RTC,Int.Osc,JTAG |
mega16/32 | DIP40,TQFP44,MLF44 | 8K/16K | 1K/2K | 512/1K | 32 | 3 | 4 | USART,IIC,SPI | 8 | 1 | BOD,RTC,Int.Osc,JTAG |
mega603/103 | TQFP64 | 32K/64K | 4K | 2K/4K | 48 | 3 | 4 | UART,SPI | 8 | 1 | RTC,Ext.Mem |
mega64/128 | TQFP64,MLF64 | 32K/64K | 4K | 2K/4K | 53 | 4 | 8 | 2USART,IIC,SPI | 8 | 1 | BOD,RTC,Int.Osc,Ext.Mem,JTAG |
mega169 | TQFP64,MLF64 | 8K | 1K | 512 | 54 | 3 | 4 | USART,IIC,SPI | 8 | 1 | LCD,BOD,RTC,Int.Osc,JTAG |
mega165/325/645 | TQFP64,MLF64 | 8K/16K/32K | 1K/2K/4K | 512/1K/2K | 53 | 3 | 4 | USART,IIC,SPI | 8 | 1 | BOD,RTC,Int.Osc |
mega169/329/649 | TQFP64,MLF64 | 8K/16K/32K | 1K/2K/4K | 512/1K/2K | 53 | 3 | 4 | USART,IIC,SPI | 8 | 1 | LCD,BOD,RTC,Int.Osc,JTAG |
mega3250/6450 | TQFP100 | 16K/32K | 2K/4K | 1K/2K | 69 | 3 | 4 | USART,IIC,SPI | 8 | 1 | BOD,RTC,Int.Osc |
mega3290/6490 | TQFP100 | 16K/32K | 2K/4K | 1K/2K | 69 | 3 | 4 | USART,IIC,SPI | 8 | 1 | LCD,BOD,RTC,Int.Osc |
8pin | 14pin | 20pin (1200) | 20pin (26) | 28pin | 40pin (8515) | 40pin (8535) | 64pin | 100pin |
---|---|---|---|---|---|---|---|---|
90S2323 90S2343 tiny11 tiny12 tiny22 tiny15 tiny13 tiny25 tiny45 tiny85 |
tiny24 tiny44 tiny84 |
90S1200 90S2313 tiny2313 tiny4313 |
tiny26 tiny261 tiny461 tiny861 |
90S2333 90S4433 mega8 mega48 mega88 mega168 mega328 tiny28 |
90S4414 90S8515 mega161 mega8515 mega162 |
90S4434 90S8535 mega163 mega323 mega8535 mega16 mega32 mega644 mega164P mega324P mega644P mega1284 |
mega603 mega103 mega165 mega169 mega64 mega128 mega1281 mega2561 mega325 mega645 mega329 mega649 |
mega640 mega1280 mega2560 mega3250 mega6450 mega3290 mega6490 |