Fórum témák

» Több friss téma
Cikkek » Launchpad: ismerkedés az MSP430 mikrovezérlőkkel III.
Launchpad: ismerkedés az MSP430 mikrovezérlőkkel III.
Szerző: icserny, idő: Jún 19, 2012, Olvasva: 20467, Oldal olvasási idő: kb. 8 perc
Lapozás: OK   2 / 10

Az MSP430G2553 mikrovezérlő bemutatása

A 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:

  • G2xx1 (9 típus)  0,5-2 kB FLASH programmemória, 128 B RAM, max. 10 I/O, 1 Timer 2 PWM csatornával, USI univerzális soros illesztővel (I2C/SPI), s a nagyobb kiépítettségűekben analóg komparátor vagy analóg-digitál átalakító (ADC) is van. Ebbe a típuscsaládba tartoznak a Launchpad kártya korábbi kiadásához kapott G2211 (csak komparátor) és a G2231 (10-bites ADC) mikrovezérlők is.
  • G2xx2 (16 típus) 1-8 kB FLASH programmemória, 256 B RAM, max. 16 I/O, 1 Timer 3 PWM csatornával, USI univerzális soros illesztővel (I2C/SPI), s a nagyobb kiépítettségűekben analóg komparátor és analóg-digitál átalakító (ADC) is van.
  • G2xx3 (16 típus) 2-16 kB FLASH programmemória, 512 B RAM, max. 24 I/O, 2 Timer 2x3 PWM csatornával, USCI univerzális soros illesztővel (I2C/SPI vagy UART), s a nagyobb kiépítettségűekben analóg komparátor és analóg-digitál átalakító (ADC) is van.

A Launchpad kártya újabb (Rev 1.5) kiadáshoz a G2xx2 és a G2xx3 típuscsaládok csúcsmodelljeit (MSP430G2452 és MSP430G2553) kapjuk. Ezek közül az alábbiakban az MSP43G2553 típust mutatjuk be részletesen.

Az MSP430G2553 mikrovezérlő lábkiosztása

Az alábbi ábrán az MSP430G2553 mikrovezérlő lábkiosztását láthatjuk (ez az az IC, amelyet gyárilag előre programozottan (a hőmérő demó) és a kártya foglalatába dugva kapunk meg).


2_1. ábra: Az MSP430G2553 mikrovezérlő lábkiosztása

Amint a kivezetések mellé írt elnevezések tömkelegéből is látható, a mikrovezérlő jóval több funkció ellátására képes, mint amennyihez egyidejűleg kivezetést tudunk rendelni. A feliratok egy részét így is törölnünk kellett hogy az ábra elférjen az itt rendelkezésre álló hasáb keretei között. Ezért minden program elején az inicializálás során be kell állítanunk, hogy melyik lábat milyen funkció ellátására kívánunk használni. Az általános célú ki-/bemeneti portok kivezetéseit színezéssel jelöltük: a zöld jelzésű kivezetések a P1 porthoz, a piros jelzésűek a P2 porthoz tartoznak. Amint látjuk, a bitek számozása 0-val kezdődik. Mindegyik bit egyedileg beállítható, hogy kimenet, vagy bemenet legyen. A P1.0-P1.7, P2.0-P2.7 elnevezések jelentése tehát már tisztázott. Nézzük, mit fed a többi név!

DVCC és DVSS a tápfeszültség (esetünkben kb. 3.5 V) és a föld elnevezése.

XIN és XOUT a kvarckristály helye. Ide forraszthatjuk be a csomagban kapott 32 kHz-es órakvarcot. A beforrasztást azonban ne hamarkodjuk el, mert akkor elveszítjük a P2.6 és P2.7 általános célú ki/bemenetek használatának lehetőségét!

ACLK és SMCLK a mikrovezérlő órajeleinek kivezetésére szolgálnak

TCK, TMS (és a helyhiány miatt kitörölt TCLK, TDI, TDO) valamint a TEST lábak a mikrovezérlő programozására és nyomkövetéséhez használható "hagyományos" JTAG illesztőjének kivezetései. A Launchpad emulátora azonban nem ezeket használja, hanem a kétvezetékes Spy-Bi-Wire illesztőt!

