AVR
Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt hozzászólók, és jelentősen eltérhet a 2015. december 25-én felülvizsgált
verziótól ; az ellenőrzéshez
41 szerkesztés szükséges .
Az AVR nyolc bites mikrovezérlők családja , amelyet korábban az Atmel , majd a Microchip gyártott . Fejlesztés éve - 1996 .
Az AVR architektúra története
Az új RISC - mag kifejlesztésének ötlete a Norvég Tudományos és Technológiai Egyetem (NTNU) két hallgatója, a norvég Trondheim városából - Alf-Egil Bogen és Vegard Wollen. 1995-ben Bogen és Wollen úgy döntött, hogy javaslatot tesz a Flash memória chipjeiről ismert amerikai Atmel vállalatnak egy új, 8 bites RISC mikrokontroller kiadására, és Flash memóriával való ellátására egyetlen, számítási maggal rendelkező chipen lévő programok számára.
Az ötletet az Atmel Corp. jóváhagyta, és úgy döntöttek, hogy azonnal befektetnek ebbe a fejlesztésbe. 1996 végén megjelent egy kísérleti AT90S1200 mikrokontroller, majd 1997 második felében az Atmel Corporation megkezdte egy új mikrokontroller család tömeggyártását, reklámozását és műszaki támogatását.
Az új magot szabadalmaztatták, és az AVR nevet kapta . Ennek a rövidítésnek többféle értelmezése van. Valaki azt állítja, hogy ez egy fejlett virtuális R ISC, mások úgy vélik, hogy A lf Egil Bogen V egard Wollan R ISC
nem lehetett itt.
Az építészet leírása
Az AVR mikrokontrollerek Harvard architektúrájúak (a program és az adatok különböző címterekben vannak), és a RISC ideológiához közel álló parancsrendszerrel rendelkeznek . Az AVR processzor 32 8 bites általános célú regiszterrel rendelkezik , amelyek egy regiszterfájlba vannak kombinálva. Az "ideális" RISC-vel ellentétben a regiszterek nem teljesen ortogonálisak:
- Egyes parancsok csak az r16…r31 regiszterekkel működnek. Ide tartoznak az azonnali operandus utasítások: ANDI/CBR, ORI/SBR, CPI, LDI, LDS (16 bites), STS (16 bites), SUBI, SBCI, valamint SER és MULS;
- Azok az utasítások, amelyek növelik és csökkentik a 16 bites értéket (ahol rendelkezésre állnak) azonnali operandussal (ADIW, SBIW) az r25:r24, r27:r26 (X), r29:r28 (Y) párok közül csak az egyiken működnek. ) vagy r31:r30(Z);
- A regiszterpár másolására szolgáló parancs (azokban a modellekben, ahol elérhető) csak a páratlannal kezdődő szomszédos regiszterekkel működik (r1:r0, r3:r2, ..., r31:r30);
- A szorzás eredménye (azokban a modellekben, amelyekben van szorzómodul) mindig az r1:r0-ba kerül. Ezenkívül csak ez a pár használható operandusként az önprogramozási utasításhoz (ahol elérhető);
- A szorzási utasítások egyes változatai csak az r16…r23 tartományból (FMUL, FMULS, FMULSU, MULSU) tartozó regisztereket veszik argumentumként.
Parancsrendszer
Az AVR mikrokontrollerek parancsrendszere rendkívül fejlett, és 90-135 [1] különböző utasítást tartalmaz a különböző modellekben.
A legtöbb utasítás csak 1 memóriahelyet foglal el (16 bit).
A legtöbb parancsot 1 ciklusban hajtják végre .
Az AVR mikrokontroller parancsok teljes készlete több csoportra osztható:
- logikai műveletek parancsai;
- számtani utasítások és váltási utasítások;
- bit működési utasítások;
- adatátviteli parancsok;
- vezérlő átviteli parancsok;
- rendszerfelügyeleti parancsok.
A perifériás eszközök vezérlése az adatcímtéren keresztül történik. A kényelem érdekében vannak "rövidített parancsok" IN / OUT.
Mikrokontrollerek családjai
Normál családok:
- tinyAVR(ATtinyxxx ) :
- megaAVR ( ATmega xxx):
- Flash memória 256 KB-ig; SRAM 16 KB-ig; EEPROM 4 KB-ig;
- Bemeneti-kimeneti sorok száma 23-86 (a kimenetek száma összesen 28-100);
- Hardver szorzó;
- Kibővített parancs- és perifériák rendszere.
- XMEGA AVR ( ATxmega xxx):
- Flash memória 384 KB-ig; SRAM 32 KB-ig; EEPROM 4 KB-ig;
- Négycsatornás DMA vezérlő;
- Innovatív eseményfeldolgozási rendszer.
Az előtag utáni számok általában a beépített flash memória mennyiségét (KB-ban) és a vezérlő módosítását jelzik. Ugyanis az előtagot követő kettő maximális teljesítménye jelzi a memória mennyiségét, a fennmaradó számok pedig a módosítást (például ATmega128 - 128 KB memória; ATmega168 - 16 KB memória, módosítás 8; ATtiny44 és ATtiny45 - 4 KB memória, 4. és 5. módosítás).
A szabványos családok alapján mikrokontrollereket gyártanak, amelyek speciális feladatokra vannak adaptálva:
A fenti családokon kívül az ATMEL gyártja az AVR32 család 32 bites mikrokontrollereit , amely magában foglalja az AT32UC3 (órajel 66 MHz-ig) és az AT32AP7000 (órajel frekvencia 150 MHz-ig) alcsaládot.
Vezérlőverziók
Az AT (mega/tiny)xxx az alapverzió.
ATxxx L - csökkentett (alacsony) tápfeszültségen (2,7 V) működő vezérlők változatai.
ATxxx V - alacsony tápfeszültségen (1,8 V) működő vezérlők változatai.
ATxxx P - alacsony fogyasztású változatok (legfeljebb 100 nA lekapcsolási módban), picoPower technológiát használnak (2007 júliusában bejelentették), pin-out és funkcionálisan kompatibilis a korábbi verziókkal.
ATxxx A - az áramfelvétel csökken, a két korábbi verzió órajel-frekvenciáinak és tápfeszültségeinek teljes tartománya le van fedve (egyes modellekhez új funkciók és új regiszterek is hozzáadódnak, de a korábbi verziókkal való teljes kompatibilitás megmarad). Az "A" és a "non-A" mikrokontrollerek általában azonos aláírással rendelkeznek, ami némi nehézséget okoz, mivel a biztosítékbitek különböznek.
A modellszámot a verziót jelző index követi. Az index előtti számok (8, 10, 16, 20) azt a maximális frekvenciát jelzik , amelyen a mikrokontroller normál tápfeszültség mellett stabilan tud működni.
Az index első betűje a hajótest változatát jelöli:
ATxxx- P - DIP csomag
ATxxx- A - TQFP
csomag ATxxx - J - PLCC csomag
ATxxx- M - MLF
csomag ATxxx- MA - UDFN/USON csomag
ATxxx- C - CBGA
csomag ATxxx- CK - LGA csomag
ATxxx- S - EIAJ csomag SOIC
ATxxx- SS - JEDEC SOIC keskeny csomag
ATxxx- T - TSOP
csomag ATxxx- TS - SOT-23 csomag (ATtiny4/5/9/10)
ATxxx- X - TSSOP csomag
A következő betű a hőmérséklet-tartományt és a gyártási jellemzőket jelenti:
ATxxx-x C - kereskedelmi hőmérséklet tartomány (0 °C - 70 °C)
ATxxx-x A - hőmérséklet tartomány -20 °C - +85 °C, ólommentes forrasztóanyag
felhasználásával ATxxx-x I - ipari hőmérséklet tartomány (-40 °C C - +85 °C)
ATxxx-x U - Ipari hőmérséklet tartomány (-40 °C - +85 °C), ólommentes forrasz
felhasználásával ATxxx-x H - Ipari hőmérséklet tartomány (-40 °C - +85 °C) , NiPdAu
ATxxx-x N használatával - kiterjesztett hőmérsékleti tartomány (-40 °C - +105 °C), ólommentes forrasztással
ATxxx-x F - kiterjesztett hőmérséklet-tartomány (-40 °C - +125 °C)
ATxxx-x Z - autóipari hőmérséklet-tartomány (-40 °C - +125 °C)
ATxxx-x D - kiterjesztett autóipari hőmérséklet-tartomány (-40 °C - +150 °C)
az utolsó R betű a Tape & Reel csomagolást jelenti automatizált összeszerelő rendszerekhez.
I/O eszközök MK
Az MK AVR fejlett perifériával rendelkezik:
- Akár 86 többfunkciós kétirányú GPIO I/O vonal 8 bites I/O portokká kombinálva . A szoftver által definiált konfigurációtól függően a regiszterek egymástól függetlenül működhetnek „erős” meghajtó módban, akár 40 mA -es áramot adva vagy fogadva (földre) , ami elegendő a LED-jelzők csatlakoztatásához. A port bármelyik érintkezője beállítható "bemenetre" akár szabad állapotban, akár a beépített felhúzó (pozitív) ellenállás segítségével.
- Legfeljebb 3 külső megszakítási forrás (él, levágás vagy szint szerint), és legfeljebb 32 a bemeneti szint változtatásával.
- Az óraimpulzusok forrásaként a következők közül választhat:
- kerámia vagy kvarc rezonátor (nem minden modell);
- külső órajel;
- kalibrált belső RC oszcillátor (1, 2, 4, 8 MHz frekvencia, valamint egyes ATtiny modelleknél 4,8, 6,4, 9,6 MHz és 128 kHz).
- Belső flash utasítás memória 256 KB-ig (legalább 10 000 írási ciklus).
- A programhibakeresés a JTAG vagy a debugWIRE interfészek segítségével történik :
- A JTAG jelek (TMS, TDI, TDO és TCK) I/O portonként vannak multiplexelve. A működési módot - JTAG vagy port - a biztosítékok regiszterének megfelelő bitje állítja be. Az AVR MCU-k JTAG-kal rendelkeznek.
- Belső EEPROM adatmemória 4 KB-ig (ATmega/ATxmega)/512 bájtig (ATtiny) (akár 100 000 írási ciklus).
- Belső SRAM akár 32 KB (ATxmega)/16 KB (ATmega)/1 KB (ATtiny) 2-ciklusú hozzáférési idővel.
- Külső memória 64 KB-ig (ATmega8515, ATmega162, ATmega640, ATmega641, ATmega1280, ATmega1281, ATmega2560, ATmega256).
- 8, 16 bites időzítők.
- PWM modulátor (PWM) 8-, 9-, 10-, 16-bites.
- analóg komparátorok.
- ADC (ADC) differenciális bemenetekkel, 8 (ATtiny)/10 (ATtiny/ATmega)/12 (ATxmega) bit:
- programozható erősítés az ADC 1, 10 és 200 előtt (differenciál üzemmódban);
- a referenciafeszültség lehet: tápfeszültség, külső feszültség vagy belső kalibrálatlan referenciafeszültség körülbelül 2,56 V (2,7 V és annál magasabb minimális tápfeszültségű modelleknél ) vagy 1,1 V (1, 8 V minimális tápfeszültség mellett ).
- Különféle soros interfészek, beleértve:
- USB sorozat AT90USBxxxx.
- CAN sorozat AT90CANxxx.
- ATmega169 és ATmega329 LCD sorozat .
- Hőmérséklet érzékelők ATtiny25 , ATtiny45 , ATtiny85 .
- Szinte mindegyik (kivéve néhány korai ATtiny modellt, amelyek speciális interfésszel rendelkeznek az újraprogramozáshoz) támogatja az áramkörön belüli programozást (ISP) az SPI soros interfészen keresztül . Sok mikrokontroller támogatja az alternatív soros vagy párhuzamos programozást nagyfeszültséggel, abban az esetben, ha a biztosítékregisztereket úgy konfigurálták, hogy a hagyományos programozás nem elérhető.
- Önprogramozás támogatása, amelyben a fő program megváltoztathatja kódjának egy részét.
- A fő program indításának támogatása írásvédett szubrutin (bootloader) használatával. A fő programkódot általában a mikrokontroller egyik portján keresztül fogadják a szabványos protokollok valamelyikével.
- Számos csökkentett energiafogyasztási mód.
Megjegyzés: Nem minden perifériát lehet szoftverrel engedélyezni. Ezek egy részét először a Fuses regiszterekben lévő bitekkel kell aktiválni, amelyeket csak a programozó módosíthat.
Fejlesztő eszközök
Fejlesztő hardver
Az Atmel hivatalos AVR fejlesztői eszközei:
- STK600 kezdőkészlet
- STK500 kezdőkészlet
- STK200 kezdőkészlet
- AVRISP és AVRISP mkII
- AVR Dragon
- USBasp-USB
- JTAGICE mkI
- JTAGICE mkII
- JTAGICE3
- ATMEL-JÉG
- AVR ONE!
- Pillangó bemutató tábla
- AT90USB kulcs
- Raven vezeték nélküli készlet
Számos harmadik féltől származó eszköz is létezik, különösen az amatőrök.
Fejlesztő szoftver
Ingyenes
- Az Algorithm Builder egy algoritmikus szoftverfejlesztő környezet AVR architektúrájú mikrokontrollerekhez (utoljára 2010-ben frissítették).
- Az AVR-Eclipse egy beépülő modul az Eclipse fejlesztői környezethez , amely lehetővé teszi programok fejlesztését C / C ++ nyelven és assembler, programozás és hibakereső vezérlők külső eszközlánc (Atmel AVR Toolchain, WinAVR) segítségével.
- Az avra egy konzolmakró-összeállító Linux/MacOS rendszerhez.
- Az Avrdude egy eszköz a mikrokontrollerek villogtatására.
- AVRDUDE_PROG 3.1 – vizuális szerkesztő.
- A Code::Blocks egy többplatformos fejlesztői környezet.
- A DDD az avr-gdb grafikus felülete.
- Az eXtreme Burner - AVR egy grafikus interfész az USBasp alapú USB AVR programozók számára.
- A Khazama AVR Programmer egy Windows grafikus felhasználói felület az USBasp és avrdude számára.
- A PonyProg egy univerzális programozó LPT-porton, COM-porton keresztül (a COM-port USB-emulátora is támogatott).
- A V-USB az USB protokoll szoftveres megvalósítása AVR mikrokontrollerekhez.
- A WinAVR egy szoftvercsomag Windowshoz , amely fordítót, összeállítót, linkert és egyéb eszközöket tartalmaz.
- Zadig 2.3
Tulajdonos
- Az Atmel Studio egy ingyenes IDE az Atmeltől
- IAR AVR - kereskedelmi fejlesztési környezet AVR mikrokontrollerekhez
- A Bascom-avr egy Basic - szerű programozási nyelven alapuló fejlesztői környezet .
- CodeVisionAVR - C fordító és programozó - CVAVR, kezdeti kódgenerátor.
- A Proteus elektromos áramkörök, alkatrészek szimulátora, beleértve a különféle MK-kat és egyéb perifériás berendezéseket.
Az AVR architektúra lehetővé teszi az operációs rendszerek alkalmazásfejlesztésben történő használatát is, például FreeRTOS , uOS , ChibiOS / RT , scmRTOS ( C ++ ), TinyOS , Femto OS és mások, valamint Linux AVR32 -n . [2]
Lásd még
Linkek
Jegyzetek
- ↑ Archivált másolat . Letöltve: 2021. január 28. Az eredetiből archiválva : 2021. május 6.. (határozatlan)
- ↑ AVR32737: AVR32 AP7 Linux Kezdő lépések (2008. február). Letöltve: 2017. április 24. Az eredetiből archiválva : 2017. március 29. (határozatlan)
Mikrokontrollerek |
---|
Építészet | 8 bites |
|
---|
16 bites |
|
---|
32 bites |
|
---|
| |
---|
Gyártók |
|
---|
Alkatrészek |
|
---|
Periféria |
|
---|
Interfészek |
|
---|
OS |
|
---|
Programozás |
|
---|