AVR-mikrokontrollerite arhitektuuri töötasid välja 1996. aastal Atmelis Alf‑Egil Bogen ja Vegard Wollan. See põhineb Harvardi mikrokontrollerite arhitektuuril, kus programmi- ja andmemälu on füüsiliselt eraldatud. AVR oli üks esimesi mikrokontrollerite perekondi, mis kasutas programmi salvestamiseks kiibisisest välkmälu, erinevalt tol ajal levinud ühekordselt programmeeritavast ROM-ist, EPROM-ist või EEPROM-ist.
Paljud inimesed usuvad, et lühend AVR tuleb nimetustest Alf ja Vegard RISC‑protsessor. See seletus on levinud ja sageli viidatud; Atmel on aga aja jooksul maininud, et AVR ei ole ametlik akronüüm, nii et mõlemad versioonid (nimelise päritolu ja mitteakronüümina) on ringluses.
Põhiomadused ja arhitektuur
AVR on RISC‑stiilis arhitektuur, mille tuum sisaldab 32 üldotstarbelist 8‑bitist registrit (R0–R31), mis on otseselt ühendatud ALU‑ga. See registerfail võimaldab otsepöördust kahele sõltumatule registrile ja enamikku käske täidetakse ühe masinakellatsükli jooksul, mis tähendab, et ühe käsu täitmiseks kuluv aeg võrdub ühe taktsükliga (oscillatoriga). Mõned keerukamad käsud või mäluoperatsioonid võivad võtta rohkem kui ühe kellataktsi.
AVR‑il on eraldi programmimälu (FLASH), andmemälu (SRAM) ja sageli ka sisemine EEPROM andmete püsivaks salvestamiseks. Mitmetes AVR‑peredes on täiendavad riistvaralised moodulid nagu analoog‑digitaalmuundurid (ADC), timerid/loendurid, PWM‑moodulid, UART/USART, SPI, I²C (TWI), watchdog ja rikkalik katkestuste tugi.
Võrdlus vanemate arhitektuuridega
Võrreldes vanema MCS‑51 (Intel 8051) arhitektuuriga pakub AVR sageli märgatavalt paremat jõudlust sama kellisageduse juures. MCS‑51 puhul võtab üks masinatsükkel sageli 12 taktsüklit (ja enamik lihtsamaid käske täidetakse ühe masinatsükliga ehk 12 kellataktsükliga). AVR‑i puhul on suur osa käske realiseeritud ühe kellataktsükliga, mistõttu saavutatakse samal kellisagedusel kuni mitu korda parem instruktsiooni‑läbilase (IPC) tulemus. See teeb AVR‑i eelistatuks paljudes rakendustes, kus vajalik on suur arvutusvõimsus ja madal viivitus.
AVR‑perekonnad ja näited
- tinyAVR – väikese ressurssiga seadmed madala energiatarbega ja lihtsate ülesannete jaoks.
- megaAVR – populaarne perekond, kuhu kuulub palju integreeritud periferaale; tuntud näide on ATmega328P (laialt kasutusel Arduino Uno plaadil).
- XMEGA – suurema jõudluse ja täiendavate riistvarafunktsioonidega seeria, sobib nõudlikumate rakenduste jaoks.
Tööriistad ja kogukond
AVR‑i toetavad laialdaselt avatud lähtekoodiga tööriistad, näiteks avr‑gcc (kompilaator), avrdude (programmeerija) ja mitmed IDEd. Samuti pakub tootja (nüüdseks Microchip, kes omandas Atmeli 2016. aastal) oma arendustööriistu, nagu Microchip Studio (endise nimega Atmel Studio). Suur ja aktiivne kasutajaskond (sh Arduino kogukond) tähendab, et dokumentatsioon, näited ja avatud projekti kood on kergesti leitavad.
Kus kasutatakse AVR‑mikrokontrollereid
AVR‑id sobivad laialdaselt tarbeelektroonikas, hariduses, prototüüpimisel, IoT‑seadmetes, andurite juhtimissüsteemides ja paljudes teistes rakendustes, kus on vaja taskukohast, madala energiatarbega ja hästi toetatud mikrokontrollerit.
Kokkuvõtlikult on AVR‑arhitektuur populaarne tänu oma lihtsusele, kiiretele ühe‑kellatsüklil baseeruvatele käskudele, rikkalikule perifeeriale ja tugevale ökosüsteemile, mis teeb selle sobivaks nii algajatele kui ka professionaalsetele arendajatele.