SBWTDIO és SBWTCK a kétvezetékes Spy-Bi-Wire illesztőt kivezetései. Mi ezeket használjuk a mikrovezérlő programozására és nyomkövetéséhez. Ehhez a J3 átkötések közül az RST és TEST jelzésűeknek installálva kell lenniük!

RST az aktív állapotban alacsony szintű RESET (újraindító) jelet fogadó bemenet. Ha ezt a bemenetet lehúzzuk (pl.az S1 nyomógomb megnyomásával), akkor a mikrovezérlő programja újraindul, s a speciális funkciójú, illetve a periféria regiszterek az adatlapban meghatározott állapotba kerülnek.

NMI nem maszkolható interrupt bemenet.

A0...A7 analóg bemenetek az analóg-digitális átalakítóhoz.

ADC10CLK a 10-bites ADC konverziór órajele szükség esetén kivezethető rajta.

VREF- és VREF+ referencia bemenetek az ADC-hez (ha külső referenciát használunk)

SCLK, SDO és SDI az univerzális soros illesztő (USI) kivezetése SPI módban

SCL és SDA az univerzális soros illesztő (USI) kivezetése I2C módban

TA0CLK, TA0.0 és TA0.1 a TIMER0,  TA1.0, TA1.1 és TA1.2 pedig a TIMER1 időzítő és számláló kivezetései.

CA0...CA7 az analóg komparátor bemenetei.

CAOUT az analóg komparátor kimenete.

RXD (vétel) és TXD (adás) az USCI_A egység (univerzális soros kommunikációs egység) UART portjának kivezetései. Ezek az elnevezések a soros kommunikáció hardveres kezelése esetében vannak érvényben. (A szoftveres UART kezelésnél az RXD és TXD kivezetések felcserálődnek!)

Megjegyzések:

  • Az USCI_A és USCI_B modulok számos más kivezetéssel is rendelkeznek az SPI és I2C kommunikáció használatához, ezekkel azonban jelen cikkben nem foglalkozunk.
  • A két számláló/időzítő modulnak nincs minden jele kivezetve az általunk is használt 20 lábú tokozás esetében.  Ez némileg korlátozza a felhasználási lehetőségeket: például TIMER0 esetében a CCR2 egység csak belső időzítésekre használható, a TIMER1 egységnél pedig nem használhatunk külső órajelet.

Elektromos jellemzők

  • A megengedett tápfeszültség tartomány: VCC = 1,8 - 3,6 V. Azonban a mikrovezérlő újraprogramozásához legalább 2,2 V-os tápfeszültség kell, s a maximális sebességű (MCLK = 16 MHz órajel frekvencia) működés legalább 3,3 V-os tápfeszültség kell.
  • Jellemző az ultra kis teljesítményfelvétel. Például aktív módban 230 µA (1 MHz-en VCC=2,2 V mellett), tétlen  (standby) módban pedig 0,5 µA.
  • Az egyes lábakra legfeljebb -0,3 V és VCC +0,3 V közötti feszültség kapcsolható (tehát a digitális bemenetek nem tolerálják a TTL logikai áramkörök 5 V körüli jelszintjét!). A fenti határok átlépése esetén  bemenetenként egy-egy védődióda kinyit, amely letöri a túlfeszültséget. A védődiódák árama egyenként legfeljebb ±2 mA lehet, ekkora áramot viselnek el károsodás nélkül.
  • A kimenetek terhelhetőségéről kevés információt találtam, mindenesetre az adatlap szerint ±6 mA terhelőáram (+ ha forrás, - ha nyelő a kimenet) üzemszerűnek mondható. Ekkor kb. VCC-0,3 V körüli magas kimeneti jelszintre számíthatunk. Ennél nagyobb terhelőáramok esetén, vagy ha az összes kimenet összesített kimenő áram a +/-48 mA áramot meghaladja, akkor a kimeneti jelszint jelentős mértékben lecsökkenhet.

Az MSP430G2553 mikrovezérlő blokkvázlata

