A mini-Bully kártya

A fejezet tartalma:
A "mini-Bully" kártya eredetileg a Mississippi State University EC3274 kurzusánál használt és a Tankönyvben ismertetett mintaáramkör nyomtatott áramköri kártyán, PIC24HJ32GP202 mikrovezérlővel megépített változata volt, amit azóta már nem forgalmaznak. A mini-Bully kártya jelenleg kapható, átdolgozott változata már PIC24HJ64GP502 mikrovezérlőt tartalmaz (a felületszerelt, SOIC tokozású mikrovezérlő be van forrasztva, tehát csak forrasztással cserélhető), amelynek lábai a panel két oldalán vannak kivezetve. A PIC24HJ64GP502 mikrovezérlő csupán a programtároló memória mértében különbözik a PIC-kwik projektben ismertetett PIC24HJ128GP502 mikrovezérlőtől, tehát csupán a mikrovezérlő típusát és a mikrovezérlőhöz tartozó linker állományt kell lecserélni a példa projektekben.

A mini-Bully kártyába kétoldalt tüskesor forrasztható, melynek segítségébel dugaszolt próbapanelba illeszthető. A kártya egy 3,3 V-os stabilizátort, egy RESET gombot és egy LED-et is tartalmaz, lényegében tehát megegyezik a PIC-kwik projektben ismertetett kísérleti áramkörrel. A mini-Bully kártya mikrovezérlőjébe már be van égetve az MSU bootloader program és a reset.c mintaprogram. A kártya tehát programozó készülék nélkül is használható, a lefordított példaprogramokat a gyárilag beégetett bootloader segítségével tölthetjük be. Ehhez azonban szükségünk lesz egy USB-TTL soros átalakítóra, ami a kártya végére beforrasztható 6 pólusú tüskesorhoz csatlakozhat.
minibully.jpg
1. ábra: A mini-Bully (PIC24 breakout) kártya

A mini-Bully kártya az alábbiakban különbözik a PIC-ador kártyától:

A mini-Bully kártya beüzemelésének lépései

  1. Vásároljon egy mini-Bully (PIC24 breakout) kártyát a SparkFun-tól!
  2. Legalább a 6 kivezetéses csatlakozóba forrasszon tüskesor érintkezőket az USB-TTL átlakító csatlakoztatásához! Természetesen a többi forrasztási helyre is érdemes csatlakozó tüskéket forrasztani, mert akkor a kártya dugaszolós próbapanelbe is beilleszthető, s így könnyen csatlakoztat hozzá külső áramköri elemeket, a mikrovezérlő lehetőségeinek kihasználására. Ehhez az elterjedten használt 0,1 inch osztású tördelhető tüskesorra lesz szüksége. Olyan típust válasszon, amelyik jól illeszkedik a dugaszolós próbapanel hüvelysorába!
  3. A legtöbb példaprogramnál a mikrovezérlő soros portján keresztül számítógéppel is kommunikálunk. Ehhez be kell szereznie egy USB-TTL protokol konvertert, s telepítenie kell az átalakító meghajtó programját.
  4. A SparkFun PIC24 breakout kártya mikrovezérlőjébe már bele van égetve a letöltőprogram, és egy mintaprogram, ami 57600 baud sebességra van konfigurálva, tehát csatlakoztassa a kártyát a PC-hez, indítsa el  a Bully Bootloader programot (bin\winbootldr.exe) letöltőprogramot, s a soros port kiválasztása és az adatsebesség beállítása után tegyen pipát a OpenCom felirathoz. Ezután nyomja meg a kártyán a RESET gombot, s a grafikus kezelői felületen láthatja a mikrovezérlő üdvözlő üzenetét és a futó mintaprogram üzeneteit. Ezután megpróbálkozhat egy példaprogram lefordításával és letöltésével.
  5. A példaprogramok lefordításakor, illetve a PIC24 támogatói könyvtár használatakor a HARDWARE_PLATFORM nevű makrót DEFAULT_PLATFORM értékkel kell definiálnia a lib/include/pic24_libconfig.h állományban! Mivel ez az alapértelmezett beállítás, a makró definiálása elhagyható, csak arra ügyeljen, hogy nehogy más értékkel legyen definiálva!

Figyelem! A mini-Bully kártyába gyárilag beégetett bootloader nagy valószínűséggel régebbi verziójú (2011 előtti), amellyel ugyan kompatibilis a jelenlegi Bully Bootloader letöltőprogram, de a példaprogramok lefordításakor a lib/lkr/old mappában található régebbi kiadású linker állományokat kell használni hozzá! 

