Az AVR ATmega128 mikrokontroller

Hasonló dokumentumok
Járműfedélzeti rendszerek I. 3. előadás Dr. Bécsi Tamás

ATMEL ATMEGA MIKROVEZÉRLŐ-CSALÁD

Nagy Gergely április 4.

A Texas Instruments MSP430 mikrovezérlőcsalád

Számítógépek felépítése, alapfogalmak

Járműfedélzeti rendszerek I. 4. előadás Dr. Bécsi Tamás

Arduino bevezető Szenzorhálózatok és alkalmazásaik

Mikroprocesszor CPU. C Central Központi. P Processing Számító. U Unit Egység

Járműfedélzeti rendszerek I. 5. előadás Dr. Bécsi Tamás

Számítógépek felépítése, alapfogalmak

Érzékelők és beavatkozók I.

ARM Cortex magú mikrovezérlők

A Számítógépek felépítése, mőködési módjai

Számítógép felépítése

Labor gyakorlat Mikrovezérlők

Számítógépek felépítése

Egyszerű RISC CPU tervezése

A Számítógépek hardver elemei

ARM Cortex magú mikrovezérlők

A Számítógépek hardver elemei

Labor gyakorlat Mikrovezérlők

A mikroprocesszor egy RISC felépítésű (LOAD/STORE), Neumann architektúrájú 32 bites soft processzor, amelyet FPGA val valósítunk meg.

1. Az utasítás beolvasása a processzorba

Bevezetés az informatikába

Járműfedélzeti rendszerek I. 2. előadás Dr. Bécsi Tamás

Labor 2 Mikrovezérlők

I. C8051Fxxx mikrovezérlők hardverfelépítése, működése. II. C8051Fxxx mikrovezérlők programozása. III. Digitális perifériák

A mikroprocesszor felépítése és működése

Szenzorhálózatok. Mica mote-ok hardware felépítése szeptember 09.

Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT

Digitális technika VIMIAA01 9. hét

Nagyteljesítményű mikrovezérlők

A/D és D/A konverterek vezérlése számítógéppel

MSP430 programozás Energia környezetben. Kitekintés, további lehetőségek

Első sor az érdekes, IBM PC ra alapul: 16 bites feldolgozás, 8 bites I/O (olcsóbb megoldás). 16 kbyte RAM. Nem volt háttértár, 5 db ISA foglalat

Előadó: Nagy István (A65)

A MiniRISC processzor

A processzor hajtja végre a műveleteket. összeadás, szorzás, logikai műveletek (és, vagy, nem)

Labor gyakorlat Mikrovezérlők

Új kompakt X20 vezérlő integrált I/O pontokkal

A mikroszámítógép felépítése.

Jelfeldolgozás a közlekedésben

A számítógép alapfelépítése

Scherer Balázs: Mikrovezérlık fejlıdési trendjei

3. A DIGILENT BASYS 2 FEJLESZTŐLAP LEÍRÁSA

Programozási segédlet DS89C450 Fejlesztőpanelhez

Az MSP430 mikrovezérlők digitális I/O programozása

VI. SZOFTVERES PROGRAMOZÁSÚ VLSI ÁRAMKÖRÖK

Mechatronika és mikroszámítógépek. 2018/2019 I. félév. Külső megszakítások

Az interrupt Benesóczky Zoltán 2004

Laboratóriumi műszerek megvalósítása ARM alapú mikrovezérlővel és Linux-szal

Számítógép mikroprocesszor - mikrokontroller

Mintavételes szabályozás mikrovezérlő segítségével

Bevezetés a számítástechnikába

Nagyteljesítményű mikrovezérlők Energiatakarékos üzemmódok

Serial 2: 1200/2400 bps sebességû rádiós modem vagy

7. Fejezet A processzor és a memória

Digitális áramkörök és rendszerek alkalmazása az űrben 2.

Operandus típusok Bevezetés: Az utasítás-feldolgozás menete

Szenzorhálózatok I. Beágyazott információs rendszerek. Bevezetés. HW architektúrák. Alkalmazások március 30. Simon Gyula

Yottacontrol I/O modulok beállítási segédlet

Az AVR programozás alapjai. Előadja: Both Tamás

T Bird 2. AVR fejlesztőpanel. Használati utasítás. Gyártja: BioDigit Kft. Forgalmazza: HEStore.hu webáruház. BioDigit Kft, Minden jog fenntartva

