ELEKTROTEHNIČKI FAKULTET BEOGRAD

KATEDRA ZA RAČUNARSKU TEHNIKU I INFORMATIKU

Atmel AVR mikrokontroleri

Ana Balević
[
[email protected] ]

Gvozden Marinković
[
[email protected] ]


Sadr�aj





Uvod

Familija mikrokontrolera AVR je uvedena na tr�iste tokom 1997 god. od strane Atmel-a, čime predstavlja prvu novu 8-bitnu arhitekturu koja se pojavila u poslednjih 20 godina. Kao posledica novina nastalih korišćenjem interne Flash programske memorije, koju je moguće veoma jednostavno programirati ISP (In-System Programming) metodom i veoma povoljnog odnosa cene i performansi ova Atmel-ova familija kontinualno osvaja sve veći deo tr�išta mikrokontrolera.

U osnovi se nalazi moderni 8-bitni RISC mikroprocesor koji sadr�i 32 registra opšte namene, ali i bogat set instrukcija. Performanse AVR mikrokontrolera su dosta iznad proseka -  AVR mikroprocesore odlikuje velika brzina izvršavanja  – do 16 MIPS, što je oko 12 puta vise nego kod standardnih 8-bitnih mikroprocesora,dok su sa druge strane i memorijske performanse znatno poboljšane kombinovanim korišćenjem Flash memorije (trenutno veličine do 128KB) i EEPROM memorije.



Familije AVR mikrokontrolera

Kao posledica uspeha AVR mikrokontrolera nakon pojavljivanja 1997. nastavljen je razvoj arhitekture u nekoliko različitih pravaca kako bi se postiglo maksimalno prilagođenje potrebama korisnika, čime se izdvojilo nekoliko specifičnih klasa AVR mikrokontrolera.


Slika1. AVR Roadmap

Kratak pregled karakteristika najćešće korišćenih familija AVR mikrokontrolera:

AVR (Classic) - predstavlja osnovnu familiju AVR mikrokontrolera; tipičan predstavnik je čip AT90S8515 koji poseduje solidan broj mogućnosti. Pregled postojećih čipova...

MEGA AVR familija mikrokontrolera ima jedinstvenu memoriju sa mogućnošću samoprogramiranja (Self-Programming Memory) , kao i mogućnost čitanja iz memorije tokom upisa (Read while Write). Mikrokontroleri iz ove familije se mogu naći u varijantama sa 8-12K Flash memorije, do 4K EEPROM-a i do 4K RAM-a, i dolaze u 32-64 pinskom pakovanju. Usmereni su na specijalizovane segmente tr�išta, i često se koriste kao komponente u prenosivim uređajima, be�ičnoj komunikaciji, bezbednosti… Pregled postojećih čipova...

LCD AVR - pored standardnih mogućnosti poseduju 4x25 segmentni LCD drajver, kao i JTAG interfejs za on-chip debugging. Pregled postojećih čipova...

DVD AVR – sadr�e ATAPI komaptibilan DVD/CD interfejs kontroler. Pregled postojećih čipova...

TINY AVR - sadr�e manje kapacitete Flash memorije 1-2KB,32-128B SRAM,i opcioni EEPROM, dolaze u 8-pinskom pakovanju i brzine su od 4-16MIPS,a postoje i varijante sa integrisanim AD konvertorom, USI, kao i pulsno širinskim modulatorom. TinyAVR mikrokontroleri su projektovani tako da odgovaraju zahtevima prenosnih aplikacija. Pregled postojećih čipova...

RF AVR mikrokontroleri predstavljaju kombinaciju AVR mikrokontrolera i RF transmitera visokih performansi, koji radi na frekvenciji 250-460MHz. Koriste se na tr�ištima koja imaju potrebu za be�ičnom daljinskom kontrolom po pristupačnoj ceni: alarmi za kola, garage door openers, home convinience controls... Pregled postojećih čipova...

SECURE AVR – u mikrokontroleru su integrisani generator slučajnih brojeva,kripto procesor i on-chip security. Upotreba: omogućuju dizajn embedded sistema koji imaju potrebu za sigurnošću i kriptovanjem podataka kao što je to slučaj kod Internet transakcija,pretplata na TV kanale, bankarstva. Ove smart card aplikacije zahtevaju visoke performanse da bi se obezbedila enkripcija podataka u relanom vremenu. Pregled postojećih čipova...

