A PIC-ador kártya

A fejezet tartalma:
A PIC-ador kártya tulajdonképpen a PIC-kwik kísérleti áramkör nyomtatott áramköri kártyán megépített változata, amelyet egy USB-TTL soros átalakítóval is kiegészítettünk. A kártya tehát mindent tartalmaz, ami a kiegészítő alkatrészeket nem igénylő egyszerű programok (ledflash.c, echo.c, reset.c) futtatásához kell. A kártya egy USB nyomtatókhoz való kábellel csatlakozik a számítógéphez. Az USB csatlakozón keresztül a kártya tápellátása is megoldott. Ügyeljünk rá, hogy ha kártyához külső áramköri kiegészítéseket csatlakoztatunk, akkor se haladjuk meg a számítógép USB csatlakozójából kivehető áram felső határértékét (max. 0,5 A)!


1. ábra: A megépített PIC-ador kártya

A PIC-ador kártyát úgy alakítottuk ki, hogy amatőr eszközökkel, házilag is könnyen elkészíthető legyen (egyoldalas nyomtatás, néhány átkötéssel, furatszerelt alkatrészek). A tápellátást elsődlegesen az USB csatlakozón keresztül kapja a kártya, de lehetőség van egy 7-9 V-os fali dugasztáp csatlakoztatására is. Egy nagyáramú Schottky védődióda gondoskodik róla, nehogy "megtápláljuk" a számítógép USB tápvonalát az USB kábel és a dugasztáp egyidejű csatlakoztatása esetén.

A PIC-ador kártya beüzemelésének lépései

A PIC-ador 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 az alapértelmezett adatátviteli sebesség)
  3. CLOCK_CONFIG = FRCPLL_FCY40MHz (PIC24H vagy dsPIC33 mikrovezérlő esetén a belső oszcillátorból fáziscsatolt hurokkal előállított 40 MHz az alapértelmezett Fcy utasításfrekvencia. PIC24F mikrovezérlő esetén pedig 16 MHz. A fentebb említett külső rezgőkvarcok esetén a CLOCK_CONFIG makrót PRIPLL_7372KHzCrystal_40MHzFCY vagy PRIPLL_8MHzCrystal_40MHzFCY értékkel kell definiálni, a kvarc frekvenciájától függően.)

Az alábbiakban részletes információt talál a kártya utánépítéséhez és beüzemeléséhez.

Elvi kapcsolási rajz

A PIC-ador kártya elvi kapcsolási rajza az alábbi ábrán látható (kattintson a képre a nagyob felbontáshoz!).


2. ábra: A PIC-ador kártya kapcsolási rajza

Figyelem! A fenti rajzon az alkatrészek sorszámozása nem egyezik meg a beültetési rajzzal, mivel a kapcsolást az Eagle tervezőprogramban újra kellett rajzolni.

A kapcsolási rajz baloldalán a PIC24 kísérleti áramkör látható, amelyet az "A kísérleti áramkör" c. fejezetben részletesen ismertetünk. A mintaprogramok futtatásához nincs szükség arra, hogy a PIC24 mikrovezérlőhöz külső kvarc rezonátort kapcsoljunk, de a kártyán kialakítottuk a helyét, hogy igény esetén beépíthető legyen. A D1 jelzésű LED szerepe kettős: folyamatos fénye jelzi, hogy tápfeszültséget kap a kártya. A mintaprogramok program futásuk közben pedig az RB15 kimenet segytségével periodikusan villogtatják a LED-et, jelezve, hogy fut a program. Az RB15 kimenetet nyitott nyelőelektródás üzemmódba kell kapcsolni!