Memóriák - tárak. Memória. Kapacitás Ár. Sebesség. Háttértár. (felejtő) (nem felejtő)

Scherer Balázs: Mikrovezérlők fejlődési trendjei

Architektúra, megszakítási rendszerek

ARM processzorok felépítése

The modular mitmót system. Az AVR mikrovezérlő kártya

ARM Cortex magú mikrovezérlők

Irányítástechnika Elıadás. Programozható logikai vezérlık

The modular mitmót system. 433, 868MHz-es ISM sávú rádiós kártya

Ismerkedjünk tovább a számítógéppel. Alaplap és a processzeor

SZÁMÍTÓGÉPEK BELSŐ FELÉPÍTÉSE - 1

Dr. Oniga István. DIGITÁLIS TECHNIKA 10 Memóriák

Programmable Chip. System on a Chip. Lazányi János. Tartalom. A hagyományos technológia SoC / PSoC SoPC Fejlesztés menete Mi van az FPGA-ban?

Digitális áramkörök és rendszerek alkalmazása az űrben 3.

SYS700-A Digitális szabályozó és vezérlõ modul DDC rendszerelemek, DIALOG-III család. Terméktámogatás:

6. óra Mi van a számítógépházban? A számítógép: elektronikus berendezés. Tárolja az adatokat, feldolgozza és az adatok ki és bevitelére is képes.

DDS alapú szinusz jelgenerátor fejlesztése

A számítógép alapfelépítése

A Memory Interface Generator (MIG) beállítása a Logsys Kintex-7 FPGA kártyához

Miskolci Egyetem Gépészmérnöki és Informatikai Kar Elektrotechnikai-Elektronikai Intézeti Tanszék

Bepillantás a gépházba

Dr. Schuster György szeptember 27.

Mikrovezérlők Alkalmazástechnikája

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)

Hobbi Elektronika. A digitális elektronika alapjai: Újrakonfigurálható logikai eszközök

I 2 C, SPI, I 2 S, USB, PWM, UART, IrDA

Mérő- és vezérlőberendezés megvalósítása ARM alapú mikrovezérlővel és Linux-szal

Digitális áramkörök és rendszerek alkalmazása az űrben 2.

A számítógép egységei

Számítógép architektúrák. Tartalom. A memória. A memória

Autóipari beágyazott rendszerek CAN hardver

T Bird 2. AVR fejlesztőpanel. Használati utasítás. Gyártja: BioDigit Kft. Forgalmazza: HEStore.hu webáruház. BioDigit Kft, Minden jog fenntartva

5-6. ea Created by mrjrm & Pogácsa, frissítette: Félix

DSP architektúrák dspic30f család

A tervfeladat sorszáma: 1 A tervfeladat címe: ALU egység 8 regiszterrel és 8 utasítással

Mikrovezérlők Alkalmazástechnikája

Járműinformatika Beágyazott rendszerek

Perifériák hozzáadása a rendszerhez

Átírás:

Az AVR ATmega128 mikrokontroller Rövid leírás Ez a leírás a Mérés labor II. tárgy első mikrokontrolleres témájú mérési gyakorlatához készült. Csak annyit tartalmaz általánosan az IC-ről, ami szerintünk első olvasatban még befogadható. A rövid leírás kitér még az általános digitális I/O portok felépítésére, amihez a laborgyakorlat első kis programjának megírásához van szükség. Tartalom 1. Az ATmega128(L) processzor főbb jellemzői 2. Regiszterek 3. Az integrált programmemória és adatmemória 4. Az általános digitális I/O portok felépítése 5. Az I/O portok alternatív funkciói Irodalom Függelékek 1. Az ATmega128(L) processzor főbb jellemzői Általános jellemzők Az ATmega128 egy kis fogyasztású, statikus CMOS áramkörtechnikán alapuló mikrokontroller. A belső CPU mag RISC jellegű, az aritmetikai utasításokat (általában) 1 órajel-ciklus alatt hajtja végre. A maximális órajel-frekvencia 16 MHz, így elvileg 16 MIPS végrehajtási sebesség is elérhető. Két változatban gyártják a processzort: ATmega128: 4,5-5,5 V tápfeszültség, 0-16 MHz órajel-frekvencia ATmega128L: 2,7-5,5 V tápfeszültség, 0-8 MHz órajel-frekvencia A mikrokontrollert 64 kivezetéses TQFP (Thin (1.0 mm) Plastic Quad Flat Packag) vagy MLF (Micro Lead Frame Package) tokba szerelik, Tömbvázlat Az AVR ATmega mikrokontrollerek egyszerűsített tömbvázlata az 1 ábrán látható. A mikrokontroller két fő részből áll: AVR CPU és memória mag (AVR CPU core) Integrált I/O egységek A különböző AVR ATmega mikrokontroller típusok magja hasonló felépítésű, a magon belül alapvetően csak a program- és adatmemória méretében vannak különbségek. 1/8

