Atmel AVR 8bit RISC microcontrollers


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.

Features

Easy to use

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.

8 bit RISC architecture

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.

32 general purpose registers

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.

Load/Store architecture

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.

Programable Flash Memory

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)".

AVR Devices

DevicePackageROM
[word]
RAM
[byte]
EEP
[byte]
PIOT/CPWMSIOADC
10bit
CompNote
90S1200DIP20,SOP20,SSOP20512-64151---1Int.Osc
90S2313DIP20,SOP201K1281281521UART-1-
tiny2313DIP20,SSOP20,MLF321K1281281824USART,USI,SPI-1BOD,Int.Osc
tiny26DIP20,SOP20,SSOP20,MLF321K1281281622USI111BOD,Int.Osc
tiny261/461/861DIP20,SOP20,MLF321K/2K/4K128/256/512128/256/5121625USI111BOD,Int.Osc
90S2333/4433DIP28,TQFP321K/2K128128/2562021UART,SPI61BOD
mega8DIP28,TQFP32,MLF324K1K5122333USART,IIC,SPI61BOD,RTC,Int.Osc
mega48/88/168DIP28,TQFP32,MLF322k/4K/8K512/1K/1K256/512/5122336USART,IIC,SPI61BOD,RTC,Int.Osc
tiny28DIP28,TQFP32,MLF321K--201---1Int.Osc
90S2323DIP8,SOP81K12812831-----
90S2343DIP8,SOP81K12812851----Int.Osc
tiny10/11DIP8,SOP8512--61---1-
tiny12DIP8,SOP8512-6461---1BOD,Int.Osc
tiny22DIP8,SOP81K12812851-----
tiny13DIP8,SOP85126464611-41BOD,Int.Osc
tiny25/45/85DIP8,SOP81K/2K/4K128/256/512128/256/512623USI41BOD,Int.Osc
tiny24/44/84DIP14,SOP14,MLF201K/2K/4K128/256/512128/256/5121224USI81BOD,Int.Osc
tiny15DIP8,SOP8512-64621-41BOD,Int.Osc
90S4414/8515DIP40,TQFP44,PLCC442K/4K256/512256/5123222UART,SPI-18051pin-out,Ext.Mem
mega8515DIP40,TQFP44,MLF444K5125123533USART,SPI-1BOD,Int.Osc,8051pin-out,Ext.Mem
mega161DIP40,TQFP44,PLCC448K1K51235332UART,SPI-1BOD,Int.Osc,8051pin-out,Ext.Mem
mega162DIP40,TQFP44,MLF448K1K51235462USART,SPI-1BOD,Int.Osc,8051pin-out,Ext.Mem,JTAG
90C8534TQFP484K25651272--6--
90S4434/8535DIP40,TQFP44,PLCC44,MLF442K/4K256/512256/5123232UART,SPI81RTC
mega8535DIP40,TQFP44,PLCC44,MLF444K5125123233USART,IIC,SPI81BOD,RTC,Int.Osc
mega163DIP40,TQFP448K1K5123233UART,IIC,SPI81BOD,RTC,Int.Osc
mega323DIP40,TQFP4416K2K1K3233USART,IIC,SPI81BOD,RTC,Int.Osc,JTAG
mega16/32DIP40,TQFP44,MLF448K/16K1K/2K512/1K3234USART,IIC,SPI81BOD,RTC,Int.Osc,JTAG
mega603/103TQFP6432K/64K4K2K/4K4834UART,SPI81RTC,Ext.Mem
mega64/128TQFP64,MLF6432K/64K4K2K/4K53482USART,IIC,SPI81BOD,RTC,Int.Osc,Ext.Mem,JTAG
mega169TQFP64,MLF648K1K5125434USART,IIC,SPI81LCD,BOD,RTC,Int.Osc,JTAG
mega165/325/645TQFP64,MLF648K/16K/32K1K/2K/4K512/1K/2K5334USART,IIC,SPI81BOD,RTC,Int.Osc
mega169/329/649TQFP64,MLF648K/16K/32K1K/2K/4K512/1K/2K5334USART,IIC,SPI81LCD,BOD,RTC,Int.Osc,JTAG
mega3250/6450TQFP10016K/32K2K/4K1K/2K6934USART,IIC,SPI81BOD,RTC,Int.Osc
mega3290/6490TQFP10016K/32K2K/4K1K/2K6934USART,IIC,SPI81LCD,BOD,RTC,Int.Osc
Devices indicated like this are obsoleted devices.

Classified Table in Pin Funciton
8pin14pin20pin
(1200)
20pin
(26)
28pin40pin
(8515)
40pin
(8535)
64pin100pin
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