Az előzőekben "kívülről nézve" vizsgáltuk az MSP430G2553 mikrovezérlőt. Most nézzük meg "belülről" is, lássuk, mi van benne! A narancssárga színezésű blokkok a korábbi cikkekben ismertetett MSP430G2231 mikrovezérlőben nincsenek, tehát ennyivel bővült a perifériakészlet, illetve a korábbi USI modul helyett itt a kombinált USCI_A és USCI_B modul található, amely hardveres UART támogatást is tartalmaz, s az I2C kommunikáció hardveres támogatása is fejlettebb. A Port 3 blokkja azért van lehúzva, mert az csak a 28 lábú tokozásban van kiépítve, az viszont a Launchpad kártyába nem illeszthető be. Piros színnel kiemeltem azokat a paramétereket, amelyekben az új kártya MSP430G2553 mikrovezérlője meghaladja a korábbi (MSP430G2231) mikrovezérlőt: nagyobb memória, több I/O kivezetés, és TIMER0 három Capture/Compare modult tartalmaz.

2_2. ábra: Az MSP430G2553 mikrovezérlő belső felépítésének blokkvázlata

A kibővített perifériakészletben helyett kapott egy analóg komparátor is. A régebbi kiadású Launchpad kártyához kapott mikrovezérlőknél az egyikben analóg komparátor volt, a másikban ADC, itt most  egyszerre van mindkettő.

Újdonság az is, hogy az MSP430G2553 mikrovezérlőben két számláló/időzítő egység (Timer0_A3 és Timer1_A3) kapott helyet. Mindkettő "A típusú", tehát hasonló felépítésű mint a korábbi kiadású Launchpad kártya mikrovezérlőinél, de mindkét modulban 3-3 Capture/Compare regiszter található. A lábkiosztás ismertetésében szereplő TA0.0 ... TA2.2 jeleknél az első szám a számláló/időzítő egység sorszáma (0: Timer0, 1: Timer1), a második szám pedig a Capture/Compare regiszter sorszáma (0: TACCR0, 1: TACCR1, 2: TACCR2).

Az USCI egység USCI_A0 modulja UART, LIN, IRDA, vagy SPI kommunikációhoz használható, melyek közül a Launchpad kártya az UART kapcsolatot preferálja, ennek segítségével kommunikálhatunk az emulátoron keresztül a PC-vel. Az USCI_B0 egység SPI vagy I2C kommunikációra használható.

A blokkvázlaton nincs feltüntetve, de az adatlapból kiderül, hogy az MSP430G2XX3 mikrovezérlő család tagjai gyárilag beégetett betöltőprogramot (Bootstrap Loader, BSL) is tartalmaznak. A BSL segítségével a P1.1 és P1.5 lábak felhasználásával soros kapcsolaton keresztül tölthetünk be programokat. A Launchpad kártya emulátora azonban fölöslegessé teszi ennek használatát, tehát a következőkben figyelmen kívül hagyjuk a BSL lehetőségét.

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őáramkör 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úlcsordulá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.

Az analóg-digitális átalakító (ADC) 10-bites felbontású, szukcesszív megközelítést alkalmazó 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ória

Az MSP430G2553 mikrovezérlő 16 kB FLASH memóriában tárolja a beégetett programot, s 512 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 MSP430G2553 mikrovezérlő memória címterületének beosztása az alábbi ábrán látható:

2_3. ábra: Az MSP430G2553 mikrovezérlő memóriatérképe

Bekapcsoláskor vagy újraindításkor az első utasítás címét a legmagasabb szócímről (0xFFFE) veszi elő a mikrovezérlő, 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 programmemória fennmaradó területre (0xC000-0xFFBF címtartományban) helyezhetjük el a programkódot.  A programmemória FLASH, nem felejtő memória, kb. 100 000 alkalommal írható újra.

Az 0x1000-0x10FF címtartományban elhelyezkedő 256 bájtnyi FLASH információs 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, mint pl. a gyárilag kalibrált frekvenciák beállításhoz szükséges paraméterek.

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 MSP430G2553 adatlap 14. és 15. táblázataiban található meg.


A cikk még nem ért véget, lapozz!
Következő: »»   2 / 10
Értékeléshez bejelentkezés szükséges!
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem