Fórum témák
» Több friss téma |
Cikkek » Tényleg nincs királyi út? I. rész Tényleg nincs királyi út? I. rész
Szerző: icserny, idő: Jún 22, 2013, Olvasva: 26938, Oldal olvasási idő: kb. 5 perc
Az MSP430FR5937 (Fraunchpad) kártya bemutatásaA Texas Instruments MSP-EXP430FR5739 ("Fraunchpad") fejlesztői kártyája 2011 nyarán debütált, de méltatlanul háttérbe szorult, pedig egyes vonatkozásokban kiemelkedő tulajdonságokkal rendelkezik. A kártya az MSP430FR5739 mikrovezérlőre épül, amely FRAM (ferroelektromos RAM) programtároló memóriával rendelkezik, amely kis fogyasztású, gyors működésű, nem felejtő memória. A flash memóriához képest kis fogyasztás, gyors írás és rendkívül magas (1013-szoros) újraírhatósági szám jellemzi. Az alábbi ábrán bejelöltem a kártya főbb részegységeit. 7_1. ábra: A Texas Instruments MSP-EXP430FR5739 fejlesztői kártyája Az MSP-EXP430FR5739 fejlesztői kártya főbb jellemzői:
Az egyes portkivezetések foglaltságát és elérhetőségét (hol van kivezetve) az alábbi táblázatban foglaltam össze: 7_2. ábra: Az MSP430FR5739 mikrovezérlő portlábainak foglaltsága és elérhetősége a Fraunchpad kártyán Amint látjuk, a nagyszámú I/O kivezetéseknek köszönhetően egyes portlábak csak a TPnn tesztpontokon, vagy az RF3 csatlakozón érhatők el, mert nem fértek el a 2x12 pólusú tüskesoron. It jegyezzük meg, hogy a kártya két oldalán elhelyezkedő kivezetések nemcsak a pólusszámban térnek el a Launchpad kártyától, hanem a két tüskesor távolsága és a portlábak kivezetési sorrendje is más. Ezért a Launchpad kártyához fejlesztett feltét (shield) kártyák nem kompatibilisek a Fraunchpad kártyával. Az Energia szoftverkönyvtáraiban a lábak szerepét a szokásos diagram segítségével mutatjuk be, melyet a https://github.com/energia/Energia/wiki/Hardware címről vettünk át (Rei Vilo alkotása). 7_3. ábra: Az MSP-EXP430FR5739 ("Fraunchpad") kártya lábkiosztása Ezen a kártyán 8 db kék színű felhasználói LED áll rendelkezésre, ezek azonban két portra (Port 3 és Port J) vannak szétosztva. A RED_LED és a GREEN_LED elnevezéseknek ugyan itt nincs semmi értelme, de a programok kompatibilitásának megőrzése végett ezek az elnevezések is hozzá vannak rendelve egy-egy LED-hez: LED1-hez van rendelve a RED_LED és LED4-hez a GREEN_LED név. A két felhasználói nyomógombra PUSH1 és PUSH2 néven hivatkozhatunk (emellett természetesen a 23. és 29. lábszámmal, valamint P4_0 és P4_1 névvel is hivatkozhatunk rájuk). A gyorsulásmérő X, Y és Z kimeneteire ACC_X, ACC_Y és ACC_Z néven hivatkozhatunk, ezek egyébként rendre az A6, A5 és A4 analóg bemenetekre vannak kötve. A gyorsulásmérő azonban csak akkor kap tápfeszültséget, ha az ACC_ENABLE (P2_7) digitális kimenetet magas szintre állítjuk:
Ugyanez a kimenet ad tápfeszültséget az NTC (negatív hőfoktényezőjű) ellenállás osztójának, és a gyárilag nem beépített LDR (fényre érzékeny) ellenállás osztójának is. Emiatt a fenti P2_7 kivezetésre NTC_ENABLE néven is hivatkozhatunk. Az NTC ellenállás osztójának feszültségét a 21. kivezetésen (amelyre P1_4, A1, vagy NTC néven is hivatkozhatunk) mérhetjük meg az ADC segítségével. A hardver további részleteit az MSP-EXP430FR5739 Experimenter Board User's Guide dokumentumból, illetve az Energia telepítési könyvtárának hardware\msp430\variants\fraunchpad\ almappájában található pins_energia.h fejléc állományból olvashatjuk ki. LED fényeffektusAz előző oldalakon leírtak alapján a mintapéldák között található egyszerű LED villogtató program már aligha okoz gondot a kedves olvasónak, ezért mindjárt egy bonyolultabb esettel kezdünk: készítsünk fényeffektust, kihasználva, hogy ilyen sok LED van a kártyán! Villogtassuk a LED-eket úgy, hogy először a két szélső LED-et villanjuk fel, majd a mellettük levőt, s így haladunk befelé 4 lépsben. Utána középről kifelé haladva villantjuk fel sorban a LED-eket, majd ha kiértünk a szélére, kezdjük előlről. A program ötlete, valamint az alábbi program StartUpSequence() függvényének kódja az MSP-EXP430FR5739 kártya gyári demójából való. Hardver követelmények:
A program kódja az alábbi listán látható. Kényelmi okokból itt nem az Arduino mintájú digitalWrite() függvényeket használjuk a LED-ek kezelésre, hanem közvetlenül a port regisztereket írjuk, C utasításokkal. 7_1. lista: A LED_effect program listája
Hőmérséklet mérése az NTC ellenállás segítségévelA kártyán található negatív hőfoktényezőjű ellenállás segítségével hőmérsékletet tudunk mérni. A mérés elve az, hogy a P2_7 láb magas szintre állításával rákapcsoljuk a tápfeszültséget az R35 sorszámú 470 kΩ-os ellenállásból és a 25 °C-on 100 kΩ-os NTC ellenállásból álló osztóra, s megmérjük a leosztott feszültséget, ami a P1_4 (más néven: A1, vagy NTC) bementre van kötve. Az NTC ellenállás értéke szobahőmérséklet körül fokonként kb. 4,5 %-kal változik meg. A változás pontos értékei a B57560G1104 adatlap táblázatából olvashatók ki (a -25 - +75 °C közötti tartományra vonatkozó értékeket a program is táblázatos formában tárolja, 105-tel felszorozva. Az NTC ellenállással történő hőmérséklet méréshez Rei Vilo mintaprogramját használjuk fel, amely a Fraunchpad_NTC könyvtári modulból és az NTC_thermometer.ino főprogramból áll. A könyvtári modulhoz tartozó állományokat szokás szerint a felhasználói könyvtárunkban, az Energia/libraries/Fraunchpad_NTC mappában kell elhelyezni. 7_2. lista: Az NTC_thermometer program listája
A gyorsulásmérő kiolvasásaA következő példában (AccelReadSerial.ino) az ADXL335B háromtengelyű gyorsulásmérő egyszerű használatát mutatjuk be: kiolvassuk a nehézségi gyorsulás három komponensét (ax, ay, az). Ha a kártya nyugalomban van, akkor ez a helyi nehézségi gyorsulásnak felel meg, de ha rángatjuk, rázzuk, vagy dobáljuk a kártyát, akkor végeredményben a kártyára ható erők által keltett gyorsulások eredőjét mérjük. A gyorsulásmérő használatához az ACC_ENABLE (P2_7) kimenetet magas szintre kell húzni. A gyorsulásmérő analóg kimenetei rendre az ACC_x, ACC_Y, ACC_Z névvel választhatók ki (ezek egyébként az A6, A5, A4 analóg bemeneteket jelentik). Hardver követelmények:
7_3. lista: Az AccelReadSerial program listája
A program felépítés rendkívül egyszerű, gyakorlatilag az Energia mintapéldái között található AnalogReadSerial programot alakítottuk át a gyorsulásmérőhöz. 7_5. ábra: Az AccelReadSerial program futtatási eredménye (programfutás közben a kártyát több irányba forgattam) A cikk még nem ért véget, lapozz! Értékeléshez bejelentkezés szükséges! |
Bejelentkezés
Hirdetés |