Az ábra felső részén a tápegység látható. A D2 dióda gondoskodik arról, hogy dugasztáp csatlakoztatásakor az USB csatlakozó +5 V-os vonalát automatikusan leválasszuk. IC2 az egyetlen  felületszerelt alkatrész, a SOT223 tokozású LD117S33 feszültség-stabilizátor, emiatt ezt a kártya forrasztási oldalán helyeztük el. Az ábra jobb oldalán a PIC18F14K50 mikrovezérlővel kialakított  USB-UART protokol konverter látható. A D3 és D4 jelű LED-eknek az áramkör működése szempontjából nincs jelentősége (akár el is hagyhatók), pusztán az USB kapcsolat állapotának vizuális visszajelzésére szolgálnak.

A szaggatott vörös vonallal bejelölt összekötés opcionális: arra szolgál, hogy modemvezérlő paraccsal (az RTS jel aktív állapotba billentésével) a számítógép resetelni tudja a mikrovezérlőt. Erre programletöltéskor lehet szükség, hogy ne kelljen a RESET gomb megnyomásával külön átlépni bootloader módba a Progamming gombra kattintás előtt.

A PIC-ador kártya megépítése

A PIC-ador kártya nyomtatott áramköri terve az alábbi ábrán látható. A vörösbarna vezetékek és az R4, illetve R5 jelzésű ellenállások valójában huzalátkötések. A tervezéshez a Cadsoft cég Eagle tervezőprogramját használtuk. A 3. és az azt követő ábrákon már az újrarajzolt kapcsolás alkatrész sorszámozása látható (az újrarajzolt kapcsolási rajz és a nyomtatott áramköri terv a letölthető gyártási és tervezési állományok között megtalálhatók).

3. ábra: A nyomtatott áramkör terve (alkatrész oldal felől nézve)


4. ábra: A kártya alkatrész-beültetési rajza (IC1 a hátoldalon van!)

A kártya beültetési rajza a 4. ábrán látható. A D1 dióda, az USB csatlakozó és a két hüvelysor (J2, J3) beépítéséhez 1 mm átmérőjű furatokat kell készítenünk. A többi alkatrésznek 0,8 mm-es furatokat készítsünk. A vörössel jelölt vezetékek a huzalátkötések. Célszerű a beépítést ezekkel kezdeni. A Q1 kvarc melletti átkötést feltétlenül szigetelt vezetékkel készítsük. A többinél csupasz vezeték is megfelel. A szaggatott vonalla jelölt átkötés opcionális. Csak akkor forrasszuk be, ha a külső resetelést használni akarjuk.

Megjegyzés: R1 és R3 kivezetései közelebb vannak egymáshoz, mint a többi ellenállás esetében. Vagy kisteljesítményű (1/8 W) ellenállást használjunk, vagy óvatosan hajtsuk alá a lábakat!

A megtervezettt kártya "fotorealisztikus" megjelenítése 4. és 5. ábrákon látható. Megjegyezzük, hogy ezek az ábrák még a tervezés egy korábbi fázisában készültek (a kártya 1.0 verzióját mutatják), így a külső reseteléshez szükséges (a 2. ábrán szaggatott vörös vonalla jelölt) összekötést még nem tartalmazzák. Az ábrák elkészítéséhez az Eagle3D és a PovRay programokat is telepíteni kellett. A fotorealisztikus ábrák elkészítése nem teljesen automatikus. Az Eagle3D által készített PovRay forrásállományba kézzel bele kellett szerkeszteni a könyvtári alkatrészek helytelen pozicionálása miatt (USB csatlakozó, táfesz csatlakozó). Az ilyen ábrák elkészítésével azért érdemes foglalkozni, mert ezek segítségével  ellenőrizhatő az alkatrészek arányos elhelyezése, a kártya várható külleme, s ha valami nem megfelelő, akkor még könnyen lehet változtatni rajta.


4. ábra: A megtervezett kártya fotorealisztikus ábrázolása (alkatrész oldal)



5. ábra: A megtervezett kártya fotorealisztikus ábrázolása (forrasztási oldal)

