PIID0B In ircuit Debugger pro procesory PI Milan Horkel Modul PIID je jednoduchý programátor a ID pro procesory PI firmy MIROHIP. Modul je kompatibilní s MPLB ID firmy MIROHIP a je jej také možno použít s překladačem PW firmy S. Umožňuje programování zapájených procesorů PI, krokování programů, nastavování BreakPointu a čtení a zápis z a do vnitřních pamětí laděného procesoru PI.. Technické údaje Parametr Hodnota Poznámka Napájení.0 až 5.5V Napájí se z cílového systému Spotřeba Max. cca50m Interface RS (900Bd až 500Bd) Kabel : DB9 (prodlužovací) Kompatibilita MPLB ID MPLB 5.x (řada PIF) S PW.x (řada PIF a PIF) Rozměry 5x50x0mm Výška nad nosnou deskou PIID0B.doc / 005-- / miho / http://www.mlab.cz /
PIID0B. Popis konstrukce.. Úvodem Konstrukce modulu přímo vychází z MPLB ID firmy MIROHIP tak, jak je popsán v dokumentu DS54 a s dodatkem v dokumentu ETN#. Podle informací nalezených na WWW má původní konstrukce potíže s generováním programovacího napětí, proto byla tato část modifikována tak, aby bylo zajištěno správné programovací napětí v plném rozmezí dovolených napájecích napětí modulu... Zapojení modulu Modul ID je napájen z cílového systému (prostřednictvím ISP konektoru). Napájecí napětí může být v rozsahu V až 5V. Pokud nemá cílové zařízení vlastní zdroj, je možné napájení přivádět prostřednictvím konektoru J4. Programovací napětí (cca..7v) si ID vyrábí sám pomocí měniče. Základem ID je procesor U PILF7, který komunikuje s počítačem P prostřednictvím sériové linky a řídí obvody pro programování procesorů prostřednictvím ISP konektoru. Samotný procesor se poprvé programuje prostřednictvím jeho ISP konektoru J, další přeprogramování si již procesor provádí sám. Může se ale stát, že uživatel nahraje do procesoru nesprávný firmware a pak je třeba použít opět vnějšího programátoru na přeprogramování. R0 R R R R5 R0 R R R TEST VPP TEST PG IN VREF IN PGD IN PGM OUT VPP ON VPP GEN PG OUT R K U MLR#/VPP PI PGD/RB7 7 R0/N0 PG/RB 4 R/N RB5 5 5 R/N/VREF- RB4 4 R/N/VREF+ PGM/RB 7 R4/T0KI RB R5/N4/SS# RB 9 INT/RB0 0 0 OS/LKIN 9 OS/LKOUT R0/TOSO/TKI DT/RX/R7 7 R/TOSI/P K/TX/R 4 R/P SDO/R5 5 R/SK/SL SD/SDI/R4 PILF7-04/SO 00nF TS RTS LED PGM OUT RESET PGD OUT RB5 RB4 RB RB RX TX R5 R4 MLR X.4MHz B pf pf ID PROESSOR R 00 R 00 R4 00 5 J PG PGD MLR#/VPP PGM PI_ISP_ID PI_ISP_ID PIID0B.doc / 005-- / miho / http://www.mlab.cz /
PIID0B Komunikace s počítačem P zajišťuje obvod U MX, který převádí napěťové úrovně mezi TTL a RS. Pokud se provozuje ID s napájecím napětím menším než asi 4V je třeba ověřit maximální komunikační rychlost, která ještě bude správně pracovat. Za příznivých podmínek může fungovat rychlost 500Bd i při napájecím napětí V. 4 00nF 5 00nF 00nF RB5 TX RX RB4 U + M+ 4 5 0 9 + - - TIN TIN ROUT ROUT V 5 M- TOUT TOUT RIN RIN 4 7 MXSMD 7 00nF 00nF R5 00 R 00 R7 00 R 00 REQUIRES RS BLE : DB9F-DB9M 7 4 9 5 J DB9F_90 0 MLR RS INTERFE D N44SMD R9 k D N44SMD ílové zařízení se připojuje prostřednictvím ISP konektoru J. Pokud se použije funkce monitoru použije se i vývod označený PGM, jinak může zůstat volný. ID je obvykle napájen z cílového systému prostřednictvím programovacího konektoru. Zenerova dioda D0 je ochrana před přepětím a přepólováním. Zelená LED dioda D slouží současně jako indikační a jako zdroj referenčního napětí pro hrubé měření napájecího napětí. Přesnost je pochybná ale programové vybavení s tímto řešením počítá. Zdroj programovacího napětí získává napětí v měniči s tranzistorem Q, který je řízen z PWM výstupu procesoru U. Obvod měniče byl modifikován tak, aby poskytoval stabilní napětí +V na vstupu stabilizátoru U v plném rozmezí napájení ID. Byla zmenšena indukčnost cívky L čímž byl zvýšen výkon měniče. Byla doplněna zpětná vazba Zenerovou diodou D4/D mezi kolektor a bázi tranzistoru, tím je omezeno generované napětí měniče právě na +V. Dále byla změněna vazba báze tranzistoru Q s procesorem na střídavou vazbu aby nemohlo dojít k fatálnímu stavu zaseknutí procesoru U v okamžiku, kdy je na PWM výstupu stav H (pak by byl Q sepnutý a zkratoval by napájení a procesor by nebyl schopen provést RESET a mohl by Q nebo L shořet). Za měničem následuje standardní lineární stabilizátor s U podepřený diodou D7 tak, aby výsledné napětí za stabilizátorem bylo cca. +.7V. PIID0B.doc / 005-- / miho / http://www.mlab.cz /
PIID0B RB R0 R R R5 R4 VPP R7 0k R 0 R9 0k R0 0 R 0k R 0 TRGET ISP J4 4 5 5 J JUMPX 4 47uF/5V PG PGD MLR#/VPP PGM PI_ISP_ID PI_ISP_ID D0 BZV555.SMD RB R 00 R 0 R D LEDmm VREF SOURE 0 00nF L 00uH R 9 00nF R0 k R 0k D4 N44SMD D BZV55SMD B D5 BT4SMD E D N44SMD Q B7-5SMD +V 47uF/5V U LM7LM_SO IN OUT 00nF 7 D7 N44SMD 00nF +V POWER SOURE Posledním obvodem je obvod pro spínání programovacího napětí a aktivaci signálu RESET. Tranzistory Q a Q spínají VPP (cca. +.7V) a tranzistor Q4 aktivuje RESET. Odpory R a R jsou ochranné, odpor R a dioda D9 zajišťují stav H na vývodu #MLR cílového systému. Odporový dělič R/R4 slouží k měření (kontrole) velikost napětí VPP. Odporový dělič R5/R slouží k měření napájecího napětí. PIID0B.doc / 005-- / miho / http://www.mlab.cz 4 /
PIID0B D9 N44SMD Q B07-5SMD E R B +V R 4k7 VPP R7 0k R 0k R 00 R4 0k R 0k R R R4 0k B R5 0k E Q B7-5SMD R5 R9 0k B R0 0k E Q4 B7-5SMD R k R5 4k7 R0 VPP SWITH RESET SWITH TEST VOLTGE.. Mechanická konstrukce Modul je proveden standardním způsobem. V rozích má šrouby a sloupky pro připevnění na nosnou desku. PIID0B.doc / 005-- / miho / http://www.mlab.cz 5 /
PIID0B. Osazení a oživení.. Osazení Zkontrolujte zejména orientaci U. Odpory SMD R R, R, R4, R5, R, R7, R, R, R R, R, R0, R 00 0 R9, R0, R k R, R5 4k7 R, R4,R5, R, R7, R9, R0, R4, R, R7, R9, R R 0k K Kondenzátory keramické SMD, pf, 4, 5,, 7,, 9, 0,, 00nF Kondenzátory elektrolytické drátové, 4 47uF/5V Tlumivky axiální L 0uH Krystaly X.4MHz PIID0B.doc / 005-- / miho / http://www.mlab.cz /
PIID0B Diody SMD D, D, D4, D, D7, D9 D5 D0 D N44SMD BT4SMD BZV555.SMD BZV55SMD Diody LED D LEDmm zelená Tranzistory SMD Q, Q, Q4 B7-5SMD Q B07-5SMD Integrované obvody U U U PILF7-04/SO MXSMD LM7LM_SO Mechanické součástky J RSDB9M J, J JUMP J4 JUMP x PIID0B.doc / 005-- / miho / http://www.mlab.cz 7 /
PIID0B.. Oživení Do procesoru U je třeba naprogramovat firmware. Vhodnými kandidáty jsou firmwary jednak firmy MIROHIP (z balíku MPLB verze 5.x) a dále firmwary firmy S (z balíku překladače PW nebo IS). Je třeba dát pozor na to, který firmware použít. Tento hardware je kompatibilní s ID firmy MIROHIP a má procesor PILF7 a krystal.4mhz. Kabel RS je zapojen : (tedy odpovídající si piny jsou spojeny, jedná se o prodlužovací kabel). Zařízení je také možno připojit přímo na USB-RS adaptér.... Oživení pro MPLB firmy MIROHIP Do procesoru U se externím programátorem naprogramuje firmware ze souboru MPL7.HEX z instalačního adresáře balíku MIROHIP MPLB verze 5.x. Firmware umožňuje komunikaci jen rychlostí 900Bd a 5700Bd. Pokud je v ID firmware pro PW může se též použít program ID do firmy S (není pak potřeba použít externí programátor).... Oživení pro PW firmy S Nejsnazší je naprogramovat do U externím programátorem zavaděč, který se nachází v instalačním adresáři překladače PW (stačí i demoverze) v souboru BOOLOD.HEX. Pak je již ID funkční a při prvním použití v programu PW nám program nabídne provedení aktualizace firmwaru. K aktualizaci již není potřeba externí programátor. Místo zavaděče může být naprogramován i firmware pro MPLB. Pokud nám program PW nenabídne aktualizaci firmwaru, lze aktualizaci provést také samostatným programem pro ovládání ID, který se jmenuje ID a lze jej volně stáhnout ze stránek firmy S. Při aktualizaci firmwaru vybereme variantu MIROHIP MPLB ID a variantu firmwaru pro programování požadované řady procesorů PI (PIF a PIF mají samostatné varianty firmwaru). V případě potřeby je možné nahrát do ID firmware pro MPLB ID (soubor MPL7.HEX z instalačního adresáře balíku MPLB verze 5.x). Pokud do ID nahrajeme chybnou verzi firmwaru (například firmware pro jinou frekvenci krystalu) nezbývá než opět použít externí programátor a přehrát firmware U z vnějšku. PIID0B.doc / 005-- / miho / http://www.mlab.cz /
PIID0B Po výměně krystalu je možné použít i firmware pro kmitočet 0MHz ale pak ID nebude pracovat při sníženém napájecím napětí. V takovém případě nahráváme firmware pro ID-S pro 0MHz a ID nebude možné použít s programem MPLB.... Kontrola Po naprogramování firmwaru je vhodné zkontrolovat funkčnost ID s reálným procesorem a zkusit krokovat jednoduchou aplikaci v cílovém procesoru. V programu MPLB je vhodné rovněž zkontrolovat, zda ID správně reportuje velikost napájecího a programovacího napětí. Závěrem je vhodné zkontrolovat, zda měnič vyrábí správné programovací napětí. Kontroluje se napětí na vodiči +V zda má +V (vývod stabilizátoru U). Toto napětí se negeneruje trvale ale generuje se například během programování. PIID0B.doc / 005-- / miho / http://www.mlab.cz 9 /
PIID0B 4. Programové vybavení Programové vybavení za nás napsaly firmy MIROHIP a S. 4.. Balík MPLB firmy MIROHIP http://www.microchip.com Firma MIROHIP dodává ucelený programový balík MPLB pro práci s procesory PI. Jedná se o integrované prostředí, překladač assembleru, simulátor procesorů PI a ovládání několika druhů programátorů a HW debuggerů. Zde popisovaný ID je podporovaný pouze ve starší verzi MPLB 5.x. MPLB je zdarma ke stažení ze stránek výrobce a z mnoha dalších míst. by ID fungoval s programem MPLB musí do něho být nahrán firmware pro MPLB, který je v souboru MPL7.HEX. 4.. Balík PW firmy S http://www.ccsinfo.com Firma S dodává komerční balík PW, který obsahuje překladač jazyka pro procesory PI, integrované prostředí (Windows nebo Linux) a přímo podporuje ladění programů prostřednictvím několika druhů ID. Od balíku PW je možné si stáhnout demoverzi na vyzkoušení, která je zdarma a podporuje jen několik procesorů PI s omezením délky přeloženého programu. Jinak je demoverze plně funkční a funguje v ní i práce s ID. Poměr cena/výkon ostré verze překladače je velmi příznivá, protože tvůrci prostředí odvedli velký kus práce zejména na podprogramech pro ovládání periferií procesorů PI. Kvalita generovaného kódu není sice oslnivá (překladač samotný stojí cca 00$) ale využití paměti RM je vynikající. To co by se programovalo v assembleru hodiny se zde programuje minuty až desítky minut. Kromě integrovaného prostředí je možné ještě stáhnout program ID, který slouží pouze pro ovládání ID a jeho aktualizaci (výměna firmwaru, test komunikace a podobně). Hardwarová podpora ID procesorů PIF je popsána v dokumentu MIROHIP DS54. U starších procesorů bez této podpory lze ID použít pouze pro programování jejich obsahu ale ne pro krokování běhu programu. Podpora ID je k dispozici u všech novějších procesorů PI. HW podpora ID zahrnuje hardware, který umožňuje provádět tyto ladící zásahy: Krokovat program po instrukcích Spustit program s nastavenou jednou zarážkou (BreakPoint registr je jen ) Zastavit běžící program Vše ostatní již zajišťuje kousek programu, který se musí přidat k cílové aplikaci (zabere pár buněk paměti RM, řádově dvě stovky instrukcí a jednu úroveň zásobníku). Přidání tohoto obslužného programu do aplikace zajišťuje překladač sám jakmile zvolíme ladění pomocí ID. Na první adrese programu musí být instrukce NOP. PIID0B.doc / 005-- / miho / http://www.mlab.cz 0 /
PIID0B by ID fungoval, musí v něm být nahraný firmware. Ovládací programy firmy S dovedou komunikovat jak s původním firmwarem pro MPLB firmy MIROHIP tak i s firmwary pro PW firmy S. Pokud program zjistí, že firmware není správný (různé řady cílových procesorů vyžadují různé firmwary v ID) provede jeho aktualizaci. PIID0B.doc / 005-- / miho / http://www.mlab.cz /