Rev Author Line No. Line
331 miho 1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
206 miho 2 <html>
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
5 <title> PICPGR301A </title>
6 <meta name="keywords" content="stavebnice MLAB programátor procesrů PIC Microchip">
7 <meta name="description" content="Projekt MLAB, Programátor PICPGR">
8 <!-- AUTOINCLUDE START "Page/Head.cs.ihtml" DO NOT REMOVE -->
9 <link rel="StyleSheet" href="../../../../../Web/CSS/MLAB.css" type="text/css" title="MLAB základní styl">
381 miho 10 <link rel="StyleSheet" href="../../../../../Web/CSS/MLAB_Print.css" type="text/css" media="print">
211 miho 11 <link rel="shortcut icon" type="image/x-icon" href="../../../../../Web/PIC/MLAB.ico">
206 miho 12 <script type="text/javascript" src="../../../../../Web/JS/MLAB_Menu.js"></script>
13 <!-- AUTOINCLUDE END -->
14 </head>
15  
16 <body lang="cs">
17  
18 <!-- AUTOINCLUDE START "Page/Header.cs.ihtml" DO NOT REMOVE -->
19 <!-- ============== HLAVICKA ============== -->
20 <div class="Header">
21 <script type="text/javascript">
22 <!--
23 SetRelativePath("../../../../../");
24 DrawHeader();
25 // -->
26 </script>
27 <noscript>
28 <p><b> Pro zobrazení (vložení) hlavičky je potřeba JavaScript </b></p>
29 </noscript>
30 </div>
31 <!-- AUTOINCLUDE END -->
32  
33 <!-- AUTOINCLUDE START "Page/Menu.cs.ihtml" DO NOT REMOVE -->
34 <!-- ============== MENU ============== -->
35 <div class="Menu">
36 <script type="text/javascript">
37 <!--
38 SetRelativePath("../../../../../");
39 DrawMenu();
40 // -->
41 </script>
42 <noscript>
43 <p><b> Pro zobrazení (vložení) menu je potřeba JavaScript </b></p>
44 </noscript>
45 </div>
46 <!-- AUTOINCLUDE END -->
47  
48 <!-- ============== TEXT ============== -->
49 <div class="Text">
50 <p class="Title">
51 Programátor procesorů PIC
52 </p>
53 <p class=Autor>
54 Milan Horkel
55 </p>
56 <p class="Subtitle">
57 Programátor PICPGR3 je malý vývojový programátor pro programování
58 procesorů PIC firmy MICROCHIP. Umožňuje programované zařízení spustit
59 bez odpojování programátoru a může jej resetovat i napájet.
60 </p>
61 <p class="Subtitle">
1068 miho 62 <img width="568" height="515" src="PICPGR301A_files/image001.jpg"
206 miho 63 alt="Deska programátoru">
64 </p>
65 <p>
66 <a href="../PICPGR301A.cs.pdf"><img class="NoBorder"
67 src="../../../../../Web/PIC/FileIco_PDF.ico"
68 alt="Acrobat">&nbsp;PDF verze</a>
69 </p>
70  
71 <h1> Technické parametry </h1>
72  
73 <table>
74 <tr>
75 <th> Parametr </th>
76 <th> Hodnota </th>
77 <th> Poznámka </th>
78 </tr>
79 <tr>
80 <td> Napájení </td>
81 <td> +15V </td>
82 <td> Ochrana proti přepólování </td>
83 </tr>
84 <tr>
85 <td> Spotřeba </td>
86 <td> 80mA / 100mA </td>
87 <td> Bez připojené aplikace / při programování </td>
88 </tr>
89 <tr>
90 <td> Rozměry </td>
91 <td> 71 x 61 x 20 </td>
92 <td> Výška nad upevňovací deskou, bez přečnívajícího konektoru </td>
93 </tr>
94 </table>
95  
96 <h1> Popis konstrukce </h1>
97  
98 <h2> Úvodem </h2>
99  
100 <p>
101 Programátor PICPGR3 vychází ze starších verzí programátoru, je s nimi
102 funkčně kompatibilní a na rozdíl od nich je mechanicky řešen jako modul
103 pro stavebnici.
104 </p>
105  
106 <p>
107 Programátor umožňuje programovat vybrané procesory PIC v režimu
108 standardního programování (používá k tomu programovací napětí 12V).
109 Sortiment podporovaných procesorů není dán konstrukcí hardwaru ale tím,
110 co podporuje software.
111 </p>
112  
113 <p>
114 Programátor umožňuje aplikace s procesory PIC nejen programovat v
115 zapojení ale i přímo spouštět, resetovat i pouze napájet napájecím
116 napětím +5V a to bez odpojování programovacích vodičů (to kupodivu
117 neumí zdaleka každý programátor ale vývojář programů to velmi ocení).
118 </p>
119  
120 <h2> Zapojení modulu </h2>
121  
122 <p>
1068 miho 123 <img width="1360" height="661" src="PICPGR301A_files/image002.png"
206 miho 124 alt="Schéma zapojení">
1068 miho 125 <img width="802" height="201" src="PICPGR301A_files/image003.png"
206 miho 126 alt="Schéma zapojení zdroje">
127 </p>
128  
129 <p>
130 Napájecí napětí programátoru (konektor J1) by mělo být +15V aby byl
131 programátor schopen generovat programovací napětí VPP o hodnotě +12.5V.
132 Tato hodnota je vyžadována pro programování procesorů s OTP pamětí.
133 Procesory s pamětí FLASH nejsou tak striktní co se týká velikosti VPP
134 protože VPP používají pouze pro aktivaci programovacího režimu a stačí,
135 pokud je podstatně větší než základní napájecí napětí VDD (pozor,
136 neplatí to pro některé starší procesory, které měli starší provedení
137 FLASH či EEPROM paměti).
138 </p>
139  
140 <p>
141 Napájecí napětí +5V pro elektroniku programátoru se získává ve
142 stabilizátoru U1 a je používáno i pro napájení cílové aplikace. Spínání
143 napájení pro cílovou aplikaci zajišťují tranzistory Q1 a Q2 a ruční
144 spínač SW1.
145 </p>
146  
147 <p>
148 Programovací napětí VPP o hodnotě +12.5V stabilizuje U2 a spínají Q3 a
149 Q4. Tranzistor Q5 aktivuje MCLR# (RESET) procesoru. Vzhledem k tomu, že
150 signál MCLR# i programovací napětí VPP sdílejí společný vývod procesoru
151 MCLR#/VPP, musí být zajištěno, že nedojde k aktivaci signálu MCLR#
152 současně s programovacím napětím VPP. To zajišťuje ochranná logika,
153 která je realizována v obvodu GAL U3.
154 </p>
155  
156 <p>
157 V obvodu GAL je kromě ochranné logiky realizován i třístavový budič
158 řídících signálů. Volné vývody obvodu GAL jsou připraveny pro budoucí
159 rozšíření. Odpory R14, R15 a R16 zajišťují klidový stav na vstupech
160 obvodu GAL tak, aby programátor byl v neaktivním stavu pokud není
161 připojen k počítači PC. <i>Na rychlosti obvodu GAL nezáleží, vyhoví
162 kterýkoli GAL16V8 v pouzdru DIL.</i>
163 </p>
164  
165 <p>
166 Propojovací kabel mezi PC a PICPGR3 je zapojen 1:1 samec-samec.
167 </p>
168  
169 <h2> Mechanická konstrukce </h2>
170  
171 <p>
172 Programátor je proveden jako standardní stavebnicový modul.
173 </p>
174  
175 <h2> Zapojení obvodu GAL </h2>
176  
177 <p>
178 Verze GAL4.EQN a jeho schématický ekvivalent.
179 </p>
180  
181 <p>
1068 miho 182 <img width="454" height="448" src="PICPGR301A_files/image004.png"
206 miho 183 alt="Zapojení obvodu GAL">
184 </p>
185  
186 <h2> Programátorský model </h2>
187  
188 <p>
189 Programátor se připojuje na LPT port PC. Bázové adresy řídících
190 registrů LPT portů ukládá BIOS počítače do paměti na adresy 0:408H
191 (hodnota 16 bitů) a obvykle bývá 3BCH, 378H nebo 278H.
192 </p>
193  
194 <p>
195 Používá se nejzákladnější jednosměrný režim LPT portu. Řídící registry
196 LPT mají pak tento význam:
197 </p>
198  
199 <ul>
200 <li> 3BCH/378H/278H Data směrem do tiskárny (v programátoru signály D0 až D7) </li>
201 <li>
202 <ul>
203 <li> bit 0 – signál D0 - DATA </li>
204 <li> bit 1 – signál D1 – DATA output anable </li>
205 <li> bit 2 – signál D2 – CLOCK </li>
206 <li> bit 3 – signál D3 – CLOCK output enable </li>
207 <li> bit 4 – signál D4 – VCCON </li>
208 <li> bit 5 – signál D5 – VPPON (lze jen spolu s VCCON) </li>
399 miho 209 <li> bit 6 – signál D6 – RESET (lze jen není-li VPPON) </li>
206 miho 210 <li> bit 7 – signál D7 – musí být 0 aby byl programátor aktivní </li>
211 </ul>
212 </li>
213 <li> 3BEH/37AH/27AH Řízení tiskárny (v programátoru se nepoužívá) </li>
214 <li> 3BDH/379H/279H Čtení stavu tiskárny (používá se jen 1 signál) <li>
215 <li>
216 <ul>
217 <li> bit 6 – signál ACK – čtená data DQ alias DATA </li>
218 </ul>
219 </li>
220 </ul>
221  
222 <h1> Osazení a oživení </h1>
223  
224 <h2> Osazení </h2>
225  
226 <p>
1068 miho 227 <img width="146" height="118" src="PICPGR301A_files/image005.png"
206 miho 228 alt="Programovací konektor">
229 </p>
230  
231 <p>
1068 miho 232 <a href="PICPGR301A_files/O1.png">
233 <img width="441" height="465" src="PICPGR301A_files/image006.jpg"
234 alt="Osazovák"></a>
206 miho 235 </p>
236  
237 <table class="Soupiska">
238 <tr>
239 <th> Reference </th>
240 <th> Název </th>
241 </tr>
242 <tr>
243 <th colspan="2"> Odpory </th>
244 </tr>
245 <tr>
246 <td> R9,R10,R11,R12 </td>
247 <td> 100 </td>
248 </tr>
249 <tr>
250 <td> R4,R13 </td>
251 <td> 470 </td>
252 </tr>
253 <tr>
254 <td> R1,R2,R3,R5,R6,R7 </td>
255 <td> 1k </td>
256 </tr>
257 <tr>
258 <td> R8,R14,R15,R16 </td>
259 <td> 4k7 </td>
260 </tr>
261 <tr>
262 <th colspan="2"> Kondenzátory </th>
263 </tr>
264 <tr>
265 <td> C2,C3,C5,C6 </td>
266 <td> M1 </td>
267 </tr>
268 <tr>
269 <td> C4 </td>
270 <td> 10uF/35V </td>
271 </tr>
272 <tr>
273 <td> C1 </td>
274 <td> 220uF/25V </td>
275 </tr>
276 <tr>
277 <th colspan="2"> Diody </th>
278 </tr>
279 <tr>
280 <td> D1 </td>
281 <td> 1N4007 </td>
282 </tr>
283 <tr>
284 <td> D2 </td>
285 <td> 1N4148 </td>
286 </tr>
287 <tr>
288 <td> D3 </td>
289 <td> LED3mm, zelená </td>
290 </tr>
291 <tr>
292 <td> D4 </td>
293 <td> LED3mm, červená </td>
294 </tr>
295 <tr>
296 <td> D5 </td>
297 <td> BZX85V006.2 </td>
298 </tr>
299 <tr>
300 <th colspan="2"> Tranzistory </th>
301 </tr>
302 <tr>
303 <td> Q1,Q3,Q5 </td>
304 <td> BC337 </td>
305 </tr>
306 <tr>
307 <td> Q2,Q4 </td>
308 <td> BC640 </td>
309 </tr>
310 <tr>
311 <th colspan="2"> Integrované obvody </th>
312 </tr>
313 <tr>
314 <td> U1 </td>
315 <td> LM7805T </td>
316 </tr>
317 <tr>
318 <td> U2 </td>
319 <td> LM78L12Z </td>
320 </tr>
321 <tr>
322 <td> U3 </td>
323 <td> GAL16V8 </td>
324 </tr>
325 <tr>
326 <th colspan="2"> Mechanické součásti </th>
327 </tr>
328 <tr>
329 <td> J1 </td>
330 <td> K375A </td>
331 </tr>
332 <tr>
333 <td> J2 </td>
334 <td> DB25F_90 </td>
335 </tr>
336 <tr>
337 <td> J3 </td>
338 <td> JUMP3 </td>
339 </tr>
340 <tr>
341 <td> J4 </td>
342 <td> PIC_ISP </td>
343 </tr>
344 <tr>
345 <td> J5 </td>
346 <td> JUMP2 </td>
347 </tr>
348 <tr>
349 <td> SW1 </td>
350 <td> P-B143 </td>
351 </tr>
352 </table>
353  
354 <h2> Oživení </h2>
355  
356 <p>
357 Pokud jsou použité správné součástky (obvod GAL musí být naprogramovaný
358 !) a není chyba v zapojení (zkraty či jiné chyby) bude programátor
359 fungovat na první zapojení.
360 </p>
361  
362 <p>
363 Základní oživení se provádí pomocí laboratorního zdroje. Nejprve
364 přesuneme vypínač SW1 do vypnutého stavu (směrem k LED indikátorům).
365 Při postupném zvyšování napájecího napětí kontrolujeme, zda
366 stabilizátor U1 stabilizuje napětí +5V a zda stabilizátor U2
367 stabilizuje na cca +12.7V. Spotřeba programátoru by měla být řádu do
368 100mA (konkrétní hodnota záleží na tom, jakou spotřebu má použitý obvod
369 GAL.
370 </p>
371  
372 <p>
373 K dalšímu oživování používáme testovací program TSTPGR.EXE, který
374 umožňuje postupnou aktivaci jednotlivých signálů a jejich kombinací.
375 Jednotlivé položky testu vypisují jednak co program nastavil a
376 informaci o tom, co by se mělo objevit na jednotlivých pinech
377 programovacího konektoru.
378 </p>
379  
380 <p>
381 Stav H je napětí kolem +4V, stav L je obvykle napětí pod +0.1V a stav X
382 je napětí kolem +3V s tím, že po připojení odporu 10k na zem nebo na
383 napájení +5V dostaneme napětí 0V nebo +5V. Pro testování, zda funguje
384 vstup PGD se na tento pin připojuje GND a VDD přes odpor 10k.
385 </p>
386  
387 <p>
388 Napětí VDD by mělo být v rozmezí +4.5V až +5.5V a VPP v rozmezí +12V až
389 +13V
390 </p>
391  
1068 miho 392 <h1> Programové vybavení (MS DOS) </h1>
206 miho 393  
1068 miho 394 <p>
395 <i> Poznámka: Pod systémem Windows XP je možné použít program WinPic.
396 Instalace a konfigurace tohoto programu je popsána v dokumentu
397 <a href="PICPGR3_WindowsXP.cs.html">PICPGR3_WindowsXP.cs.html</a>.</i>
398 </p>
399  
206 miho 400 <h2> Uživatelský návod PICPGR.EXE </h2>
401  
402 <p>
403 Program PICPGR.EXE je DOS program a přímo ovládá zadaný LPT port. V
404 případě procesorů s pamětí FLASH je možné spouštět jej i z DOS okna pod
405 Windows 95/98. Program při spuštění bez parametrů vypíše nápovědu
406 včetně úplného seznamu podporovaných procesorů a možností nastavení
407 přepínačů.
408 </p>
409  
410 <p>
411 Program zpracovává jednak standardní HEX soubor (takový, který generují
412 obvyklé překladače pro procesor PIC) a alternativně textový soubor,
413 který je výhodný zejména při ladění (vyčtení stavu, vizuální kontrola,
414 definování parametrů v EEPROM paměti a podobně). Součástí datového
415 souboru mohou být data pro paměť programu, pro paměť EEPROM, pro
416 testovací pole i pro konfigurační slovo. Nastavení konfiguračního slova
417 lze (pouze pro procesory s pamětí FLASH) změnit uvedením přepínačů.
418 Různé procesory mají různé přepínače.
419 </p>
420  
421 <p>
422 Pro většinu akcí je nutné uvést typ procesoru a případně i formát
423 vstupního či výstupního souboru (přepínač HEX nebo TXT). Na pořadí
424 přepínačů nezáleží.
425 </p>
426  
427 <h3> Nápověda </h3>
428  
429 <p>
430 <samp>PICPGR</samp>
431 </p>
432  
433 <p>
434 Vypíše úplnou nápovědu včetně seznamu všech podporovaných procesorů,
435 jejich vlastností a přepínačů.
436 </p>
437  
438 <p>
439 <samp>PICPGR &lt;procesor&gt;</samp>
440 </p>
441  
442 <p>
443 Nápověda vypíše vlastnosti procesoru a jeho sady přepínačů pro
444 předefinování stavu konfiguračních přepínačů.
445 </p>
446  
447 <h3> Mazání procesoru </h3>
448  
449 <p>
450 <samp>PICPGR ERASE &lt;procesor&gt;</samp>
451 </p>
452  
453 <p>
454 Smaže obsah všech pamětí procesoru i v případě, že je procesor zamčený.
455 Funguje pouze pro procesory s pamětí FLASH.
456 </p>
457  
458 <h3> Čtení procesoru </h3>
459  
460 <p>
461 <samp>PICPGR READ &lt;soubor&gt; HEX &lt;procesor&gt;</samp>
462 </p>
463  
464 <p>
465 <samp>PICPGR READ &lt;soubor&gt; TXT &lt;procesor&gt;</samp>
466 </p>
467  
468 <p>
469 Přečte obsah všech pamětí procesoru a uloží je do výsledného HEX nebo
470 TXT souboru.
471 </p>
472  
473 <h3> Programování procesoru a verifikace </h3>
474  
475 <p>
476 <samp>PICPGR PROGAM &lt;soubor&gt; HEX &lt;procesor&gt;</samp>
477 </p>
478  
479 <p>
480 <samp>PICPGR VERIFY &lt;soubor&gt; HEX &lt;procesor&gt;</samp>
481 </p>
482  
483 <p>
484 Provede naprogramování a kontrolu naprogramování procesoru dle zadaného
485 souboru (HEX nebo TXT). Programování automaticky provádí i kontrolu a
486 vypisuje případné nesrovnalosti.
487 </p>
488  
489 <p>
490 V případě potřeby je možné změnit nastavení konfiguračního slova. Níže
491 uvedený příklad provede naprogramování procesoru PIC16F873 obsahem
492 souboru TEST.HEX ve formátu HEX s tím, že změní konfigurační bit CP
493 (Code Protection) do stavu zapnuto a pole FOSC v konfiguračním slově
494 (konfigurace oscilátoru) nastaví do stavu 01.
495 </p>
496  
497 <p>
498 <samp>PICPGR PROGRAM TEST.HEX HEX PIC16F873 CP_ON FOSC_01</samp>
499 </p>
500  
501 <h3> Spouštění aplikace </h3>
502  
503 <p>
504 <samp>PICPGR RUN</samp>
505 </p>
506  
507 <p>
508 <samp>PICPGR RESET</samp>
509 </p>
510  
511 <p>
512 <samp>PICPGR STOP</samp>
513 </p>
514  
515 <p>
516 Zapne napájení a spustí aplikaci, provede reset aplikace a vypne
517 napájení aplikace. Používá se při ladění aplikace při kterém se
518 neodpojuje programovací kabel od laděné aplikace.
519 </p>
520  
521 <h3> Konverze formátu datového souboru </h3>
522  
523 <p>
524 <samp>PICPGR CONVERT &lt;vstup&gt; &lt;vystup&gt; HEX
525 &lt;procesor&gt;</samp>
526 </p>
527  
528 <p>
529 <samp>PICPGR CONVERT &lt;vstup&gt; &lt;vystup&gt; TXT
530 &lt;procesor&gt;</samp>
531 </p>
532  
533 <p>
534 Převede soubor ve formátu HEX na TXT nebo naopak. Uváděný typ procesoru
535 slouží ke kontrole rozsahu.
536 </p>
537  
538 <h2> Popis programu </h2>
539  
540 <p>
541 Program je napsaný v jazyce Turbo Pascal verze 6 a vznikl postupným
542 rozšiřováním původního jednoduchého programu pro programování obvodů
543 PIC16F84. Zdrojové texty jsou dostupné a komentované.
544 </p>
545  
546 <p>
547 Program podporuje kromě programátoru PICPGR i profesionální programátor
548 ALL-03.
549 </p>
550  
551 </div>
552  
553 <!-- AUTOINCLUDE START "Page/Footer.cs.ihtml" DO NOT REMOVE -->
554 <!-- ============== PATIČKA ============== -->
555 <div class="Footer">
556 <script type="text/javascript">
557 <!--
558 SetRelativePath("../../../../../");
559 DrawFooter();
560 // -->
561 </script>
562 <noscript>
563 <p><b> Pro zobrazení (vložení) hlavičky je potřeba JavaScript </b></p>
564 </noscript>
565 </div>
566 <!-- AUTOINCLUDE END -->
567  
568 </body>
569 </html>