8-bit Data Bus 32 x 8 bit General Purpose Registers ALU Addr. & Control Data RAM SPI Unit I/O Module 1 I/O Module 2 Flash Program Memory Instruction Register & Decoder IT Unit Program Counter AVR CPU Core Watchdog Unit I/O Module n 1. ábra AVR ATmega mikrokontrollerek tömbvázlata A CPU mag A mikrokontroller tömbvázlatát (1. ábra) megtekintve megállapíthatjuk, hogy a programkódnak és az adatoknak külön memóriája van, nem egy közös tárban találhatók. Az adatátviteli csatorna is más a programkód számára, mint az adatok számára. Ebből nyilvánvaló, hogy egy non- Neumann architektúráról van szó. A CPU ún. Harvard-architektúrával rendelkezik, hasonlóan az egy chipbe integrált mikrokontrollerek többségéhez. A CPU aritmetikai része RISC jellegű, a gyártó egy "Advanced RISC Architecture"-ről beszél. Az utasításkészlet 133 utasítást tartalmaz, ezek többsége 1 órajelciklus alatt hajtódik végre. A CPU mag 32 általános célú regisztert tartalmaz, melyek közvetlenül kapcsolódnak az ALU egységhez. Az aritmetikai műveletek operandusainak a regiszterekben kell lenniük illetve az egyikük egy konstans is lehet. Az adatmemóriában lévő változón nem tudunk közvetlenül műveletet végrehajtani, azt előbb be kell tölteni valamelyik regiszterbe. Ezt szokás "Load/Store architektúrának" is nevezni, ami azt jelenti hogy az adatmemóriához csak Load vagy Store jellegű utasítással fordulhatunk. Ez szintén jellemző a RISC processzorokra. Az ALU egy szorzó áramkört is tartalmaz. 2/8

Integrált program- és adatmemória 128 KByte In-System Reprogrammable Flash a programkód számára. (In-System Programmable: a rendszerbe beépített (beforrasztott) IC programozható és törölhető is az IC-ben található égetőprogram segítségével.) 4K Bytes EEPROM, az adott alkalmazás paramétereinek tárolására. 4K Bytes Internal SRAM mint adatmemória. SPI Interface for In-System Programming. Általános digitális I/O portok Az ATmega128 is rendelkezik a mikrokontroller esetében általános digitális I/O portokkal. Rendelkezésre áll: 6 db 8-bites kétirányú digitális I/O port és 1 db 5-bites kétirányú digitális I/O port. Gyakorlatilag minden, be/kimeneti célú lábra csatlakozik valamelyik digitális I/O port egyik lába. A digitális I/O port kivezetések többsége más funkcionális I/O modulhoz, integrált perifériához is csatlakozik. Ha ezt a másik perifériát használjuk, akkor az adott lábakat nem használhatjuk általános digitális I/O-ként. Az általános digitális I/O portok felépítésével később külön foglalkozunk. JTAG (IEEE std. 1149.1 Compliant) Interface Perem-letapogatásos (Boundary Scan) tesztelési lehetőség a IEEE std. 1149.1 szabványnak (JTAG) megfelelően Integrált fejlesztést (Debug) támogató HW egységek, melyek a JTAG interfészen keresztül kezelhetők. A Flash program-memória és az EEPROM is programozható a JTAG interfészen keresztül Integrált perifériák 2. db 8-bites Timer/Counter külön előosztó (Prescaler) egységgel és Compare üzemmóddal 2 db 16-bites Timer/Counter külön előosztó (Prescaler) egységgel és Compare valamint Capture üzemmóddal Real Time Counter külön saját oszcillátorral 2 db 8-bites PWM (pulzus-szélesség modulációs) csatorna 6 db PWM csatorna with 2 től 16 bitig programozható felbontással Output Compare Modulator Egy 8-csatornás, 10-bit felbontású A/D átalakító (ADC), melynek bemeneti egysége az alábbi módok valamelyikébe konfigurálható - 8 Single-ended Channels - 7 Differential Channels - 2 Differential Channels with Programmable Gain at 1x, 10x, or 200x Byte-orientált kétvezetékes soros interfész (Two-wire Serial Interface) Dual Programmable Serial USARTs Master/Slave SPI soros interfész Programozható Watchdog Timer integrált óragenerátorral Analog komparátor Egyéb speciális funkciók (Special Microcontroller Features) Különböző kiegészítő egységeket és funkciókat is beintegráltak az IC-be, amelyek közül néhányat megemlítünk: 3/8