USB AVR - poseduje konfigurabilni low/high speed USB kontroler koji podrzava 5 end pointa i ima integrisan 12-kanalni 10-bitni AD konvertor. Koriste se kod kontrolera za video igrice, uređaja za akviziciju podataka, senzora... Pregled postojećih čipova...

FPGA AVR – ova familija je dizajnirana da omogući brzu imlementaciju visoko zahtevnih projekata sa velikim brojem gejtova (5K-50K) kroz upotrebu alata za sintezu kao što su Synplicity,ModelSim... Upotreba: kao koprocesor za brzinski zahtevne (DSP/processorbased) projekte implementacijom računski zahtevnih aritmetičkih funkcija.Pregled postojećih čipova...

Uporedna tabela osnovnih karakteristika AVR mikrokontrolera...



Arhitektura AVR Mikrokontrolera

Posebna prednost AVR familije kontrolera je konzistentna arhitektura - svi Atmelovi AVR mikrokontroleri imaju identično jezgro (Core), set instrukcija i organizaciju memorije, a razlike koje postoje medju raznim familijama AVR mikrokontrolera odnose se na dodatne specifične mogućnosti koje su ugrađene u svaku od njih, kapacitet memorije,radni napon napajanja,način pakovanja (broj pinova) itd…Ovo ima za posledicu jednostavnije programiranje u slučaju promene mikrokontrolera u toku faze projektovanja (nema potrebe za izmenom napisanog koda,već se piše samo dodatni kod za rad sa specifičnim komponentama novog mikrokontrolera).

Oznake različitih familija mikrokontrolera, kao sto su tinyAVR, AVR (Classic AVR) i megaAVR se ne odnose na performanse, već predstavljaju naznaku kompleksnosti mikrokontrolera. Dok je spektar mogućnosti kod megaAVR veoma širok, tako je kod tinyAVR ograničen i predstavlja podskup mogućnosti AVR familije.

 




Slika2. Opšta šema AVR mikrokontrolera

AVR familija mikrokontrolera je bazirana na novoj, poboljšanoj RISC arhitekturi koja je nastala kao rezultat te�nje da se maksimalno iskoristi trend visoke integracije poluprovodnika, kao i rapidni razvoj softverskih mogućnosti tokom poslednje decenije prošlog veka. Kao rezultat su dobijeni AVR mikrokontroleri koji nude najbolji odnos brzine izvršavanja instrukcija i potrošnje (MIPS/mW) na tr�ištu 8-bitnih mikrokontrolera.

AVR RISC familija mikrokontrolera se proizvodi u Atmelovoj CMOS tehnologiji koju karakteriše smanjena potrošnja - npr. AVR sa brzinom izvršavanja 10 MIPS ima potrošnju oko 40mW.

U cilju optimizacije veličine koda, performansi i potrošnje, arhitektura AVR mikroprocesora objedinjuje veliki registarski fajl sa kratkim vremenom pristupa i brze instrukcije koje se izvršavaju u samo jednom ciklusu. Brzo pristupni registarski fajl se sastoji od 32 8-bitna radna registra opšte namene. Dok klasične arhitekture bazirane na upotrebi akumulatora zahtevaju veliku količinu programskog koda za prenos podataka između akumulatora i memorije, kod AVR mikrokontrolera su ovi transferi podataka eliminisani korišćenjem 32 radna registra, od kojih je svaki moguće koristiti kao akumulator. Razlika se najbolje mo�e videti na jednostavnom primeru:


Slika 3. AVR vs. CISC code

Svi registri su direktno povezani sa aritmetičko logičkom jedinicom (ALU) čime je omogućen pristup do dva nezavisna registra u toku izvršavanja jedne instrukcije. ALU operacije se dele u tri osnovne kategorije: aritmetičke, logičke i operacije nad bitima.