A nyomtatott áramkör vasalásos technikával házilag is könnyen elkészíthető. Az általunk elkészített prototípus (ez még a kártya 1.0 verziója volt, ami a külső reseteléshez szükséges összekötést nem tartalmazza) nyomtatott áramköri lapjának fényképe az alábbi ábrán látható. A tápcsatlakozó lemezfüleihez a hosszúkás  kivágásokat három furat egybeszakításával készítettük el. Lehetőleg ne valami drága keményfém fúrószárral játsszunk marógépet, hanem olyan (gagyi) fúróval, ami jól bírja az oldalirányú nyomást is és nem törik el!

6. ábra: A kártya nyomtatott áramköri lapja a maratás és fúrás után


7. ábra: A készre szerelt PIC-ador kártya

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

A PIC-ador kártyát bootloaderrel való használatra szántuk, ehhez azonban mindkét mikrovezérlőt el kell látni a bootloader használatát lehetővé tevő programmal (a PIC24 mikrovezérlőt az MSU betöltőprogrammal, a PIC18-at pedig az USB-UART protokol konverter programmal). Az USB-TTL soros átalakítónak használt PIC18F14K50 felprogramozását megnehezíti, hogy A PIC18 mikrovezérlő lábai nincsenek kivezetve a kártyáról. Javasoljuk, hogy még beépítés előtt programozzuk fel az IC-t egy dugaszolós próbapanel, vagy speciális programozói kártya segítségével.

A PIC18F14K50 mikrovezérlőbe a kibontott code_examples.zip állomány PIC18 mappájában található picador_pic18f14k50.hex állományt kell beégetni. Ez tulajdonképpen a Microchip Application Library két USB eszköz mintapéldájának (HID bootloader és CDC Serial Emulator) összevonásával keletkezett, ám a gyári mintapéldákon apró változtatásokat hajtottunk végre:
Megjegyzések
  1. Az a tény, hogy a PIC18 mikrovezérlőbe égetett program az USB HID bootloadert is tartalmazza, azt jelenti, hogy a későbbiek során az USB-UART átalakító firmware szükség esetén az USB kapcsolaton keresztül, programozó készülék használata nélkül frissíthető. Ha a PIC18 mikrovezérlő MCLR kivezetését földre húzva tartjuk, amikor az USB-re csatlakozunk, akkor a mikrovezérlő bootloader módba megy át. Az esetleges firmware frissítést ilyenkor a fent említett Microchip Application Library mintaprogramjai között is megtalálható HIDBootLoader.exe alkalmazással végezhető.
  2. Ne feledjük, hogy a firmware-rel együtt beégetett USB HID bootloader kizáróla a PIC18 firmware frissítésére szolgál, nincs köze a PIC24 mintaprogramok letöltéséhez!

Ha rendelkezünk programozó készülékkel (pl. PICkit2, PICkit3, ICD2 vagy ICD3), akkor a PIC18 első felprogramozásához építsük meg az alábbi ábrán látható áramkört, ami a programozó készülékhez csatlakozó tüskesoron kívül az MCLR lábe flehúzásáról és a tápfeszültségek szűréséről is gondoskodik. Ezt a kapcsolást dugaszolós próbapanelon vagy lengő szereléssel (egy IC foglalatot felhasználva) is összedobhatjuk. Az ábrán az ICSP csatlakozó 1-essel jelölt tüskéjére csatlakozzon a PICkit2 (vagy PICkit3) háromszöggel megjelölt kivezetése!

8. ábra: A PIC18 firmware beégetéséhez szükséges minimális áramkör

A PIC18 firmware beégetése után az USB-UART kommunikáció kipróbálható. Ekkor csak a PIC18 mikrovezérlő legyen beültetve a kártyán, a PIC24 mikrovezrélőt vegyük ki. Ezen kívül ideiglenesen kössük össze a kártya RB10/RX és RB11/TX kivezetéseit, a 9. ábra szerint. Ezzel az összekötéssel tulajdonképpen visszahurkoljuk a számítógép felől érkező kommunikációt (loopback test).