Bekapcsolási Reset áramkör (Power-on Reset) Programozható Brown-out (tápfeszültség-csökkenés) detektor (Brown-out Detection) Belső kalibrált RC Oscillator Belső és külső interrupt lehetőségek Különféle alvó-módok: Idle, Power-save, Power-down, Standby, Extended Standby 2. Regiszterek Általános célú regisztertömb (General Purpose Register File) A CPU mag 32 darab 8-bites általános célú regisztert tartalmaz, melyek közvetlenül kapcsolódnak az ALU egységhez. Általánosan ezen regiszterek tartalmazzák az aritmetikai utasítások operandusait, és az eredmény is valamelyik regiszterbe kerül. A regiszterek általában egyenrangúak, de néhány utasításnál egyes regisztereknek kivételes szerepük van. A legfontosabbak a következők: Az LDI (Load Immediate) utasítás csak a felső 16 regiszterre (R16 -R31) van értelmezve. Az R26-27, R28-29 és az R30-31 regiszter-párok 16 bites mutatóként szerepelnek egyes Load/Store utasításokban, mint pl. Load indirect From Data Space to Register using Index X, Y or Z Load Byte pointed by Z into Register Store indirect From Register to Data Space using Index X, Y or Z Stack-mutató (Stack Pointer) A 16 bites SP (Stack Pointer) regiszter mindig a stack logikai tetejére mutat. A stack fizikai növekedési iránya a magasabb memória címek felől az alacsonyabb címek felé tart. (A PUSH utasítás az SP regiszter tartalmát csökkenti, a POP növeli.) Ezért a stack kezdetét a RAM legmagasabb címére szokás helyezni. Állapotregiszter (Status Register) A 8 bites állapotregiszter elsődlegesen az aritmetikai műveletek eredményére utal. Például a Z (Zero) bit megmutatja, hogy az eredmény értéke nulla-e. Az, hogy az egyes utasítások mely biteket állítják, az utasítás-táblázatban van feltüntetve. A regiszter ezen kívül tartalmazza az interruptot általánosan engedélyező/tiltó bitet, az I-bitet. Fontos megjegyezni, hogy a státuszregiszter tartalma interrupt rutinba ugráskor nem mentődik automatikusan, ezt a programozónak kell biztosítani. (A PC-k Intel IA-32 architektúrájú (és ezzel kompatibilis) processzorjai esetében a mentés és visszaállítás automatikus.) 4/8

Az egyes bitek jelentése: Bit 7 I: Global Interrupt Enable Bit 6 T: Bit Copy Storage Bit 5 H: Half Carry Flag Bit 4 S: Sign Bit, S = N exor V Bit 3 V: Two s Complement Overflow Flag Bit 2 N: Negative Flag Bit 1 Z: Zero Flag Bit 0 C: Carry Flag 3. Az integrált programmemória és adatmemória Az AVR architektúrának két fő memória-tartománya van: programmemória tartomány (Flash Program Memory) adatmemória tartomány (Data Memory) A két fő memória-tartomány felépítése a 2. ábrán látható. A programmemóriában kijelölhető egy Boot-szekció, amelyben betöltő, futtató programot (operációs rendszerecskét) lehet elhelyezni. Ez a rész védelemmel is ellátható. A laborban ilyen szekciót nem definiálunk. Flash Program Memory $0000 $FFFF Application Section Boot Section $0000 $0020 $0060 $0100 $10FF $1100 $FFFF Data Memory 32 Registers 64 Standard I/O Registers 160 Extended I/O Registers Internal SRAM (4096 x 8 bit) Optional External SRAM 2. ábra Az ATmega128 két fő memória-tartománya Az adatmemória tartomány érdekessége, hogy ebben az általános regisztertömb és az I/O tartomány regiszterei is megtalálhatók. A regiszterek így is elérhetők. Ezen kívül az ATmega128 mikrokontrollerben található még egy 4 kb kapacitású EEPROM, az adott alkalmazás paramétereinek, adatainak "nem-felejtő" tárolására. 5/8

