0,0 → 1,512 |
<!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="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 firmy |
MICROCHIP. Modul je kompatibilní s MPLAB™ ICD firmy MICROCHIP a je jej |
také 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, jak |
je popsán v dokumentu DS51184 a s dodatkem v dokumentu ETN#21. Podle |
informací nalezených na WWW má původní konstrukce potíže s generováním |
programovací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 ISP |
konektoru). 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 PC |
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 J3, další přeprogramování si již |
procesor provádí sám. Může se ale stát, že si uživatel nahraje do |
procesoru nesprávný firmware a pak je třeba použít opět vnějšího |
programá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í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 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 se |
použije funkce monitoru použije se i vývod označený PGM, jinak může |
zůstat volný. ICD je z cílového systému napájen. Zenerova dioda D10 je |
ochrana 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í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á. |
</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ém |
rozmezí napájení ICD. Byla zmenšena indukčnost cívky L1 čímž byl zvýšen |
výkon měniče. Byla doplněna zpětná vazba Zenerovou diodou D4/D3 mezi |
kolektor a bázi tranzistoru, tím je omezeno generované napětí měniče |
právě na +16V. <i>Dále byla změněna vazba báze tranzistoru Q1 s |
procesorem na střídavou vazbu aby nemohlo dojít k fatálnímu stavu |
zaseknutí procesoru U1 v okamžiku, kdy je na PWM výstupu stav H (pak by |
byl Q1 sepnutý a zkratoval by napájení a procesor by nebyl schopen |
prové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 aktivaci |
signálu RESET. Tranzistory Q2 a Q3 spínají VPP (cca. +12.7V) a |
tranzistor Q4 aktivuje RESET. Odpory R18 a R21 jsou ochranné, odpor R22 |
a 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 sloupky |
pro 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 na |
ploš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ými |
kandidáty jsou firmwary jednak firmy MICROCHIP (z balíku MPLAB verze |
5.x) a dále firmy CCS (z balíku překladače PCW nebo ICS). Je třeba dát |
pozor na to, který firmware použít. Tento hardware je kompatibilní s |
ICD 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 ze |
souboru MPL876.HEX z instalačního adresáře balíku MICROCHIP MPLAB verze |
5.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) v |
souboru BOOLOAD.HEX. Pak je již ICD funkční a při prvním použití v |
programu PCW nám program nabídne provedení aktualizaca firmwaru. K |
aktualizaci již není potřeba externí programátor. Místo zavaděče může |
být naprogramován i firmware pro MPLAB. |
</p> |
|
<p> |
Při aktualizaci vybereme variantu MICROCHIP MPLAB ICD a variantu |
firmwaru pro programování požadované řady procesorů PIC (PIC16F a |
PIC18F 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 pro |
jinou frekvenci krystalu) nezbývá než opět použít externí programátor a |
př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 ale |
pak ICD nebude pracovat při sníženém napájecím napětí. Pak nahráváme |
firmware pro ICD-S pro 20MHz. |
</p> |
|
<h3> Kontrola </h3> |
|
<p> |
Po naprogramování firmwaru je vhodné zkontrolovat funkčnost ICD s |
reá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í se |
negeneruje 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 o |
balíky MICROCHIP MPLAB verze 5.x (starší verze, volná verze) a |
př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 podpora |
ICD 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 k |
cílové aplikaci (zabere pár buněk paměti RAM, řádově dvě stovky |
instrukcí a jednu úroveň zásobníku). Přidání správného obslužného |
programu do aplikace zajišťuje software sám (volbou aktivace ICD). Na |
první adrese programu musí být instrukce NOP. |
</p> |
|
<p> |
Hardwarová podpora ICD procesorů PIC16F je popsána v dokumentu |
MICROCHIP 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 na |
ploš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že |
takový 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> |