9. ábra: A soros port ki- és bemenetének összekötése (loopback test)


10. ábra: A PIC18 firmware kipróbálása (loopback test)

Az MSU bootloader beégetése

A PIC24 mikrovezérlőhöz használni kívánt MSU bootloadert a Mississipi State University oktatói a Microchip AN1094 alakalmazási mintapéldájából kiindulva fejlesztették ki, s ez az a betöltőprogram, amelyik maximálisan kihasználja az általuk összeállított PIC24 támogatói programkönyvtár nyújtotta kommunkációs és hibakeresési lehetőségeit. A bootloader használata lehetővé teszi, hogy a PIC-ador kártyát a mikrovezérlők első felprogramozása után programozó készülék nélkül használhassuk.

Ha nem rendelkezünk programozó készülékkel, akkor kérjünk meg valakit az első felprogramozás elvégezésére!  A korábbi években volt már rá példa, hogy a hazai forgalmazó (ChipCAD Kft.) minimális felárért bootlodert is égetett a náluk vásárolt PIC16F877 mikrovezérlőkbe. Miért ne újíthatnánk fel ezt a szolgáltatást a kispénzű hobbisták megsegítésére? Arra azonban ügyeljünk, hogy rendeléskor pontosan specifikáljuk, hogy mire van szükségünk! A PIC-ador kártya élesztéséhez az alábbi állományok beégetését kérje. Ezek az MSU bootloader mellett már a reset.c mintaalkalmazást is tartalmazzák, így bekapcsoláskor már valami életjelet is mutat a kártya.

1. táblázat: Letölthető firmware a PIC-ador kártyában  használt mikrovezérlőkhöz
MikrovezérlőA beégetésre javasolt állomány
PIC18F14K50-I/P
USB-UART protokol konverter
picador_pic18f14k50.hex
HID bootloader + USB CDC Serial Emulator
PIC24HJ128GP502-I/SPpicador_firmware_p24HJ128GP502.hex
MSU bootloader + reset.c mintapélda
PIC24HJ64GP502-I/SPpicador_firmware_p24HJ64GP502.hex
MSU bootloader + reset.c mintapélda
dsPIC33FJ128GP802-I/SPpicador_firmware_p33FJ128GP802.hex
MSU bootloader + reset.c mintapélda
Megjegyzések:
Mielőtt a mikrovezérlőket a foglalatba dugnánk, ellenőrizzünk le minden vezetéket, forrasztást, átkötést! Csatlakoztassuk az áramkört egy USB kábellel a számítógéphez, és voltmérővel ellenőrizzük a tápfeszültség nagyságát és polaritását! Amire feltétlenül ügyeljünk: a mikrovezérlők VDD jelzésű lábain és a PIC24 AVDD kivezetésén is  +3,3 V körüli feszültségnek kell lennie. Ezután húzzuk ki az USB kábelt, és ellenállásmérővel ellenőrizzük, hogy mindkét mikrovezérlő VSS kivezetései (a PIC24 esetében két VSS és egy AVSS kivezetés van) össze vannak kötve a tápfeszültség negatív sarkával!

Ha rendelkezünk programozó készülékkel (pl. PICkit2, PICkit3, ICD2 vagy ICD3), akkor ezt az első felprogramozást könnyen elvégezhetjük. Bár a kártyán nem alakítottunk ki ICSP csatlakozást, a PIC24 mikrovezérlő felprogramozása a kártyán (in situ) is könnyen elvégezhető, hiszen a hüvelysorokon a mikrovezérlő összes lába ki van vezetve. A bootloader beégetéséhez a kétoldalt elhelyezett hüvelysor és a dugaszolós próbapanelokhoz használatos átkötő vezetékek (jumper wire) segítségével csatlakoztathatjuk a PICkit2 készüléket. A PIC-ador kártya PIC24HJ128GP502 mikrovezérlőbe a PIC-kwik projekt honlapjáról letölthető  picador_firmware_p24HJ128GP502.hex állományt kell beégetni. Ez a bootloaderen kívül már a reset.c mintaalkalmazást is tartalmazza, így bekapcsoláskor már életjelet is mutat a kártya.

Indítsa el a Bully Bootloader programot (bin\winbootldr.exe), válassza ki a PIC18 mikrovezérlő 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 PIC-ador 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.


11. á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 PIC-ador kártya RESET gombjával "ébreszthetjük fel" a mikrovezérlőt az energiatakarékos módból!

Támogatás az 1. táblázatban nem szereplő mikrovezérlőkhöz

A PIC-kwik projekt elsősorban a PIC24HJ128GP502 és a dsPIC33128GP802 mikrovezérlők használatát feltételezi, és támogatja, de egy haladó felhasználó dönthet úgy, hogy más típusú (az 1. táblázatban nem szereplő) PIC24 mikrovezérlőt próbál ki a PIC-ador kártyában. Ebben az esetben a kibontott code_examples.zip állomány "hex" mappájában találhatók bootloaderek közül kell kiválasztani az adott mikrovezérlő típusnak megfelelőt, s azt kell beégetni. A Tankönyben szereplő PIC24HJ32GP202 mikrovezérlőhöz például a p24HJ32GP202_57600baud_bootldr.hex állomány tartozik. Az állomány nevében az 57600baud tag a soros kommunikáció adatsebességre (57600 bit/s) utal, ezt az adatsebességet kell majd beállítanunk a Bully Bootloader letöltőprogram használatakor.

Megjegyzés: Az 57600 bit/s-nál nagyobb adatsebességű átvitel nem bizos, hogy minden körülmények között működik, tehát ha biztosra akarunk menni, maradjunk az 57600 bit/s-os sebességnél.

A mintaprogramok futtatása a PIC-ador kártyán

A PIC-kwik projekt példaprogramjai a kibontott code_examples.zip állomány chap08 mappájától kezdődően futtathatók a PIC-ador kártyán (a korábbi fejezetek példaprogramjait szimulátorban futtasa!). A példaprogramok projekt állományait (.mcp kiterjesztésű) duplakattintással nyissa meg! Nyissa meg pl. a 8. fejezet echo.mcp projektjét!

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!

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

2. Adja hozzá a projekthez a kiválasztott mikrovezérlő MSU bootloaderhez való linker állományát, hogy ne az alapértelmezettet használja a fordító! A projekt ablakban a Linker Script feliratra jobb gombbal kattintva a felbukkanó menűben válassza ki az Add Files to Project menüpontot, s a felbukkanó ablakban keresse meg a kiválasztott mikrovezérlőhöz tartozó linker állományt! A linker scriptek a kibontott code_examples.zip állomány lib/lkr mappájában találhatók (az old mappában az MSU bootloader régebbi változatához való linker állományok vannak, ezeket ne használja a PIC-kwik projekt v0.6 vagy annál frissebb kiadásában található bootloaderhez!). Tallózza be a megfelelő állományt, és kattintson a Megnyitás gombra!

13. á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 PIC-ador 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.

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 PIC-ador kártyát a számítógéphez, majd indítsuk el a Bully Bootloader programot (bin/winbootldr.exe), válassza ki a PIC18 mikrovezérlő tesztelésekor már felismertetett USB eszközhöz tartozó virtuális soros portot (pl. COM10), állítson be 57600 bit/s adatsebességet (ennek értéke meg kell, hogy egyezzen a beégetett MSU bootloaderben beállított sebességgel), 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 PIC-ador 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.

Megjegyzés: Ha a kapcsolási- és beültetési rajzokon szaggatott vörös vonallal jelzett átkötést is beépítette, 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.