10.1. Az MSP430 mikrovezérlők fejlesztőkörnyezetei A kis fogyasztású mikrovezérlők terén a legnagyobb család a Texas Instruments MSP430Fxxx kontroller család. Szinte a kis fogyasztású probléma kör területén felmerülő igényre tud nyújtani megoldást és a legjobbat lehet választani, csak a bőség zavara veszélyezteti a felhasználót a választás folyamatában. A folytatásban látható a táblázat, ahol fel vannak sorolva különböző altípusok és hány különböző változat van a piacon. MSP430 16-bit Ultra-Low Power MCUs (415) 1 Series (33) 2 Series (47) Value Line (44) 3 Series (2) 4 Series with LCD (88) 5 Series (63) 6 Series with LCD (25) FRAM Series (20) Low Voltage Series (4) RF SoC Series (16) Fixed Function (1) Automotive (15) Extended Temp (57) Fejlesztőkörnyezet A korábban bemutatott MSP430-as mikrovezérlők programozására három fejlesztőkörnyezet áll rendelkezésünkre. Ezek a következők: Texas Instruments: Code Composer Studio, IAR: Embedded Workbench, és a nyitott forráskódú MSPGCC. Az MSPGCC ingyenes ugyan, de használata sajnos eléggé nehézkes. Az Embedded Workbench ingyenes verziója mikrovezérlőtől függően 4 illetve 8 KB maxinális méretű programot engedélyez, míg a Code Composer Studio ingyenes verziójánál 16 KB-os programokat is írhatunk. Ezek, és a CCS már megismert és kellemes használhatósága miatt a továbbiakban vele foglalkozunk. Mellékelt könyvtárak Természetesen, az MSP mikrovezérlőket is C nyelven programozzuk. A korában tárgyalt ARM Cortex-M3-as mikrovezérlőkkel ellentétben, az MSP-k perifériáit inkább direkt, a regiszterek írásával és olvasásával szoktuk használni. Ez reális is, mivel az MSP mikrovezérlők jelentősen egyszerűbbek az ARM Cortex-M3-asoknál. A regiszterek leírása megtalálható az adott mikrovezérlő család Felhasználói Kézikönyvében. A legyakrabban használt családok az MSP430X2XX, és az MSP430X5XX, MSP430X6XX. Ezek kézikönyvei a következő címekről tölthető le: MSP430X2XX: http://www.ti.com/lit/ug/slau144i/slau144i.pdf MSP430X5XX, MSP430X6XX: http://www.ti.com/lit/ug/slau208j/slau208j.pdf
Előtudás nélkül, csupán a regiszterek leírása alapján nehéz lenne programokat írni, de szerencsére rengeteg mintapélda áll a rendelkezésünkre, melyek mikrovezérlő családonként vannak csoportosítva. Minden csoportban, szinte az összes modular vonatkozóan találhatunk forráskódokat. A mintapéldákat a következő címről lehet letölteni: http://www.ti.com/mcu/docs/mcuproductcontentnp.tsp?sectionid=95&familyid=342&tabid=3357 Ha mégis úgy döntenénk, hogy regiszterek szerkesztése helyett kész függvényeket szeretnénk használni, rendelkezésünkre áll az MSP430Ware szoftvergyüjtemény. Ennek egy hátránya, hogy egyelőre csak az 5-ös és a 6-os sorozatú eszközöket támogatja. A MSP430Ware részét képezik a már részben említett, és külön is letölthető mintapéldák, az adatlapok, és a magas szintű Peripheral Driver Librarie. A Peripheral Driver Library - Periféria Meghajtó Könyvtár az MSP430 mikrovezérlők perifériáit kezelő függvények összessége. Segítségével elvégezhetjük a perifériák inicializálását és vezérlését, lekérdezések, vagy megszakítások által. Az MSP430Ware részét képezi a Code Composer Studio-nak. Ha valaki külön le szeretné tölteni, a következő címen érheti el: http://www.ti.com/tool/msp430ware A Driver Library leírása is ezen a címen található. Egy harmadik módja az MSP430-as mikrovezérlő perifériák engedélyezésének és beállításának a Grace program használata. Segítségével grafikus környezetben állíthatjuk be a különböző modulokat. A Grace részét képezi a Code Composer Studio-nak. Ha valaki külön le szeretné tölteni, a következő címen érheti el: http://processors.wiki.ti.com/index.php/grace_quick_start_guide A Grace leírása is ezen a címen található. Az 5-ös és 6-os sorozatú MSP-k egyes tagjai rendelkeznek integrált USB interfésszel is. Az USB Developer's Package egy szoftver csomag, melyben megtalálhatóak az USB-s applikációk fejlesztéséhez szükséges forráskódok és mintapéldák. Az USB-vel ellátott eszközünket használhatjuk CDC (Communications Device Class), HID (Human Interface Device) és MSC (Mass Storage Class) módban. Az USB Developer's Package letölthető a következő címről: http://www.ti.com/tool/msp430usbdevpack Az USB Developer's Package leírása is ezen a címen található. Az IDE használata Project létrehozása A Code Composer Studio elindítása után lehetőségünk van létrehozni egy új projektet: Project/New CCS project illetve megnyithatunk egy már létező projektet, és azt írhatjuk át kedvünkre Project/Import Existing CCS Eclipse Project. Új project létrehozásánál lehetőségünk van a következők megadására: Project Name: a project tetszőleges neve.
Output type: a kimenet lehet futtatható program, vagy egy statikus könyvtár, minket az előbbi érdekel. Family: a mikrovezérlő családja, ez esetben: MSP430. Variant: itt választhatjuk ki a mikrovezérlő családot pl.: MSP430x2xx, és magát a mikrovezérlőt pl.: MSP430F2418. Connection: itt határozzuk meg a debugger típusát, esetünkben: TI MSP430 USB1. Project Template: Empty Project, egy üres projektet kapunk. Miután elkészült az új project, a következő fájlok és directóriumok alkotják a azt (A bal oldali Project Explorer-ben láthatjuk a projekteinket, és azok tartalmát): Includes itt vannak felsorolva az include-olt fájlok. main.c értelemszerűen, eme fájl main függvényében szerkeszthetjük programunkat. lnk_msp430fxxx.cmd ez az alapértelmezett linker parancsfájl, mely tartalmazza a mikrovezérlő FLASH és RAM memória pozícióit és méreteit. (Ezzel nem kell foglalkoznunk.) msp430fxxx.ccxml itt van meghatározva, hogy mely mikrovezérlőt, és debugger-t használjuk. (Ha a project létrehozásánál jól adtuk meg ezeket, akkor ezzel nem kell foglalkoznunk.) A teljesség kedvéért nézzük meg, build-elés után mikkel egészül ki ez a lista: Binaries a lefordított, futtatható program kerül ide. (Ezzel nem kell foglalkoznunk.) Debug a köztes fájlok találhatóak itt. (Ezzel nem kell foglalkoznunk.) Miután elkészült az új projekt, nekiláthatunk a programunk megírásának, azonban ajánlott, hogy inkább egy mintapélda módosításával kezdjük meg a munkát. Ezzel keresési és kódolási időt spórolhatunk meg. Aki még nem foglalkozott MSP-k programozásával, feltételezhetné, hogy egy összetettebb programhoz nem fog számára megfelelő mintapéldát találni, viszont személyes tapasztalatunk alapján, eddig nem találtunk olyan feladatot, melyhez ne lett volna legalább egy használható mintapélda. Ezeket a mintapéldákat később, a fejlesztés folyamán már könnyen lehet bővíteni. Ha magasabb szintű API nélkül programozunk, akkor a program megírásához csak ASNI C programozói tudás és a regiszterek ismerete szükséges, valamint a main.c elején include-olnunk kell a regiszter és bit definíciókat tartalmazó header fájlt. Példának: az MSP430F2418-as mikrovezérlő használatakor, includolnunk kell a hozzá tartozó.h fájlt: #include "msp430f2418.h" Az IDE használata Példaprogram futtatása, módosítása A megnyitástól a debug-golásig - egy komplett folyamat bemutatásaként nézzük meg, hogyan tudunk egy mellékelt mintapéldát letölteni egy fejlesztőlapra. Fejelsztőlapnak vegyük az egyik legelterjettebb és legegyszerűbb modellt, az MSP-EXP430G2-t (LaunchPad), és keressünk egy olyan mintapéldát, ami LCD híján egy terminal ablakba fog kiírni némi szöveget. A fejlesztőlap az USB-n keresztül szimulált soros porton fog egy virtuális soros portra adatot küldeni. Ezt a portot kell egy terminál programmal megnyitnunk. A fejlesztő lapot egyaránt használhatjuk MSP430G2211, vagy MSP430G2231 mikrovezérlővel. Előzményként feltételezzük, hogy a CCS (az MSP430Ware-rel együtt) fel van telepítve a c:\ti direktóriumban.
1. Miután elindítottuk a Code Composer Studio-t, ki kell választanunk a Project/CCS Example Projects opciót. 2. A megjelenő TI Resource Explorer ablak bal oldalán, Az MSP430Ware/Devices felirat alatt nyissuk le az MSP430G2XX/Code Examples ágakat. 3. A felhasznált mikrovezérlő alapján válasszuk ki az MSP430G2X11 vagy az MSP430G2X31 linket. 4. A jobb oldalon megjelenő listán kattintsunk rá a msp430g2xx1_ta_uart9600.c - Timer_A, Ultra-Low Pwr Full-duplex UART 9600, 32kHz ACLK linkre. 5. Ha az IDE megkérdezi, adjuk meg a mikrovezérlőnk pontos típusát. 6. A project explorer-ben egy dupla kattintással aktiválhatjuk a projektünket (az aktív project lesz később Debug-golva). 7. A Debug gomb, vagy a Run/Debug opció kiválasztásával indíthatjuk a project debuggolását. (A debug-golás build-eli lefordítja és linkeli majd betölti a programunkat.) 8. Sikeres betöltés esetén a CCS átvált Edit módból Debug módba. 9. Debug módban a Resume gomb, vagy a Run/Resume opció kiválasztásával indíthatjuk a letöltött programot. 10. A terminál programot állítsuk be hogy a megadott porton, sztandard beállítások mellett, 9600 Baud sebességgel fogadja az adatokat. 11. Indítsuk újra az MSP-s kódot, és ha mindent jól csináltunk, a terminálnak a következő üzenetet kell kiírnia: G2xx1 TimerA UART READY.. És hogy létrahozzunk valami sajátot is még eme fejezet keretein belül, nézzük, hogyan bírnánk kiiratni a saját nevünket: 1. Edit modban, a Project Explorer-en belül, a saját projektünk alatt nyissuk meg a msp430g2xx1_ta_uart9600.c fájlt. 2. Keressük meg a következő sort: TimerA_UART_print("G2xx1 TimerA UART\r\n"); 3. Legyünk nagyképűek, és a G2xx1 TimerA -t helyettesítsük a saját nevünkkel: TimerA_UART_print("Ervin's UART\r\n"); 4. Mentsük el a fájlt, és debuggoljunk újra. 5. Nézzük meg, mi az eredmény További mintapéldákkal és programozással későbbi fejezetekben foglalkozunk majd. Részletesebb leírás a CCS-ről, MSP-re vonatkozólag következő oldalakon található: http://www.ti.com/tool/ccstudio-msp430 http://www.ti.com/lit/ug/slau157t/slau157t.pdf A Grace használata Ha Grace-szel szeretnénk új projektet létrehozni, azt a következő módon tehetjük meg: 1. Miután elindítottuk a Code Composer Studio-t, ki kell választanunk a Project/New CCS Project opciót. 2. Meg kell adnunk az új project nevét, ki kell választanunk a mikrovezérlőnk családját és típusát, valamint a csatlakozásul szolgáló eszközt (debugger). 3. A Project templates and examples címke alatt az Empty Grace (MSP430) Project kiválasztásával kaphatjuk meg később a grafikus beállításokra szolgáló felületet.
4. A Finish gomb megnyomása után megnyílik az új project. És a Grace ablaka köszönt minket. 5. A modulokat a Device Overview-ban tudjuk elérni. Bármely kék színnel jelölt modul beállításait el tudjuk érni, egy szimpla egérkattintással. 6. A modulokon belül, a modul engedélyezése után Basic, vagy Power User módban tudjuk a modult beállítani. Az odatartozó regisztereket innen is elérhetjük a Registers gombbal. 7. Minden változtatás azonnal módisítja a main.cfg konfigurációs fájlt. 8. Ahhoz, hogy a Grace-ben eszközölt beállítások lefussanak, a main.c fájlban automatikusan include-olva van a <ti/mcu/msp430/csl/csl.h> header fájl, és a program végrahajtásának legelején meghívódik a CSL_init(); függvény. 9. A program szerkesztése és debuddolása a korábban tárgyaltak szerint folytatódhat. A következő linken különböző oktató videókat találhatunk: http://www.ti.com/mcu/docs/mcuproductcontentnp.tsp?sectionid=95&familyid=342&tabid=2847