AVR koristi koncept Harvardske arhitekture – postoje posebne memorije i magistrale za programski kod i podatke,kao što se mo�e videti na Slici 4. koja predstavlja arhitekturu najpopularnijeg pocesora Classic AVR familije. Programska memorija se izvršava sa dvostepenim pipeline-om. Paralelno sa izvršavanjem tekuće instrukcije AVR dovlači narednu instrukciju, i zatim je izvršava u sledećem ciklusu takta. Ovaj koncept omogućava da jedna instrukcija bude izvršena u svakom taktu. Kod drugih CISC i RISC arhitektura, eksterni takt oscilatora se deli (do 12 puta) i na taj način se dobija interni izvršni takt. Mora se podvući da je to jedna od glavnih prednosti AVR mikrokontrolera sa poboljšanom RISC arhitekturom - na AVR mikroprocesoru od 8MHz izvrši se 8 miliona instrukcija u sekundi (MIPS), što je daleko bolje od PIC mikroprocesora na 20MHz koji daje samo 3-4MIPS.

AVR arhitektura pokriva celo cenovno područje – počev od jeftinih jednostavnih čipova sa malim brojem no�ica iz familije tinyAVR, do široko namenskih mikrokontrolera iz familije megaAVR. Bazirani na Harvard arhitekturi u mogućnosti su da adresiraju do 8MB programske memorije i i 8MB memorije podataka. Registarski fajl je dvostruko mapiran i mo�e biti adresiran kao deo on-chip SRAM memorije čime je omogućena brza zamena konteksta.

Memorijski prostor IO uređaja sadr�i 64 adrese za periferijske funkcije kao što su kontrolni registri, tajmeri-brojači, A/D konvertori... IO uređajima se pristupa direktno ili preko područja podataka, budući da se oni takođe mapiraju u adresni prostor SRAM memorije.

IO struktura AVR mikrokontrolera je dobro definisana, čime se značajno umanjuje potreba za dodavanjem eksternih komponenti. Komponente koje se najćešće nalaze u AVR mikrokontrolerima su:

Za detaljne informacije pogledati DataSheet konkretnog AVR mikrokontrolera koji se mo�e naći na adresi http://www.atmel.com/dyn/products/datasheets.asp?family_id=607



Softverski alati za rad sa Atmel AVR Mikrokontrolerima

Jezici visokog nivoa postaju standard za programiranje mikrokontrolera zbog jednostavnijeg odr�avanja i kraćeg vremena isporuke produkta na tr�ište. Arhitektura AVR mikrokontrolera je od samog početka razvijana u saradnji sa ekspertima za programski jezik C kako bi se obezbedila uzajamna kolaboracija hardvera i softvera u cilju dobijanja visoko efikasnog koda. Kao posledica toga AVR instrukcije su optimizovane u cilju smanjenja veličine programa, nezavisno od toga da li je napisan u C-u ili asembleru. Jednostavan, ali odličan primer programa za mikrokontroler AT90S8515 iz familije AVR (Classic), kao i rada u integrisanom razvojnom okru�enju AVR Studio 4 mo�e se videti u Atmel Journal-u, publikaciji koja je posebno posvećena AVR mikrokontrolerima.

Karakteristika projektovanja sa Atmel mikrokontrolerima je veoma lak početak samog procesa projektovanja - na mre�i se mo�e naći veliki broj besplatnih i kvalitetnih razvojnih alata, kao što su:

AVR Studio 4 – profesionalno integrisano razvojno okru�enje (IDE) za razvoj i testiranje AVR aplikacija u Windows okru�enju,koje sadr�i asembler, C kompajler i simulator. AVR Studio podr�ava sledeće alate: ICE50, ICE40, JTAGICE, ICE200, STK500/501/502 and AVRISP.

WinAVR – kompletan Win32 instalacioni paket, sadr�i AVR-GCC kompajler za C i C++, simulator i mnoge dodatne alate.

Imagecraft's ICCAVR – komercijalni C kompajler i moderno grafičko razvojno okru�enje. Moguće je besplatno  skinuti 30-dnevnu potpuno funkcionalnu demo verziju.

AVRfreaks - na sajtu AVRfreaks.net mo�e se naci GNU C kompajler za Microsoft Windows (AVR-GCC 3.2)

ETH Zürich – najnovija distribucija GNU C kompajlera za Linux 

GNU Compiler Collection (GCC) - AVR development tools (binaries+source) 

Postoje mnogi operativni sistemi za rad u realnom vremenu (RTOS) za sisteme koji koriste AVR mikrokontrolere i neki od njih su:

        Nut/OS

        FreeRTOS

        AvrX



Programiranje Atmel AVR familije mikrokontrolera

