thumb|Atmel AVR ATmega8 28-kivezetésű PDIP tokozásban thumb|Atmel AVR ATmega169 felületszerelt tokozásban (MLF, micro-leadframe) Az AVR az Atmel cég által 1996-ban kifejlesztett módosított Harvard-architektúrájú 8 bites RISC típusú egycsipes mikrovezérlő. Az AVR volt az első mikrovezérlő-család, amelyben csipre integrált flash memóriát kezdtek használni a programtárolásra, ellentétben más mikrovezérlőkkel, amelyeknél ekkor még egyszer programozható ROM, EPROM vagy EEPROM memóriák szolgáltak erre a célra.
Rövid történet Az Atmel cég szerint az AVR név nem betűszó és nem jelent semmi különöset. Az AVR készítői nem adnak végleges választ azzal kapcsolatban, hogy az AVR kifejezés mit jelent. Egyes vélemények szerint azonban (nem hivatalosan), két magyarázat is adható a név eredetére. Az egyik megközelítés szerint, az eredeti struktúrát kidolgozó két egyetemista nevéből származtatható. Alf-Egil Bogen és Vegard Wolan neveinek kezdőbetűiből → Alf-Vegard-RISC. A másik elmélet szerint a név a következő szavakból képzett mozaikszó: Advanced Virtual RISC.
Áttekintés Alap családok Az AVR-ek általában négy széles csoportba vannak osztályozva.
tinyAVR – az ATtiny sorozat 0.5–16 KiB programmemória 32–512 bájt adatmemória 0–512 bájt EEPROM 6–32 lábú tokokban Korlátozott periférikus készlet Maximális órajel 4–20 MHz megaAVR – az ATmega sorozat 4–256 KiB programmemória 0,5–16 KiB adatmemória 0,25–4 KiB EEPROM 24–100 lábú tokokban Kiterjesztett utasításkészlet (szorzó utasítások és nagyobb programmemóriákat kezelő utasítások) Kiterjesztett periférikus készlet Maximális órajel 16–20 MHz XMEGA – az ATxmega sorozat 16–384 KiB programmemória 2–32 KiB adatmemória 1–4 KiB EEPROM 44–64–100 lábú tokokban (A4, A3, A1) Teljesítménynövelő tulajdonságok, mint DMA, eseménykezelő-rendszer és titkosítás. Kiterjesztett periférikus készlet DAC-vel Maximális órajel 32 MHz Felhasználásspecifikus AVR megaAVR-ek speciális tulajdonságokkal, melyek nem találhatóak az AVR család más tagjain. Olyanok, mint például az LCD-vezérlő, USB-vezérlő, fejlett PWM, CAN , stb. FPSLIC (Field Programmable System Level Integrated Circuit), egy AVR mag egy FPGA-val egy lapkára integrálva. Az FPSLIC – eltérően a többi AVR-től – SRAM-ot használ a programhoz, részben az SRAM és a flash közötti relatív sebességkülönbség miatt. Az AVR mag az FPSLIC-ben akár 50 MHz felett is futhat.
Felépítés Adatmemória (RAM) A Flash, az EEPROM, és az SRAM mind egyetlen chipre vannak integrálva, szükségtelenné téve a külső memóriát. Néhánynak van egy külső sínje, hogy lehetővé tegye további adatmemória, vagy memóriatartományban elhelyezett eszközök hozzáadását. Programmemória (flash) A programutasítások a nem felejtő flash memóriában tárolódnak. A programmemória méretét néha jelzik az eszköz nevében (pl.: az ATmega64x sorozatnak 64 KiB flash memóriája van). Belső adatmemória A regiszterfájlból (registers file), az I/O regiszterekből és az SRAM-ból áll. Belső regiszterek EEPROM Majdnem minden AVR mikrokontrollernek van belső EEPROM-ja (Electrically Erasable Programmable Read Only Memory).
Programvégrehajtás Utasításkészlet
Az Atmel AVR utasításkészlet sokkal ortogonálisabb, mint a legtöbb nyolcbites mikrovezérlő, különösen a 8051 klónjai és a PIC mikrokontroller utasításkészlete. Ugyanakkor ez sem teljesen szabályos: Az X, Y, és Z mutatóregiszterek különböző, egymástól eltérő címzési lehetőségeket valósítanak meg. Az R0–R15 regisztereknek más címzési lehetőségeik vannak, mint az R16-tól R31-ig terjedő regisztereknek. A 0-tól 31-ig terjedő I/O portok szintén másképp címezhetők, mint a 32-től 63-ig terjedő portok. A CLR utasítás hatással van a jelzőbitekre, a SER pedig nem, miközben ezek egymás komplementer utasításai; a CLR minden bitet 0-ra állít, a SER minden bitet 1-re állít. Megjegyzendő azonban, hogy a CLR egy pszeudo-utasítás, az EOR R, R; hajtja végre, míg a SER az LDI R,$FF; tehát egy adatmozgató utasítás rövidítése. A számtani/logikai műveletek állítják a processzor állapotbitjeit, míg az adatmozgató, betöltő, tároló és ugróutasítások nem. Csak olvasható adat, mint pl. a programmemória (flash) elérése speciális LPM utasításokkal történhet; a flash sín egyébként az utasításmemóriához van rendelve.
MCU sebesség
Az MCU sebessége függ az utasítások végrehajtási idejétől. Az utasítások végrehajtási ideje utasításonként változó, 1 és 5 órajelciklus közé esik. Így a legnagyobb órajelű típusoknál, ideális esetben akár 20 millió utasítást is végrehajthat másodpercenként.
Fejlesztés Jellemzők Fejlesztőeszköz és STK500 kezdő készlet AVR ISP és AVR ISP mkII
Az AVRISP mkII az Atmel által fejlesztett és gyártott USB-s programozó eszköz. Azon 8 bites Atmel mikrovezérlők "égetésére" használható, amelyek rendelkeznek ISP interface-szel. Nem támogat debug funkciót.
A firmware frissítést minden újabb verziójú AVRStudio felajánlja, amint csatlakozunk az eszközhöz.
Tulajdonságok: AVR Studio kompatibilis (>4.12) Minden ISP-s AVR programozható a segítségével Flash és EEPROM programozására is képes Fuse és Lock bit-ek szabadon programozhatók Folyamatos firmware frissítési lehetőség Céláramkör feszültsége 1,8–5,5 V között változhat Változtatható programozási sebesség (50Hz-től 8MHz-ig (SCK frekvencia) USB 2.0 kompatibilis USB-ről üzemel, nem igényel külső tápforrást Céláramkör interface védelem Rövidzár elleni védelem
AVR Dragon (USB) JTAG (IEEE 1149.1) JTAGICE mkI JTAGICE mkII A pillangó demó panel (AVR BUTTERFLY) Egy ATmega169V uC-t, LCD-t, 4-irányú gombokat (joystick), hangszórót, soros portot, valós idejű órát (RTC), külső flash memóriát, feszültség-, és hőmérsékletérzékelőket tartalmazó népszerű, olcsó (~ 20 amerikai dollár) kis demópanel. A régi verziók CdS fénymérőt is tartalmaztak, ezt az RoHS szabályozás miatt már nem szerelik rá (de a helye megvan).
AT90USBKey Arduino Az Arduino egy egyszerű elektronikus áramkörön és egy szoftverfejlesztő környezetén alapuló nyílt hardveres fejlesztői platform. Gyakorlatilag nem más, mint egy-egy AVR csip köré épített hardveres eszköz, rengeteg kiegészítővel. Az Arduino programozási nyelve a Processing-ből kifejlesztett Wiring egyik implementációja.
Az Arduino interaktív tárgyak készítésére használható, számtalan kapcsolót vagy szenzort bemenetként olvasva, lámpák, motorok és egyéb kimenetek kimeríthetetlen választékát képes vezérelni. Az Arduino projektek állhatnak önmagukban, vagy különböző számítógépes programokkal kommunikálva is (pl. Flash, Pure Data, Processing, Max/MSP). Az áramkör házilag is nagyon könnyen összeállítható, vagy készen megvásárolható; a nyílt forráskódú fejlesztőkörnyezet pedig szabadon letölthető.
Raven vezeték nélküli kit Nem hivatalos programozók + Támogatott programnyelvek, fordítókGyártó Fordító Licenc Platform Assembler BASIC C C++ Pascal Egyéb GNU avr-as GPL Win32,Linux, Mac OS ––––– GNU avr-gcc GPL Win32,Linux, Mac OS –– –– GNU AVR-ADA GPL Win32,Linux ––––– Atmel AVR Studio Win32 – ––cadManiac.org KontrollerLab GPL Linux – ––E-LAB Computers AVRco Win32 –––– –MCS Electronics BASCOM Win32 – ––––nettypes.de mBasic Win32 – ––––Till Harbaum NanoVM GPL Win32,Linux ––––– Matthias Trute amforth GPL Win32,Linux ––––– ? Embedded Pascal for the AVR share- ware Win32 –––– –Dean W. Hall et al. PyMite GPL Win32,Linux, Mac OS ––––– IAR IAR Embedded Workbench for AVR Win32 –– ––myAVR myAVR Workpad Win32 – –––Gennady Gromov Algorithm Builder Win32 –––––Jon A. Haugum, Tobias Weber AVRA GPL független ––––bővített makrónyelv?HP InfoTech CodeVisionAVR Win32 –– –––Jörg Wolfram AVR-Chipbasic2 GPL On Chip – ––––Mikroelektronika MikroPascal for AVR Win32 –––– –Thinker.it Wiring/Arduino GPL Win32, Linux, MacOS --––Bővített C-makroImageCraft ICCV8 for AVR Win32 – ––CodeBlocks IDE
Atmel AVR felhasználás Számtalan elektronikai projekt használja fel ezeket mint központi egységet, kezdve az órák, digitális hőmérőktől egészen a komolyabb vezeték nélküli szenzoros adatgyűjtő hálózatokig. Nagy népszerűségüket alacsony fogyasztásuk, stabil működési sebességük és sokfajta programfejlesztői eszközzel való kompatibilitásnak köszönhetik. Meg kell jegyezni, hogy hobbi szintű, elektronikával csak ismerkedő felhasználóinak is egyre szélesebb a tábora.
Az új 32 bites AVR-ek A piacon lévő legfejlettebb mikrokontroller rendszer. Tartalmaznak beépített USB vezérlőt is már régebbi AVR-ekkel szemben. Nagy teljesítménnyel rendelkeznek (processzor, memória, csatlakozások). Ezek már picoPower technológiát használnak aminek köszönhetően nagyon alacsony fogyasztásuk van. Jegyzetek
További információk Atmel AVR Homepage AVR Freaks community AVR információk Bascom magyar leírás AVR-Duino/Arduino magyar leírás – Bascom-AVR fejlesztőrendszer AVR és 8051 csipekhez
Kapcsolódó szócikkek Atmel AVR utasításkészlet ATmega88 ATmega328
Kategória:8 bites mikroprocesszorok Kategória:Mikrovezérlők Kategória:Arduino