A mini-Bully kártya használatához javasolt alapértelmezett beállítások

  1. HARDWARE_PLATFORM = DEFAULT_DESIGN (ennek hatására az életjelző LED (HB_LED) az RB15 kimenethez lesz rendelve, amit a CONFIG_HB_LED() meghívása nyitott nyelőelektródás kimenetnek állít be, a configDefaultUART() lefutása pedig a soros porti kommunikációt az RB10/RX és RB11/TX lábakhoz rendeli.)
  2. DEFAULT_BAUDRATE = 57600 bit/s (ez a gyárilag beégetett bootloaderben beállított adatátviteli sebesség)
  3. CLOCK_CONFIG = FRCPLL_FCY40MHz (PIC24H mikrovezérlő esetén a belső oszcillátorból fáziscsatolt hurokkal előállított 40 MHz az alapértelmezett Fcy utasításfrekvencia)
Az alábbiakban részletes útmutatót talál a mini-Bully kártya beüzemeléséhez.

Az USB-UART átalakító csatlakoztatása

Ahogy az "A kísérleti áramkör" c. fejezetben is leírtuk, sokféle USB-UART konverter kapható. A Tankönyv szerzői elsősorban az FTDI TTL-232R-3V3 kábel beszerzését ajánlják, mivel annak csatlakozó kiosztása illeszkedik a mini-Bully kártya kivezetéseihez. Arra kell csak ügyelnünk, hogy a kártya Blk feliratához essen a kábel fekete vezetéke (GND).


2. ábra: A mini-Bully  kártya kivezetései
Bekötés
  1. GND - Black
  2. CTS - Brown
  3. VCC - Red
  4. TXD - Orange       
  5. RXD - Yellow
  6. RTS - Green
FTDI TTL-232R-3V3

3. ábra: Az FTDI TTL-232R-3V3  kábel és a hatpólusú csatlakozójának bekötése

Természetesen annak sincs akadálya, hogy valamilyen olcsóbb megoldást válasszunk. Az alábbi ábrán például egy CP2102 USB-TTL átalakító bekötését mutatjuk be. Vigyázzunk, ennél a modulnál az RX/TX kivezetéseket a csatlakozó mikrovezérlő szemszögéből nézve feliratozták, tehát pl. a TX kivezetést a mini-Bully kártya TX bemenetével kell összekötni! Arra is ügyeljünk, hogy a mikrovezérlő távoli újraindításhoz az USB-TTL modul RTS kivezetését használjuk (az ábrán a zöld színnel jelölt összekötés), mivel az RST kivezetés más célt szolgál (az az USB-UART átalakító újraindítására szolgál)!

Bár erről az USB-UART átalakítóról külön ki van vezetve a 3,3 V tápfeszültség is, a mini-Bully kártyának nem erre van szüksége, hanem az 5 V-os tápfeszültségre (mivel a kártya bemenete egy 3,3 V-os feszültségstabilizátorra megy). 

4. ábra: A mini-Bully  kártya és a CP2102 USB-UART átalakító összekötésének vázlata
(a zöld vezeték csak a kényelmes újraindításhoz szükséges)

mini-Bully kártya és az USB-UART átalakító összekapcsolása előtt az USB-UART átlakítót önmagában is kipróbálhatjuk az úgynevezett hurok teszttel:

A kártya élesztése a gyárilag beégetett programmal

Indítsa el a Bully Bootloader programot (bin\winbootldr.exe), válassza ki az USB-UART átalakító tesztelésekor már felismertetett USB eszközhöz tartozó virtuális soros portot (pl. COM10), állítson be 57600 bit/s adatsebességet (most már kritikus ennek értéke, s meg kell, hogy egyezzen a beégetett MSU bootloaderben beállított sebességgel), s kattintson (tegyen pipát) az OpenCom felirat elé! Ezután nyomja meg a mini-Bully kártyán a RESET gombot, s 2-3 másodpercen belül az alábbi ábrán látható menünek kell megjelennie a képernyőn, a Bully Bootloader alkalmazás ablakában (természetesen a "Device ID" kezdetű sora más lesz, a mikrovezérlő eltérő típusa miatt).


5. ábra: Az első PIC24 mintaprogram kipróbálása (reset.c)

Ezzel a bemutató programmal különféle ujraindítási lehetőségeket és energiatakarékos módokat próbálhatunk ki. A választott menüpont sorszámát vagy közvetlenül a szövegablakba gépeljük be, vagy pedig a Send gomb melletti szövegmezőbe írhatjuk be (utóbbi esetben utána a Send gombra is rá kell kattintani ez elküldéshez).

Megjegyzés: a 2. vagy 3. menüpont után csak a mini-Bully kártya RESET gombjával "ébreszthetjük fel" a mikrovezérlőt az energiatakarékos módból!

A mintaprogramok futtatása a mini-Bully kártyán

A PIC-kwik projekt példaprogramjai, amelyek a kibontott code_examples.zip állomány chap08 mappájától kezdődően futtathatók mikrovezérlőn (a korábbi fejezetek példaprogramjait csak szimulátorban futtassa!), a PIC-ador kártyához vannak beállítva. A projektek azonban minimális változtatással ugyanúgy futtathatók a mini-Bully kártyán is. A fő különbség az, hogy a mikrovezérlő típusa más, s ennek megfelelően be kell állítani a mikrovezérlő típusát és ki kell cserélni a projektben a linker állományt.