Flash i EEPROM memoriju koja se nalazi na AVR mikrokontrolerima moguće je programirati koristeći ISP (In System Programming) metodu koja se odnosi na programiranje mikrokontrolera dok su na razvojnom sistemu ili kada su već zalemljeni na plocicu, odnosno bez vađenja i smeštanja u programator, kao i na klasičan nacin. ISP programiranje je serijsko da bi se koristio što manji broj pinova. Kombinacijom poboljšane RISC arhitekture i downloadable Flash memorije na istom čipu, AVR familija mikrokontrolera predstavlja moćno rešenje za embedded kontrolne aplikacije.

ISP programator, kao i razvojni sistem za AVR se kod nas mo�e nabaviti preko sajta Mikroelektronika , dok je preko Atmel-ovog sajta moguce naručiti njihov programator, razvojni sistem STK500, JTAGICE emulator...

Na adresi http://wiredworld.tripod.com/tronics/atmel_isp.html nalazi se šema za samostalnu realizaciju ISP programatora.



Neki od projekata u kojima su korišćeni AVR Mikrokontroleri

Ethernut Board – kombinacija Atmel-ovog Atmega 128 RISC mikrokontrolera sa Realtek 8019AS mre�nim kontrolerom predstavlja odličnu osnovu za razvoj emebedded uređaja za razne vrsta aplikacija kao što su: uređaji za daljinsku kontrolu, alarmi, daljinska dijagnoza i servis, embedded WebServer-i, industrijske Ethernet aplikacije. Na adresi http://www.ethernut.de/en/appliances.html mogu se naći linkovi na veliki broj interesantnih projekata koji su realizovani korišćenjem Ethernut Board-a.

GPS-GSM Mobile Navigator – dizajn koji je osvojio treće mesto na Atmel-ovom takmicenju 2001 – uređaj se koristi za be�ično praćenje i kontrolu vozila (brodova,kamiona). Srce uređaja predstavlja AT90S8515 Mikrokontroler koji prima podatke o koordinatama vozila preko GPS risivera i nakon obrade ih šalje preko GSM mreze kontrolnom centru u vidu SMS poruka. Osim praćenja vozila, implementirane su i druge usluge kao što su alarmi, kontrola statusa i a�uriranje sistema.

RF-Controlled Irrigation System – primer upotrebe Atmel mikrokontrolera za automatizaciju i pojednostavljenje aktivnosti navodnjavanja bašte, putem be�ičnog uključivanja i isključivanja pumpi. Atmel AVR 8535 predstavlja centar irigacionog kontrolera, sa preprogramiranim vremenima uključivanja i trajanja navodnjavanja, a za be�ičnu komunikaciju su korišćeni Abacom QMR1 quasi-AM/FM risiver i AT-MT1 AM transmiter.

AVR and Hobby Robotics– ARC 1.1 AVR Robot Controler predstavlja integrisani Robot Control Board sa svim komponentama koje su potrebne za kontrolu robota i baziran je na 8MHz-nom AVR ATmega 16 procesoru sa 16KB memorije.

BtNodeautonomna be�ična komunikaciona računarska platforma zasnovana na Bluetooth radio prenosu i ATmega128 mikrokontroleru. Trenutno se koristi kao demonstraciona platforma u mobilnim i ad-hoc komunikacionim mre�ama (MANETs), kao i mre�ama distribuiranih senzora.

CARACA – projekat za automatizaciju kućnih uređaja baziran na mre�i međusobno povezanih programabilnih kola koja su u mogućnosti da izvršavaju različite poslove – uključuju/isključuju kućne aparate, dekoduju komande IR daljinskih upravljača, kontrolišu termostate, mere temperaturu i sl. Svaki čvor mre�e mo�e da komunicira sa ostalima preko robusnog protokola (CANBus), dok se status uređaja mo�e nadgledati preko PC računara povezanog na Internet.

Tiny Planet: a planet-wide, wireless I/O port - alarm i daljinska kontrola uređaja preko GSM-a.



Korisni linkovi

http://www.atmel.com ( Official Atmel Corporation WebSite )

http://www.avrfreaks.com  ( Best AVR Site )

http://www.ethernut.de ( Embedded Ethernet Site )

http://r.webring.com/hub?ring=avr ( AVR Web Ring )

http://www.barello.net

http://ww.mikroelektronika.co.yu

http://www.openavr.org

http://www.netrino.com/Publications/Glossary/MemoryTypes.html  ( Memory Types Comparison )