Atmel AVR

A Wikipédiából, a szabad enciklopédiából
Atmel AVR ATmega8 28-kivezetésű PDIP tokozásban
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[szerkesztés | forrásszöveg szerkesztése]

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[szerkesztés | forrásszöveg szerkesztése]

Alap családok[szerkesztés | forrásszöveg szerkesztése]

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[szerkesztés | forrásszöveg szerkesztése]

  • 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[szerkesztés | forrásszöveg szerkesztése]

Utasításkészlet[szerkesztés | forrásszöveg szerkesztése]

Az Atmel AVR utasításkészlet sokkal ortogonálisabb, mint a legtöbb nyolcbites mikrovezérlő, különösen az 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 állat. 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[szerkesztés | forrásszöveg szerkesztése]

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[szerkesztés | forrásszöveg szerkesztése]

Jellemzők[szerkesztés | forrásszöveg szerkesztése]

Fejlesztőeszköz és[szerkesztés | forrásszöveg szerkesztése]

STK500 kezdő készlet[szerkesztés | forrásszöveg szerkesztése]

AVR ISP és AVR ISP mkII[szerkesztés | forrásszöveg szerkesztése]

6 & 10 tűs ISP foglalat

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)[szerkesztés | forrásszöveg szerkesztése]

JTAG (IEEE 1149.1)[szerkesztés | forrásszöveg szerkesztése]

JTAGICE mkI[szerkesztés | forrásszöveg szerkesztése]

JTAGICE mkII[szerkesztés | forrásszöveg szerkesztése]

A pillangó demó panel (AVR BUTTERFLY)[szerkesztés | forrásszöveg szerkesztése]

Egy ATmega169V uC-t, LCD-t, 4-irányú gombokat (joystick), hangszórót, soros portot, valósidejű ó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 USD) 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[szerkesztés | forrásszöveg szerkesztése]

Arduino[szerkesztés | forrásszöveg szerkesztése]

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[szerkesztés | forrásszöveg szerkesztése]

Nem hivatalos programozók[szerkesztés | forrásszöveg szerkesztése]

Támogatott programnyelvek, fordítók
Gyártó Fordító Licenc Platform Assembler BASIC C C++ Pascal Egyéb
GNU avr-as GPL Win32,Linux,Mac OS Igen
GNU avr-gcc GPL Win32,Linux, Mac OS Igen Igen
GNU AVR-ADA GPL Win32,Linux Ada
Atmel AVR Studio Nem Win32 Igen Igen Igen
cadManiac.org KontrollerLab GPL Linux Igen Igen Igen
E-LAB Computers AVRco Nem Win32 Igen
MCS Electronics BASCOM Nem Win32 Dialektus
nettypes.de mBasic Nem Win32 Igen
Till Harbaum NanoVM GPL Win32,Linux Java
Matthias Trute amforth GPL Win32,Linux Forth
? Embedded Pascal for the AVR share- ware Win32 Igen
Dean W. Hall et al. PyMite GPL Win32,Linux, Mac OS Python
IAR IAR Embedded Workbench for AVR Nem Win32 Igen Igen
myAVR myAVR Workpad Nem Win32 Igen Igen
Gennady Gromov Algorithm Builder Nem Win32 Igen
Jon A. Haugum, Tobias Weber AVRA GPL független Igen bővített makrónyelv?
HP InfoTech CodeVisionAVR Nem Win32 Igen
Jörg Wolfram AVR-Chipbasic2 GPL On Chip Tiny-Basic
Mikroelektronika MikroPascal for AVR Nem Win32 Igen
Thinker.it Wiring/Arduino GPL Win32, Linux, MacOS - - Igen Bővített C-makro
ImageCraft ICCV8 for AVR Nem Win32 Igen Igen CodeBlocks IDE

Atmel AVR felhasználás[szerkesztés | forrásszöveg szerkesztése]

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[szerkesztés | forrásszöveg szerkesztése]

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[szerkesztés | forrásszöveg szerkesztése]

További információk[szerkesztés | forrásszöveg szerkesztése]

Kapcsolódó szócikkek[szerkesztés | forrásszöveg szerkesztése]