Fórum témák
» Több friss téma |
Cikkek » Launchpad: ismerkedés az MSP430 mikrovezérlőkkel I. Launchpad: ismerkedés az MSP430 mikrovezérlőkkel I.
Szerző: icserny, idő: Szept 7, 2011, Olvasva: 51204, Oldal olvasási idő: kb. 7 perc
Néhány szó a MSP430 mikrovezérlők felépítésérőlA Texas Instruments az MSP430 Launchpad fejlesztői kártyája az MSP430 mikrovezérlők belépő szintű, ún. Value Line sorozatának (MSP430G2xx sorozat) tagjaihoz készült. Ezek közös jellemzője az ultra kis teljesítményfelvétel, s hogy igen kedvező áron (8-bites mikrovezérlők árszintjén) 16-bites, max 16 Mhz-es mikrovezérlőt nyújtanak, melyek korszerű perifériakészlettel vannak ellátva. E sorok írásának idejéig az MSP430G2xx mikrovezérlőknek három típuscsaládja jelent meg:
Megjegyzés: A Launchpad kártya v1.5 kiadáshoz kapott MSP430G2452 és MSP430G2553 mikrovezérlők ismertetése a cikksorozat III. részében található. Az általunk programozandó mikrovezérlők mindig egy konkrét áramkör részei. Ahhoz tehát, hogy a mikrovezérlőinket eredményesen használhassuk, legalább nagy vonalakban meg kell ismerkednünk lábkiosztásukkal, elektromos jellemzőikkel és belső felépítésükkel, működési elveikkel. Az MSP430G2xx1 mikrovezérlők lábkiosztásaKezdjük az ismerkedést a kártyához kapott mikrovezérlőink lábkiosztásával! Az alábbi ábrán az MSP430G2231 mikrovezérlő lábkiosztását láthatjuk (ne feledjük: ez az az IC, amelyet gyárilag előre programozottan (a hőmérő demó) és a kártya foglalatába dugva kapunk meg).
A korábbiaktól eltérő új elnevezések jelentése a következő: CA0...CA7 az analóg komparátor bemenetei. CAOUT az analóg komparátor kimenete. Elektromos jellemzőkMindkét mikrovezérlőről elmondható, hogy:
Az MSP430G2231 mikrovezérlő blokkvázlataAz előzőekben "kívülről nézve" vizsgáltuk az MSP430G2231 mikrovezérlőt (az MSP430G2211 mikrovezérlőt ebben a cikkben csak érintőlegesen tárgyaljuk, mert elsősorban a G2231 típussal foglalkozunk). Most nézzük meg "belülről" is, lássuk, mi van benne! 4_3. ábra: Az MSP430G2231 mikrovezérlő belső felépítésének blokkvázlata Az órajel generátor többféle órajelet szolgáltat: MCLK a központi egység (CPU) működtető órajele, ACLK és SMCLK pedig a perifériák működtetésére szolgálnak. A központi egység (Central Processing Unit, CPU), amely 16-bites felépítésű, és 0 - 16 MHz között tetszőleges frekvenciájú órajellel használható, feladata az utasítások elővétele, és végrehajtása. A CPU 16 db. regisztert is tartalmaz, amelyek közül négy speciális célt szolgál, a többi általános célra felhasználható, pl. átmeneti adattárolásra, operandusként, vagy memória címzéshez. Az emulációs egység hardveres nyomkövetésnél két töréspontot képes kezelni, s ide tartozik a JTAG, illetve a Spy-bi-Wire programozó/nyomkövető illesztő is. A Brownout Protection (BOR) a tápfeszültség esetleges leesését figyeli, s RESET állapotba kényszeríti a mikrovezérlőt, ha a tápfeszültség nem elegendő a mikrovezérlő működéséhez. Ez a védelem arra jó, hogy a mikrovezérlő "félálmában" (amikor az alacsony tápfeszültség miatt az utasítások felismerése és végrehajtása már bizonytalanná válik) nehogy valami nem kívánt dolgot tegyen (pl. felülírja vagy kitörli a memória egy részét). Az "őrkutya" (WDT+, Watchdog Timer) szerepe az, hogy bizonyos időközönként (beállítástól függően) megszakítsa, vagy újraindítsa a programot. Ez például arra használható, hogy a program elakadását (például egy perifériára való eredménytelen várakozást) észlelje és megszakítsa a program. Ehhez a normális futás közben rendszeresen nullázni kell a WDT számlálóját, s akkor nem csordul túl. Ha viszont egy kritikus részen elakad a program, akkor nem jut el a nullázó részhez, s akkor a számláló túcsordulása RESET-eli a mikrovezérlőt, újraindítja a programot. Alapértelmezetten a CPU 1 MHz-en fut, így a WDT 15 bites számlálója kb. 32 ms elteltével csordul túl. A Timer0 időzítő/számláló egy 16 bites számlálóval és két, független capture/compare (jelrögzítő/digitális komparátor) regiszterrel rendelkezik. Az univerzális soros illesztő (USI) a szinkron soros perifériákkal történő, I2C vagy SPI módú kommunikációra szolgál. Port1 és Port2 az általános célú digitális ki/bemenetek kezelésére szolgálnak. Az analóg-digitális átalakító (ADC) 10-bites felbontású, szukcesszív megközelítést alakalmazó periféria, melynek bemenete előtt egy 8 csatornás analóg multiplexer is található. Az egyes csatornák jelét tehát egyenként lehet megmérni. Másodpercenként max. kb. 200 000 mérés végezhető. A memóriaA mikrovezérlőnk 2 kB FLASH memóriában tárolja a beégetett programot, s 128 bájt RAM memória áll a változók rendelkezésére. A memória címzése és az adatforgalom is egy-egy 16 bites buszon történik. A memória címtartománya tehát 0x0000-tól 0xFFFF-ig terjed (tízes számrendszerben 0-tól 65535-ig). A címzési egység a bájt, az adatátvitel tehát bájtonként (8-bites egységekben) vagy szavanként (16-bites egységekben) történhet. A szavak címzésekor azonban a cím csak páros lehet. Így a memória 0x0200 és 0x0201 címén elhelyezkedő két bájt megcímezhető szavankénti eléréssel, mert a 0x0200 cím páros, azaz érvényes cím. A memória 0x0201 és 0x0202 címén elhelyezkedő két bájt viszont nem címezhető meg szavankénti eléréssel, mert a 0x0201 cím páratlan,azaz érvénytelen cím. Fontos megjegyeznünk, hogy az utasítások elővétele mindig szavankénti eléréssel történik, tehát az utasítások kötelezően páros címen kezdődnek. Ugró utasításnál sem adhatunk meg páratlan címet. Az MSP430 mikrovezérlőknél a több-bájtos adatok tárolása a "little endian" konvenció szerint történik, vagyis a kisebb memóriacímen az alacsonyabb helyiértékű bájt helyezkedik el. Például, ha a 0x0200 címre az 0x1234 számot írjuk, szó szélességű átvitellel, akkor a 0x0200 című bájt tartalma 0x34 lesz, a 0x0201 című bájtba pedig 0x12 kerül. Az MSP430G2231 mikrovezérlő memória címterületének beosztása az alábbi ábrán látható: 4_4. ábra: Az MSP430G2231 mikrovezérlő memóriatérképe Bekapcsoláskor vagy újraindításkor a legmagasabb szócímről (0xFFFE) veszi elő a mikrovezérlő az első utasítás címét, ez tehát az ún. RESET vektor. Alatta helyezkednek el a programmegszakítási vektorok, amelyek az egyes perifériák vagy "kivételek" esetén aktiválódnak. A 0xF800-0xFFBF közötti területen helyezkedik el a programmemória. Az 0x1000-0x10FF címtartományban elhelyezkedő 256 bájtnyi FLASH memória olyan adatok tárolásra szolgál, amelyek a mikrovezérlő kikapcsolása után is megőrződnek (pl. kalibrációs vagy konfigurációs adatok, egyedi sorszám, vagy azonosító). A 256 bájt 4 lapra van osztva, s a legfelsőben gyári beállítások találhatók. A változók és a veremtár a RAM adatmemóriát használják (a változók alulról, a veremtár felülről lefelé bővül. A legalsó 16 bájton az ún. speciális funkciójú regisztereket találjuk, amelyek többek között a programmegszakítással kapcsolatos jelzőbiteket és engedélyező biteket tartalmazzák. A perifériák elérése is memóracímzéssel történik. A 0x0010-0x00FF közötti címtartományban a bájtként címezhető, a 0x0100-0x01FF címtartományban pedig a szavankénti elérésű periféria regiszterek találhatók. Bájt elérésűek például az általános célú digitális ki/bemeneti portok regiszterei. Szavanként elérésűek például a flash memória elérésével, az ADC-vel és a Timer0-val kapcsolatos regiszterek. A bájt- és szavak szerinti elérésű periféria regiszterek teljeskörű felsorolása (névvel, címmel) az MSP430X22X1 adatlap 11. és 12. táblázataiban található meg. A cikk még nem ért véget, lapozz! Értékeléshez bejelentkezés szükséges! |
Bejelentkezés
Hirdetés |