4. Az általános digitális I/O portok felépítése Mérés labor II. ATmega128 2004-09-20 A digitális I/O portok a mikrokontrollereknél szokásos felépítésűek. Az I/O portok kétirányúak, tehát kimenetként vagy bemenetként is működhetnek. Az irány bitenként programozható, minden porthoz tartozik egy irányt meghatározó regiszter. Az ATmega128 portjainak felépítését (a [2] dokumentum Figure 30 alapján) a 3. ábra mutatja, működését pedig a 4. ábrán látható táblázat (Table 25 in [2]). 3. ábra Az általános digitális I/O portok felépítése A port működése a következőképp foglalható össze. A porthoz tartozik egy adatregiszter melynek jelölése PORTx, egy DDRx jelölésű irányregiszter, és egy csak olvasható PINx regiszter, ahol x a port betűjele (A - G). A regiszter n-edik bitje PORTxn, DDxn illetve PINxn. Ha az irányregiszter DDxn bitje 1 értékű, akkor az adatregiszter PORTxn bitje hajtja meg a megfelelő kivezetést (PIN) egy tri-state pufferen keresztül. Ha a kivezetést bemenetként kívánjuk használni, akkor kimeneti puffer harmadik (HiZ, nagyimpedanciás) állapotba kell kapcsolni a DDxn bit 0-ba írásával. 6/8

4. ábra A digitális I/O portok vezérlése A kivezetés állapotát, az ott észlelhető logikai szintet a PINx regiszterből olvashatjuk vissza. A kivezetés állapota egy szinkronizáló áramkörön keresztül kerül beolvasásra, hogy elkerüljék a metastabil állapot esetleges fellépését. Minden kivezetéshez egy felhúzó (pull-up) ellenállás is kapcsolódik. A felhúzó ellenállás lekapcsolható az SFIOR regiszter PUD jelü bitjének állításával, illetve befelé irány esetén a megfelelő PORTxn bit törlésével. Fontos megjegyezni, hogy az ATmega128 kontrollerben az F és G port címzése már nem fért be az I/O regiszterek tartományába, hanem memóriába ágyazott (memory mapped) lett, a PINF regiszter kivételével. Ennek megfelelően nem in vagy out utasításokkal, hanem load és store típusú utasításokkal férhetünk hozzá. 5. Az I/O portok alternatív funkciói A mikrokontroller nagyszámú integrált perifériát tartalmaz, melyeknek természetesen vannak bemeneteik és kimeneteik. Ha ezek mindegyikéhez egy dedikált kivezetést rendelnének, akkor olyan nagy lábszám adódna, aminek használata az alkalmazást jelentősen nehezítené és nagy költségekkel járna. Ezért az integrált perifériák be/kimeneteit ugyanazon lábakhoz vezetik, mint az általános digitális I/O portokét. A perifériák be/kimeneti jeleit nevezik az I/O portok alternatív funkciójának. Az áramkörök úgy vannak kialakítva, hogy ha engedélyezzük az integrált periféria működését, akkor annak kimenő jelei automatikusan meghatározzák a kivezetés állapotát, felülírják (override) a digitális I/O port által meghatározott értéket. Irodalom [1] -: Atmel ATmega128(L) 8-bit AVR Microcontroller; Summary (27 pages, updated 05/04) http://www.atmel.com/dyn/resources/prod_documents/2467s.pdf, [2] -: Atmel ATmega128(L) 8-bit AVR Microcontroller; Complete (389 pages, updated 05/04) http://www.atmel.com/dyn/resources/prod_documents/doc2467.pdf [3] Zier, David: AVRStudio4 and Atmega128; A Beginner's Guide starterguide.pdf http://eecs.oregonstate.edu/education/classes/ece375/starterguide.pdf (Oregon State University), 7/8

Függelékek F1. Az AVR ATmega128 mikrokontroller részletesebb tömbvázlata Az alábbi tömbvázlat az [1] irodalomból van átvéve. 8/8