16 bites PIC fejlesztőpanel V2

    Az áramkör elődjét mindössze két nap alatt terveztem meg és küldtem el gyártatásba. Volt ugyanis egy nyákgyártó cég amely Karácsony alkalmából konkrétan ingyen gyártotta le nekem az első panelokat hozzá. Azonban azt nem tudtam hogy ez a lehetőség meddig áll fenn náluk, ezért amint elkészültem a panellel már ment is gyártatásba. Így nem volt időm alaposabban átgondolni a konstrukciót. Ezt immár a második verzióval megtettem. Az áramkör lényegében szinte teljesen azonos az előzővel, néhány kisebb módosítást eszközöltem csupán.

    A módosítások egész pontosan a következőek:

    Az ICSP programozó csatlakozó átkerült a panel másik oldalára. A gyakorlatban nagyon kényelmetlen volt hogy a tápcsati a panel egyik, a PICkit3 pedig a másik oldalából lóg ki. Így már sokkal kényelmesebben elfér a fejlesztőpanel az asztalon.

    • Az adapter mellett mostmár a panel microUSB csatlakozón keresztül is táplálható.
    • A step-down konvertert kicseréltem egy jobb, kétszer akkora áramot áramot tudó típusra (MCP16331).
    • A step-down konverter nyákterve SMPS szempontból lényegesen jobb lett.
    • A step-down kimenetén a 100uF helyett már 1000uF a puffer.
    • A mikroBUSTM csatlakozók 3,3V-os és 5V-os táplábaihoz került 1-1db 100uF-os puffer.
    • A TFT kijelzőre jutó tápfesz jumperral változtatható (3,3V/5V).
    • A TFT 40 pólusú csatlakozóinak (CS4 és CS5) a lábai a pozíciószitán feliratozva lettek.
    • A rotációs enkóder tokozása hibás volt, az enkóder két fülének kimarása a panelon túl közel volt egymáshoz. Bele lehetett erőszakolni, de mostmár jó helyen vannak.
    • A rotációs enkóder szűrése sajnos az előző verzióban kimaradt, mostmár 1-1db 10pF van a panelon, illetve 1-1db felhúzóellenállás is bekerült mert a PIC belső felhúzóellenállásainak impedanciája túl nagynak bizonyolt ehhez.
    • A mikroBUS csatlakozó tokozása hibás volt, a panel alsó oldalán az "SDA" felirat helyett "ADA" szerepelt, javítva.
    • Az előző verzióban sajnos a LED17 a mikrovezérlőnek egy olyan lábára volt kötve amely csak bemenetként tud működni, így abban soha nem világíthatott. Ezt itt már javítottam, másik lábra került a LED17.
    • A mikroBUS csatlakozók I2C lábaira került 1-1db felhúzóellenállás, ha esetleg a PIC-en belüli nem lenne megfelelő.
    • A kapacitív touchpados TFT használata esetén I2C-ként működtetendő lábakra került 1-1db felhúzóellenállás, ha esetleg a PIC-en belüli nem lenne megfelelő. Ez egy jumperral (CS9) kiválasztható.
    • Az előző verzióban a LED1-LED16 LED-ek a shift regiszterek kimeneteire nem pontosan sorban voltak rákötve, 2-2 LED meg volt cserélve. Mostmár sorban vannak.
    • A 16db felületszerelt LED előtét-ellenállásai túl kicsik (1k) voltak, a HEStore-os kosárfájlban szereplő fehér LED-ekkel így óriási fényerejük volt. Itt 3,3k-sak az ellenállások, a LED-ek fényere így már elviselhető.
    • Az előző verziónál a WIFI modul RX-TX lábainál szándékosan nem voltak osztók azért, mert az ESP8266 lábai az adatlapja szerint tolerálják az 5V-ot. Időközben azonban az adatlapból kivette a gyártó ezt az állítást! Másnak is feltűnt a dolog, ITT elég alaposan ki van vesézve a téma. Bár eddig nálam is bírták az 5V-ot az ESP-k, hogy mindenki megnyugodjon mostmár tettem osztókat a WIFI modulhoz.
    • Esztétikai módosítások: A WIFI modul RX-TX lábai kis nyilacskákkal jelölve lettek, új és nagyobb logók kerültek a panelra, a VIA-k és furataik kisebbek lettek, a panel neve rá van írva a nyákra stb.

    Táp:

    A fejlesztőpanel táplálható egyrészt a microUSB csatlakozón például bármilyen mobiltelefon-töltőről. Illetve a CS1 adaptercsatlakozón keresztül is táplálhatjuk, 8V-tól egészen 50V-ig bármekkora egyenfeszültséggel. A két tápforrás közt a J2 jumperral választhatunk. MicroUSB esetén az 5V ugyebár eleve adott, ekkor csak a 3,3V-os LDO (IC3) működik. Adapteres tápláláskor előbb az IC2 (MCP16331) step-down konverter állítja elő az 5V-ot. A fejlesztőpanel előző verziójában az IC2 pozícióban MP2459 szolgált, az MCP16331 viszont kétszer akkora kimenő áramot (1A) képes előállítani, ezért került az MP2459 lecserélésre. A két step-down konverter azonban lábkompatibilis egymással, szóval akár itt is használható az MP2459. Ebben az esetben szükség van az R9 és R10 beültetésére is ezért ezek helyét meghagytam a panelon. MCP16331 használata esetén azonban ezeket nem kell beültetnünk!

    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 MCP16331 valóban 5V-ot állít-e elő és ha igen, akkor már nyugodtan összeforraszthatjuk a J1 jumpert. Az MCP16331 1A, az MCP1825 pedig 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. 560mA-es, 12V-ról 420mA-es, 24V-ról 210mA-es, 48V-ról pedig kb. 100mA-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.3.5 inch tft lcd module display with resistive touch panel screen 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ó.

    MikroBUSTM:

    mikrobus click boards

    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 mikroBUSTM-nak nevezték el, a csatlakoztatható kis modulokat pedig click boardTM-oknak. Ezekből több mint 350 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. Elvileg ez nem jelenthet gondot mert az ESP8266 korábbi adatlapjában szerepelt hogy a lábai 5V toleránsak, a gyártó azonban azóta kivette ezt az állítást az adatlapból! Másnak is feltűnt a dolog, ITT elég alaposan ki van vesézve a téma. Biztos ami biztos két ellenállás-osztó biztosítja hogy a WIFI modul lábaira (és a PIC-ére, bár az tényleg 5V toleráns) ne kerülhessen 5V.

    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.

    Egyebek:

    Minden mikrovezérlős áramkör szinte elengedhetetlen eleme egy életjel-LED, ez a panelon a LED17. Mellette egy nyomógomb (S1) is van ami közvetlen a mikrovezérlő egy lábára van kötve. 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, 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. A fejlesztés során itt a 16db LED kiváló diagnosztikai célokat szolgálhat, ahogyan a 8db nyomógomb is nagy hasznunkra lehet beviteli perifériaként.

    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 22uH/0,9A-es SS0406 tokos tekercse a Lomexben kapható 93-03-20 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. Szinte 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. A HEStore-ban csak a következő alkatrszek hiányoznak (a fentieken felül): 6,2k 1% 0805 ellenállás (1db), 470uF/6,3V furatszerelt elkó RM2.5-6 (1db) és 1000uF/6,3V furatszerelt elkó RM3.5-8 (1db). Ha esetleg a microUSB csatlakozó a HEStore-ban (1003.6834 cikkszámon) nem lenne készleten akkor meg tudjuk venni a Lomexben is, ott 43-23-37 cikkszámon elérhető.

    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 100uF-os tantál kondenzátorok 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 tantál kondik é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:

    beultetes felso oldal kicsi

    beultetes also oldal kicsi

    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:

     

    A feszlesztést megkönnyítendő, az alábbi képen megjelöltem a mikroBUSTM csatlakozók és a kijelzők csatlakozóinak pontjait, hogy azok a mikrovezérlő melyik lábaira kötnek:


    Please publish modules in offcanvas position.