A mikrovezérlős áramköreim fejlesztését megkönnyítendő készítettem egy fejlesztőpanelt. Az elmúlt pár hónapban vásároltam jónéhány TFT kijelzőt abból a célból hogy találjak egy olyan típust amely a későbbi TFT-s érintőképernyős fejlesztéseimhez megfelel majd mind méretben, felbontásban, betekintési szögben, árban stb. Végül találtam két típust is, viszont szerettem volna ezekhez egy olyan fejlesztőpanelt amivel a kijelzős dolgokon felül nagyjából bármi megvalósítható legyen.
Táp:
A fejlesztőpanel a CS1 adaptercsatlakozón keresztül kapja meg a működéséhez szükséges DC tápfeszültséget. Ez 8V-tól egészen 55V-ig bármekkora egyenfeszültség lehet. Ebből az IC2 (MP2459) step-down konverter állít elő 5V-ot, ebből pedig az IC3 (MCP1825) a 3,3V-ot. A panelon szinte mindennek a 3,3V-os tápfeszültségre van szüksége, az 5V csak a mikroBUSTM csatlakozóknak illetve a karakteres LCD-kijelzőnek kell. Az R11-nek és az R12-nek az értéke rendkívül fontos, ezek állítják be ugyanis az 5V-ot. Ha ezekbe a pozíciókba véletlen más értékű ellenállásokat ültetünk, akkor a step-down akár jóval nagyobb feszültséget is előállíthat mint 5V.
Ez az esetlegesen csatlakoztatott LCD-kijelzőt és az 5V-ról működő mikroBUSTM-os clickTM modulokat tönkre teheti, ahogyan az IC3-at is amely a bemenetén maximum 6V-ot képes elviselni! Ha ennél több kerül a bemenetére akkor a 3,3V-os tápkörre kötött dolgok is, azaz minden tönkre fog menni, a PIC-et is beleértve! Ezért került bele a táp részbe a J1 forrjumper amely a step-down kimenetét leválasztja az egész áramkörről. Ez azért hasznos, mert így meggyőződhetünk róla hogy az MP2459 valóban 5V-ot állít-e elő és ha igen, akkor már nyugodtan összeforraszthatjuk a J1 jumpert. Az MP2459 és az MCP1825 is 500mA áram előállítására képesek, azaz legfeljebb ekkora fogyasztása lehet a panelen lévő dolgoknak és a csatlakoztatott moduloknak. Mivel az IC2 feszültség-áram átalakítást végez, ezért magasabb bemenő feszültségnél értelem-szerűen a betáp felől felvett áram csökken. Például 9V-ról maximum kb. 280mA-es, 12V-ról 210mA-es, 24V-ról 105mA-es, 48V-ról pedig kb. 50mA-es áramfelvétellel számolhatunk legfeljebb.
Mikrovezérlő:
A panel lelke egy száz lábú mikrovezérlő, mely a dsPIC33EP512MU810 névre egyáltalán nem hallgat. Ez egy elég drága PIC, jelen cikk írásakor bruttó 3300Ft. Azonban csak ennek a 16 bites típusnak van akkora számítási teljesítménye (70MIPS), programmemóriája (512kB), adatmemóriája (52kB) és olyan rendkívül gazdag perifériakészlete (4db UART, 4db SPI, 2db I2C, 16db CCP, 13db timer, 2db A/D, 2db QEI, 2db CAN, 15 ch. DMA...) amit szükségesnek tartottam ehhez a fejlesztőpanelhez. Szóba jöhetett volna még az egy ezressel olcsóbb dsPIC33EP512GP310, de annak jóval kevesebb RP-s lába van, így az nem tudná ellátni a feladatát ezen a panelon.
TFT:
A panelhoz két fajta TFT-t lehet csatlakoztatni, mindkettő a www.buydisplay.com terméke. Az egyik a 3,2 colos, 320x240 felbontású, ILI9341 vezérlőjű modul, a másik pedig a 3,5 colos, 480x320 felbontású, ILI9488 vezérlővel. Mindkét kijelző rendelhető touchpad nélkül, illetve rezisztív és kapacitív touchpaddal is. A fejlesztőpanel mindkét touchpad fogadására fel van készítve! Ezek a TFT modulok számos módban tudnak működni, a fejlesztőpanelen a 16 bites vezérlési módhoz valóan vannak bekötve. Ez a DB0-DB15 adatbiteken felül négy vezérlőlábból (WR, RS, RD és RST) áll, a TFT chip selectje (a csatlakozók 23-as pontja) fixen földre van kötve. Ezeken a buydisplay.com-os modulokon található egy microSD-kártya foglalat és rendelhetőek flash memória chippel és font chippel is. A fejlesztőpanelba ezek nem lettek bekötve mert teljesen feleslegesek. Egyedül a rezisztív érintőpanel vezérlőjének (XP2046) a CS és IRQ lábai vannak bekötve, persze az SPI három vezetékén felül. A TFT modulon lévő microSD-kártya foglalat azért is felesleges egyébként, mert a fejlesztőpanelra tettem egy sokkal jobb minőségű, kidobós típust. A TFT háttérvilágítása is be van kötve a fejlesztőpanelen úgyhogy ezzel is tudunk játszani. Ha kapacitív érintőpaneles TFT modult használunk, akkor annak az INT (megszakítás) lába külön van, az SCL és az SDA lábak viszont azonosak azokkal amelyek a rezisztív touchpadnak a CS és IRQ lábai. Mivel ugyebár az I2C nem PPS-elhető, ezért természetesen ez a két láb a mikrovezérlő I2C lábaira lett kötve. A panelon két darab 40 pólusú csatlakozó van melyhez a TFT kijelző kapcsolódhat: egy hüvelysor és egy FFC csatlakozó. Ugyanis a TFT modulokat is kétféle csatlakozóval szerelik, így a fejlesztőpanelhoz két módon is csatlakoztathatóak. A kijelző és a panel egymáshoz való rögzítését két távtartó szolgálja. A 3,2 colos és a 3,5 colos kijelzők furatai nem pont ugyan oda esnek, de a fejlesztőpanelon a távtartók furatai úgy lettek kialakítva hogy mindkét kijelző rögzíthető legyen.
A két TFT modul a buydisplay.com oldaláról is megrendelhető:
A 3,2 colos 320x240 felbontású: ER-TFTM032-3
A 3,5 colos 480x320 felbontású: ER-TFTM035-6
A buydisplay.com kijelzői egyébként nem csak a saját weboldalukról rendelhető meg, hanem az Ebay-en is fenn vannak. Sőt, a 3,2 colos verzió a Chipcadban is kapható!
LCD:
Lehetőség van sima 2x16 karakteres LCD csatlakoztatására is a CS3 csatlakozón. Az LCD nyolc adatbitje (DB0-DB7) és a három vezérlőlába (RS, RW, E) a TFT kijelző adatlábaiból van származtatva, hogy ne kelljen az LCD-hez több I/O lábat felhasználni. Természetesen egyszerre csak egy kijelző (vagy az LCD vagy a TFT) működtethető. Noha a karakteres LCD 5V-os, a mikrovezérlő 3,3V-os jelszintjeivel jellemzően az összes LCD modul működni tud. Az LCD mechanikai rögzítését is külön távtartók szolgálják a panelon. P1-el a kijelző kontrasztja állítható.
MikroBUS:
A szerb MikroElektronika cég (www.mikroe.com) kitalált egy szabványt amellyel a fejlesztőpanaleikhez különböző eszközök, perifériák univerzális módon csatlakoztathatóak. Ezt a csatlakozót microBUSTM-nak nevezték el, a csatlakoztatható kis modulokat pedig click boardTM-oknak. Ezekből több mint 250 féle típus kapható náluk, melyeket nálunk Magyarországon a Chipcad is forgalmaz. A mikroBUSTM csatlakozó gyakorlatilag két, egymástól meghatározott távolságban lévő 8-8 pólusú hüvelysor, melyre a tápfeszültségek, SPI, I2C, UART kommunikációs lábak, egy analóg és egy PWM láb, plusz egy CS, egy reset és egy megszakítás láb vannak odavezetve. Ezzel gyakorlatilag szinte minden le van fedve amire szükségünk lehet. A fejlesztőpanelon három ilyen mikroBUSTM csatlakozó is helyet kapott, ráadásul ezeknél csak az I2C közös, az SPI és az UART a PIC teljesen külön lábaira kapcsolódik. A mikrovezérlőben 4db SPI és 4db UART van, ezeket oda PPS-eljük ahová csak akarjuk.
WIFI modul:
Helyet kapott a fejlesztőpanelon az igen közkedvelt ESP8266-os WIFI modul, egész pontosan az ESP-12E típus melynek saját antennája van így nem kell külön antennát használnunk. Egy három pólusú tüskesorra kivezettem a modul TX és RX lábait (és a GND-t), melyekre egy USB/soros átalakítóval rácsatlakozhatunk a fejlesztés során, így láthatjuk a PIC és a WIFI modul kommunikációját és rá is tudunk "beszélni". Ezek az USB/soros átalakítók 5V-osak, viszont a fejlesztőpanelon a PIC és a WIFI modul is 3,3V-ról jár. Azonban ez nem okoz gondot mivel az ESP8266 alapból tolerálja az 5V-ot a lábain, a PIC-nek pedig direkt azokra a lábaira huzaloztam a WIFI modult amelyek bírják az 5V-ot.
MicroSD-kártya:
Került a panelra egy kidobós (rugós) microSD-kártya foglalat amire nagyon sok esetben szükség lehet. A foglalat a Chipcadben kapható MMT012 cikkszámon. Az SD-kártya chip select lába szándékosan nincs bekötve a PIC-be, mivel az SD-kártya SPI-ját külön behuzaloztam a PIC-be.
Egyebek:
Minden mikrovezérlős áramkör szinte elengedhetetlen eleme egy életjel-LED, ez a panelon a LED17. Sajnos azonban ezt a LED-et a PIC-nek egy olyan lábára kötöttem amely csak bemenet lehet, szóval ez a LED nem fog működni. Mellette egy nyomógomb (S1) is van ami közvetlen a mikrovezérlő egy lábára van kötve. Az ő felhúzóellenállásáról a PIC-en belül kell gondoskodnunk (CNPUFbits.CNPUF8=1). A nyomtatott áramkört 10x10cm-esre terveztem, így hatalmas üres terek maradtak még a panelon. Kitöltöttem hát olyan dolgokkal amik épp eszembe jutottak: került a panelra egy kis piezo hangszóró, egy rotációs enkóder (melynek felhúzó ellenállásairól a PIC-en belül kell gondoskodnunk), illetve egy marék nyomógomb és LED. A 8db nyomógomb állapota egy 74HC165 típusú shift-regiszter segítségével olvasható be. A 16db LED pedig két, egymás után felfűzött 74HC595 típusú shift-regiszterrel vezérelhető. Ennek a két shift-regiszternek az elektronikában nagyon sok helyen hasznát vehetjük ahol kevés lábbal sok kimenetet vagy bemenetet szeretnénk kezelni.
Az áramkör megépítése:
A nyáklap házilag, furatgalvanizálás nélkül nem készíthető el, ezért nyáktervet nem is mellékelek a kapcsoláshoz. Ha valaki meg szeretné építeni ezt a fejlesztőpanelt, akkor hozzá a gyártatott nyáklapot tőlem tudja megvásárolni.
A Chipcadben tudjuk megvenni a mikrovezérlőt, a microSD-kártya foglalatot (MMT012), a step-down konvertert, a stabkockát és az FFC csatlakozót (BUY029). A step-down 47uH/0,6A-es SS0406 tokos tekercse a Lomexben kapható 93-03-19 cikkszámon. A 10µF/50V-os 1210 tokos kondit (82-08-69) és a rotációs enkódert (56-04-12) ugyan itt tudjuk megvenni. Az összes többi alkatrész kapható a HEStore-ban, ide össze is állítottam egy kosár-fájlt amely megkönnyíti az alkatrész-beszerzést.
Legelőször a PIC-et forrasszuk be a helyére! Ennek az az egyszerű oka, hogy így biztosan nem lesz útban semmi a pákának a beültetéskor. Nem kell félni a 100 lábtól meg hogy ezek milyen közel vannak egymáshoz. Folyasztószerrel pillanatok alatt beforrasztható a PIC. Ez után jöhet a microSD-kártya foglalat majd a többi felületszerelt alkatrész a panel ugyan ezen oldalán. Figyeljünk oda a két 100uF-os tantál kondenzátor polaritására! Fordítsuk meg a panelt és forrasszuk be méret szerint növekvő sorrendben az alkatrészeket. Itt is ügyeljünk a két tantál és a két dióda irányára! A J1 jumpert még ne forrasszuk össze! Most már jöhetnek a furatszerelt alkatrészek, szintén magasság szerinti sorrendben. Végül a távtartókat szereljük fel. A TFT kijelző távtartóinak a furatai oválisak azért, mert a 3,2 colos és a 3,5 colos TFT modul rögzítőfuratai nem pontosan ugyan ott vannak. Ha meg van már a kijelzőnk akkor erre figyeljönk oda. A beültetést segíti ez a két kép:
Ha készen vagyunk a beültetéssel akkor adjunk tápfeszültséget (8V-50V közt) az áramkörnek és mérjünk rá a C7 kondenzátorra hogy 5V van-e rajta! Ha ez rendben van, akkor összefolyathatjuk ónnal a J1 jumper két felét, így feszültség alá kerül a teljes áramkör.
Pár kép az elkészült áramkörről: