<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title> PICICD01A </title><meta name="keywords" content="stavebnice MLAB in circuit debugger icd debugger MICROCHIP PIC"><meta name="description" content="Projekt MLAB, ICD Debugger pro proceosry PIC"><!-- AUTOINCLUDE START "Page/Head.cs.ihtml" DO NOT REMOVE --><link rel="StyleSheet" href="../../../../../Web/CSS/MLAB.css" type="text/css" title="MLAB základní styl"><link rel="StyleSheet" href="../../../../../Web/CSS/MLAB_Print.css" type="text/css" media="print"><link rel="shortcut icon" type="image/x-icon" href="../../../../../Web/PIC/MLAB.ico"><script type="text/javascript" src="../../../../../Web/JS/MLAB_Menu.js"></script><!-- AUTOINCLUDE END --></head><body lang="cs"><!-- AUTOINCLUDE START "Page/Header.cs.ihtml" DO NOT REMOVE --><!-- ============== HLAVICKA ============== --><div class="Header"><script type="text/javascript"><!--SetRelativePath("../../../../../");DrawHeader();// --></script><noscript><p><b> Pro zobrazení (vložení) hlavičky je potřeba JavaScript </b></p></noscript></div><!-- AUTOINCLUDE END --><!-- AUTOINCLUDE START "Page/Menu.cs.ihtml" DO NOT REMOVE --><!-- ============== MENU ============== --><div class="Menu"><script type="text/javascript"><!--SetRelativePath("../../../../../");DrawMenu();// --></script><noscript><p><b> Pro zobrazení (vložení) menu je potřeba JavaScript </b></p></noscript></div><!-- AUTOINCLUDE END --><!-- ============== TEXT ============== --><div class="Text"><p class="Title"><span lang="en">In Circuit Debugger</span> pro procesory PIC</p><p class=Autor>Milan Horkel</p><p class="Subtitle">Modul PICICD je jednoduchý programátor a ICD pro procesory PIC firmyMICROCHIP. Modul je kompatibilní s MPLAB™ ICD firmy MICROCHIP a je jejtaké možno použít s překladačem PCW firmy CCS. Umožňuje programovánízapájených procesorů PIC, krokování programů, nastavování BreakPointu ačtení a zápis z a do vnitřních pamětí laděného procesoru PIC.</p><p class="Subtitle"><img width="393" height="307" src="Pictures/image001.jpg"alt="Pohled na debugger"></p><p><a href="../PICICD01A.cs.pdf"><img class="NoBorder"src="../../../../../Web/PIC/FileIco_PDF.ico"alt="Acrobat"> PDF verze</a></p><h1> Technické údaje </h1><table><tr><th> Parametr </th><th> Hodnota </th><th> Poznámka </th></tr><tr><td> Napájení </td><td> 2.0 až 5.5V </td><td> Napájí se z cílového systému </td></tr><tr><td> Spotřeba </td><td> Max. cca50mA </td><td> </td></tr><tr><td> Interface </td><td> RS232 (9600Bd až 115200Bd) </td><td> Kabel 1:1 samice DB9 </td></tr><tr><td> Kompatibilita </td><td> MPLAB™ ICD </td><td> MPLAB 5.x (řada PIC16F)<br>CCS PCW 3.x (řada PIC16F a PIC18F) </td></tr><tr><td> Rozměry </td><td> 65x50x20mm </td><td> Výška nad nosnou deskou </td></tr></table><h1> Popis konstrukce </h1><h2> Úvodem </h2><p>Konstrukce modulu přímo vychází z MPLAB™ ICD firmy MICROCHIP tak, jakje popsán v dokumentu DS51184 a s dodatkem v dokumentu ETN#21. Podleinformací nalezených na WWW má původní konstrukce potíže s generovánímprogramovacího napětí, proto byla tato část poněkud modifikována tak,aby bylo zajištěno správné programovací napětí v plném rozmezídovolených napájecích napětí.</p><h2> Zapojení modulu </h2><p>Modul ICD je napájen z cílového systému (prostřednictvím ISPkonektoru). Napájecí napětí může být v rozsahu 2V až 5V. Programovacínapětí si ICD vyrábí sám pomocí měniče.</p><p>Základem ICD je procesor U1 PIC16LF876, který komunikuje s počítačem PCprostřednictvím sériové linky a řídí obvody pro programování procesorůprostřednictvím ISP konektoru. Samotný procesor se poprvé programujeprostřednictvím jeho ISP konektoru J3, další přeprogramování si jižprocesor provádí sám. Může se ale stát, že si uživatel nahraje doprocesoru nesprávný firmware a pak je třeba použít opět vnějšíhoprogramátoru na naprogramování.</p><p><img width="560" height="440" src="Pictures/image002.gif"alt="Zapojení procesorové části"></p><p>Komunikace s počítačem PC zajišťuje obvod U2 MAX232, který převádínapěťové úrovně mezi TTL a RS232. Pokud se provozuje ICD s napájecímnapě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ínekmůže fungovat rychlost 115200Bd i při napájecím napětí 2V.</p><p><img width="458" height="435" src="Pictures/image003.gif"alt="Zapojení převodníku pro RS232"></p><p>Cílové zařízení se připojuje prostřednictvím ISP konektoru J2. Pokud sepoužije funkce monitoru použije se i vývod označený PGM, jinak můžezůstat volný. ICD je z cílového systému napájen. Zenerova dioda D10 jeochrana před přepětím a přepólováním.</p><p>LED dioda D8 slouží současně jako indikační a jako zdroj referenčníhonapětí pro hrubé měření napájecího napětí. Přesnost je pochybná aleprogramové vybavení s tímto řešením počítá.</p><p>Zdroj programovacího napětí získává napětí v měniči s tranzistorem Q1,který je řízen z PWM výstupu procesoru U1. Obvod měniče byl<i>modifikován</i> tak, aby poskytoval stabilní napětí +16V v plnémrozmezí napájení ICD. Byla zmenšena indukčnost cívky L1 čímž byl zvýšenvýkon měniče. Byla doplněna zpětná vazba Zenerovou diodou D4/D3 mezikolektor a bázi tranzistoru, tím je omezeno generované napětí měničeprávě na +16V. <i>Dále byla změněna vazba báze tranzistoru Q1 sprocesorem na střídavou vazbu aby nemohlo dojít k fatálnímu stavuzaseknutí procesoru U1 v okamžiku, kdy je na PWM výstupu stav H (pak bybyl Q1 sepnutý a zkratoval by napájení a procesor by nebyl schopenprovést RESET a mohl by Q1 nebo L1 shořet).</i></p><p>Za měničem následuje standardní lineární stabilizátor s U3 podepřenýdiodou D7 tak, aby výsledné napětí za stabilizátorem bylo cca. +12.7V.</p><p><img width="378" height="330" src="Pictures/image004.gif"alt="Zapojení ISP konektoru"><img width="188" height="216" src="Pictures/image005.gif"alt="Zapojení zdroje referene"><img width="622" height="276" src="Pictures/image006.gif"alt="Zapojení zdroje Vpp"></p><p>Posledním obvodem je obvod pro spínání programovacího napětí a aktivacisignálu RESET. Tranzistory Q2 a Q3 spínají VPP (cca. +12.7V) atranzistor Q4 aktivuje RESET. Odpory R18 a R21 jsou ochranné, odpor R22a dioda D9 zajišťují stav H na vývodu #MCLR cílového systému.</p><p>Odporový dělič R23/R24 slouží k měření (kontrole) velikost napětí VPP.</p><p>Odporový dělič R25/R26 slouží k měření napájecího napětí.</p><p><img width="608" height="406" src="Pictures/image007.gif"alt="Schéma spínače Vpp"></p><h2> Mechanická konstrukce </h2><p>Modul je proveden standardním způsobem. V rozích má šrouby a sloupkypro připevnění na nosnou desku.</p><h1> Osazení a oživení </h1><h2> Osazení </h2><p><img width="386" height="321" src="Pictures/image008.jpg"alt="Osazení, strana spojů"><img width="407" height="307" src="Pictures/image009.jpg"alt="Osazení, strana součástek"></p><p>Dioda D5 byla do zapojení přidána dodatečně a nejsou pro ni plošky naplošném spoji. Snadno se vejde vedle R11.</p><table class="Soupiska"><tr><th> Reference </th><th> Hodnota </th></tr><tr><th colspan="2"> Odpory SMD </th></tr><tr><td> R18 </td><td> 33 </td></tr><tr><td> R2, R3, R4, R5, R6, R7, R8, R12, R21 </td><td> 100 </td></tr><tr><td> R13, R28, R30, R32 </td><td> 330 </td></tr><tr><td> R9, R10, R23 </td><td> 1k </td></tr><tr><td> R22, R25 </td><td> 4k7 </td></tr><tr><td> R11, R14,R15, R16, R17, R19, R20, R24, R26, R27, R29, R31 </td><td> 10k </td></tr><tr><td> R1 </td><td> 22K </td></tr><tr><th colspan="2"> Kondenzátory keramické SMD </th></tr><tr><td> C2, C3 </td><td> 22pF </td></tr><tr><td> C1, C4, C5, C6, C7, C8, C9, C10, C12, C13 </td><td> 100nF </td></tr><tr><th colspan="2"> Kondenzátory elektrolytické drátové </th></tr><tr><td> C11, C14 </td><td> 47uF/25V </td></tr><tr><th colspan="2"> Tlumivky axiální </th></tr><tr><td> L1 </td><td> 330uH </td></tr><tr><th colspan="2"> Krystaly </th></tr><tr><td> X1 </td><td> 3.6864MHz </td></tr><tr><th colspan="2"> Diody SMD </th></tr><tr><td> D1, D2, D4, D6, D7, D9 </td><td> 1N4148SMD </td></tr><tr><td> D5 </td><td> BAT48SMD </td></tr><tr><td> D10 </td><td> BZV55C5.6SMD </td></tr><tr><td> D3 </td><td> BZV55C16SMD </td></tr><tr><th colspan="2"> Diody LED </th></tr><tr><td> D8 </td><td> LED3mm </td></tr><tr><th colspan="2"> Tranzistory SMD </th></tr><tr><td> Q1, Q2, Q4 </td><td> BC817-25SMD </td></tr><tr><td> Q3 </td><td> BC807-25SMD </td></tr><tr><th colspan="2"> Integrované obvody </th></tr><tr><td> U1 </td><td> PIC16LF876-04/SO </td></tr><tr><td> U2 </td><td> MAX232SMD </td></tr><tr><td> U3 </td><td> LM78L12M_SO8 </td></tr><tr><th colspan="2"> Mechanické součástky </th></tr><tr><td> J1 </td><td> RS232DB9M </td></tr><tr><td> J2, J3 </td><td> JUMP 8 </td></tr></table><h2> Oživení </h2><p>Do procesoru U1 je třeba naprogramovat nějaký vhodný firmware. Vhodnýmikandidáty jsou firmwary jednak firmy MICROCHIP (z balíku MPLAB verze5.x) a dále firmy CCS (z balíku překladače PCW nebo ICS). Je třeba dátpozor na to, který firmware použít. Tento hardware je kompatibilní sICD firmy MICROCHIP a má procesor PIC16LF876 a krystal 3.6864MHz.</p><p>Kabel RS232 je zapojen 1:1 (tedy odpovídající si piny jsou spojeny,není to křížený kabel).</p><h3> Oživení pro MICROCHIP MPLAB </h3><p>Do procesoru U1 se externím programátorem naprogramuje firmware zesouboru MPL876.HEX z instalačního adresáře balíku MICROCHIP MPLAB verze5.x. Firmware umožňuje komunikaci jen rychlostí 19200Bd a 57600Bd.</p><h3> Oživení pro CCS PCW </h3><p>Nejsnazší je naprogramovat do U1 externím programátorem zavaděč, kterýse nachází v instalačním adresáři překladače PCW (stačí i demoverze) vsouboru BOOLOAD.HEX. Pak je již ICD funkční a při prvním použití vprogramu PCW nám program nabídne provedení aktualizaca firmwaru. Kaktualizaci již není potřeba externí programátor. Místo zavaděče můžebýt naprogramován i firmware pro MPLAB.</p><p>Při aktualizaci vybereme variantu MICROCHIP MPLAB ICD a variantufirmwaru pro programování požadované řady procesorů PIC (PIC16F aPIC18F mají samostatné varianty firmwaru).</p><p>V případě potřeby je možné nahrát do ICD firmware pro MPLAB™ ICD(soubor MPL876.HEX z instalačního adresáře balíku MPLAB verze 5.x).Poku</p><p>Pokud do ICD nahrajeme chybnou verzi firmwaru (například firmware projinou frekvenci krystalu) nezbývá než opět použít externí programátor apřehrát firmware U1 z vnějšku.</p><p>Po výměně krystalu je možné použít i firmware pro kmitočet 20MHz alepak ICD nebude pracovat při sníženém napájecím napětí. Pak nahrávámefirmware pro ICD-S pro 20MHz.</p><h3> Kontrola </h3><p>Po naprogramování firmwaru je vhodné zkontrolovat funkčnost ICD sreálným procesorem a aplikací.</p><p>Závěrem je vhodné zkontrolovat, zda měnič vyrábí správné programovacínapětí. Kontroluje se napětí na vodiči +16V zda má +16V. Toto napětí senegeneruje trvale ale generuje se například během programování.</p><h1> Programové vybavení </h1><p>Programové vybavení za nás napsaly firmy MICROCHIP a CCS. Jedná se obalíky MICROCHIP MPLAB verze 5.x (starší verze, volná verze) apřekladač jazyka C firmy CCS PCW (a program pro programování procesorůCCS ICD-S, komerční program, ICD funguje i v demoverzi).</p><p>Podpora ICD je k dispozici jen u novějších procesorů PIC. HW podporaICD zahrnuje hardware, který umožňuje provádět tyto ladící zásahy:</p><ul><li>Krokovat program po instrukcích </li><li>Spustit program s nastavenou jednou zarážkou (BreakPoint registr je jen 1) </li><li>Zastavit běžící program </li></ul><p>Vše ostatní již zajišťuje kousek programu, který se musí přidat kcílové aplikaci (zabere pár buněk paměti RAM, řádově dvě stovkyinstrukcí a jednu úroveň zásobníku). Přidání správného obslužnéhoprogramu do aplikace zajišťuje software sám (volbou aktivace ICD). Naprvní adrese programu musí být instrukce NOP.</p><p>Hardwarová podpora ICD procesorů PIC16F je popsána v dokumentuMICROCHIP DS51241.</p><h1> Chyby a náměty </h1><p>Dioda D5 byla do zapojení přidána dodatečně a nejsou pro ni plošky naplošném spoji.</p><p>Na plošném spoji by se hodil napájecí hřebínek.</p><p>Kabel RS232 by byl šikovnější, kdyby byl křížený (null-modem) protožetakový kabel je nejběžnější a nejužitečnější.</p></div><!-- AUTOINCLUDE START "Page/Footer.cs.ihtml" DO NOT REMOVE --><!-- ============== PATIČKA ============== --><div class="Footer"><script type="text/javascript"><!--SetRelativePath("../../../../../");DrawFooter();// --></script><noscript><p><b> Pro zobrazení (vložení) hlavičky je potřeba JavaScript </b></p></noscript></div><!-- AUTOINCLUDE END --></body></html>