A példaprogramok projekt állományait (.mcp kiterjesztésű) duplakattintással nyissa meg! Nyissa meg pl. a 8. fejezet echo.mcp projektjét! Ez a mintaprogram eggyel megnövelve tükrözi vissza a beérkező karakterek kódját. Ha például az 'abc' karaktereket küldjük ki a PC-ről, akkor a 'bcd' üzenetet kapjuk válaszul.

1. Ellenőrizze, hogy az MPLAB IDE (integrált fejlesztői környezet) Configure/Select Device menüjében az ön által használt mikrovezérlő van kiválasztva!

6. ábra: A mikrovezérlő típusának beállítása az MPLAB IDE Configure/Select Device menüjében

2. Vegye ki a projektből a PIC-ador kártyához való linker scriptet és helyette adja hozzá a projekthez a mini-Bully kártya MSU bootloaderéhez való linker állományát! A projekt ablakban kattintson jobb gombbal a p24HJ128GP502_bootldr.gld állománynévre, s a felbukkanó menüben válassza a Remove (eltávolítás) opciót! Ezután kattintson az egér jobb gombjával a Linker Script feliratra, s a felbukkanó menűben válassza ki az Add Files to Project (állományok hozzáadása a projekthez) menüpontot, s a felbukkanó ablakban keresse meg a kiválasztott mikrovezérlőhöz tartozó linker állományt!

Figyelem! A mini-Bully kártyához való linker scriptek a kibontott code_examples.zip állomány lib/lkr/old mappájában találhatók. Ezek az MSU bootloader régebbi változatához való linker állományok.

Tallózza be a megfelelő állományt (p24HJ64GP502_bootldr.gld), és kattintson a Megnyitás gombra!

7. ábra: A kiválasztott mikrovezérlőhöz tartozó linker állomány hozzáadása a projekthez

3. Ellenőrizze a Project/Build Options/Project menüben az MPLAB C30 fülre kattintva, hogy nincs olyan makró definiálva, ami nem kompatibilis a mini-Bully kártyával (pl. a HARDWARE_PLATFORM makró vagy ne legyen definiálva, vagy ha definiálva van, akkor DEFAULT_DESIGN értékkel legyen megadva. Ugyanitt állíthatók be - szükség esetén - a DEFAULT_BAUDRATE, CLOCK_CONFIG, DEBOUNCE_DLY, SERIAL_EOL_DEFAULT stb. makrók is, amelyek az adott projektre vonatkozóan felülbírálják a pic24_libconfig.h fejléc állomány beállításait. Ha itt, a projekt opciók között nincsenek ezek a makrók definiálva, akkor az alapértelmezett, vagyis a pic_libconfig.h állományban megadott beállítások érvényesülnek. Ebben az állományban a gyárilag beégetett bootloaderhez a DEFAULT_BAUDRATE makró 57600 értékkel legyen definiálva!

4. Az MPLAB IDE főmenüjének legördülő listájában Debug helyett válasszuk ki a Release fordítási módot, majd kattintsunk a Build ikonra, vagy válasszuk ki a Project/Build All menüpontot!

5. Sikeres fordítás esetén csatlakoztassuk a mini-Bully kártyát az USB-UART átalakítón keresztül a számítógéphez, majd indítsuk el a Bully Bootloader programot (bin/winbootldr.exe), válassza ki a tesztelésekor már felismertetett USB eszközhöz tartozó virtuális soros portot (pl. COM10), állítson be 57600 bit/s adatsebességet, s kattintson (tegyen pipát) az OpenCom felirat elé!

6. A Bully Bootloader letöltőprogram Hexfile gombjára kattintva tallózza be az imént lefordított program hex állományát (chap08/echo.hex)! Nyomja meg a mini-Bully kártya RESET gombját, majd 1-2 másodpercen belül kattintson a Bully Bootloader letöltőprogram Program gombjára! Ha mindent jól csinált, akkor a letöltőprogram felismeri a kártyába épített mikrovezérlőt és elkezdődik a programletöltés, majd annak végeztével automatikusan elindul a program.


8. ábra: Az echo.c program futásának eredménye

Megjegyzés: Ha a kártya RST bemenetét az USB-UART átlakító RTS modemvezérlő kivezetésével összekötötte (4 ábra, zöld vezeték), akkor programozáskor nem kell megnyomnia a RESET gombot. Kattintson egyszerűen az MCLR# & Prgm gombra!  Ügyeljen arra, hogy az MCLR# felirat előtt ne legyen pipa, ha a programot futtatni akarja!

Az új projektek létrehozásának lépéseit az "A kísérleti áramkör" c. fejezet ismerteti.