| Programátor procesorů PIC |
Programátor je určen pro procesory PIC od firmy MICROCHIP. Zapojení programátoru je převzato z původního zapojení David Tait, které vzniklo v roce 1996 a je v různých úpravách uveřejněné na internetu. Připojuje se na paralelní port počítače PC přes prodlužovací kabel a napájí se z externího zdroje napětí. Programátor používám od roku 2000 a za celou dobu nebyly žádné problémy, pouze s nástupem nových procesorů bylo potřeba doplnit elektrické schéma o konektor ICSP (In-Circuit Serial Programming) pro sériové programování osazených procesorů v desce. Doplněna je také univerzální patice pro snadné programování různých typů procesorů ze schématu programátora P16pro40, které je na stránce Bojan Dobaj.
Na ovládání programátoru, který je zde popsán, můžeme použít více ovládacích programů.
Například Bojan Dobaj - P16pro,
Johann Aichinger - ProPic2,
Nigel Goodwins - WinPicProg,
Wolfgang Buescher - Win Pic programmer,
Sprunt - PBrenner a
Bonny Gijzen - IC-Prog.
Uvedené programy umí programovat různé procesory PIC16Fxxx nebo PIC18Fxxx. Musíme se
sami podívat jaký typ procesoru budeme programovat a jaký program nám bude vyhovovat.
Nastavení programů pro tento programátor je uvedeno na konci článku a další informace
se můžeme přečíst na stránce
programátory.
Programátor, který používám je zobrazen na následujícím obrázku. Na levém obrázku
je použita patice s nulovou silou ZIF (Zero Insert Force) na pravém
obrázku je použita patice obyčejná, která také neničí tolik vývody procesoru.
Popis zapojení:
Napájení zajištuje nestabilizovaný sítový adaptér 12V/0,2A, který dává naprázdno
minimálně 17V. Při menším napětí nebude zajíštěno dostatečné programovací napětí +13V.
Adaptéry mají různě zapojený souosý konektor proto je napětí přivedeno na usměrnovací
můstek, který je možné nahradit jen jednou diodou 1N4007. Katodu diody zapojíme na
filtrační kondenzátor. Následují dva stabilizátory na snížení napětí na +5V pro napájení
a +13V pro programování. Napětí je dále přivedeno přes spínací tranzistory, které jsou
ovládány z počítače na programovací patici a konektor ICSP. Přepínač XJ1 nastavíme
do polohy 1-2, kdy je napájecí napětí +5V pro procesor spínané z počítače přes
tranzistor. Poloha 2-3 slouží trvalému napájení +5V pro procesor.
| Typ procesoru | Vývod LVP |
| PIC16F627, 628 | RB4 |
| PIC16F87, 88 | RB3 |
| PIC16F87x | RB3 |
| PIC18Fxxx | RB5 |


Programátor je doplněn o ICSP konektor ve dvou provedeních. První je 5-ti vývodový
plochý konektor a druhý je dvouřadý 2x3 vývody pro konektor PFL na plochý kabel. Pro
připojení na programátor si vyrobíme propojovací kabel, který musí být co nejkratší.
Vyzkoušená délka je 20 až 30cm. Do konektoru PFL06 zařízneme 30cm kabelu BELDEN
(šedý-počítačový) nebo do plochého konektoru zaletujeme kabel. Pomocí konektoru ICSP je
také možné programovat sériové paměti EEPROM typu 24Cxx s programem
Bonny Gijzen (IC-Prog).
Paměti se zasouvají do externí patice připojené na ICSP konektor (vývod 1, 2, 3, 4 na
zem, vývod 5 data, vývod 6 clock a vývod 8 na +5V).



Osazení desky a mechanické sestavení:
Do plošného spoje se nejdříve osadí propojky ze strany součástek označené červeně,
pak součástky menší jako odpory, kondenzátory, tranzistory a nakonec největší (patice ZIF).
Pokud budeme osazovat patice obyčejné tak je potřeba upravit patici o velikosti 40 vývodů.
Odřízneme jednu stranu s 20 vývody, očistíme a osadíme na levou stranu. Na pravou stranu
osadíme patice 2x10 vývodů orientované výřezem nahoru. Osazený plošný spoj je určen do
krabičky U-KP24.
Rozpiska součástek
pořadí ks označení typ
________________________________________________________________
1 1 D1 B380C1000DIL (227-011, usměrnovací můstek)
2 1 NL1 78L05 (330-011, stabilizátor)
3 1 NL2 78L08 (330-013, stabilizátor)
4 1 U1 74LS06 (74LS07 jiné nastavení programu)
5 3 VT1,VT2,VT3 BC556B (210-036, tranzistor)
6 2 VD1,VD2 BAT42 (223-039, schottky dioda)
8 1 HL1 LED dioda zelená
9 1 HL2 LED dioda žluta
10 2 HL3,HL4 LED dioda rudá
11 2 R1,R11 470R 0,25W
12 9 R2,R3,R4,R5,R6, 4K7 0,25W
R7,R8,R9,R10
13 1 R12 2K7 0,25W
14 2 R14,R15 1K0 0,25W
15 3 R16,R17,R18 10K 0,25W
16 2 C1,C2 100n/50V
17 1 C3 470u/25V (radiální)
18 2 C5,C6 10u/16V (radiální)
19 1 C4 330p (!!! neosazovat !!!)
20 1 J1 K375A (806-049, napájecí konektor 2,1)
21 1 J2 konektor (801-017, CANON25 do plošného spoje - kolíky)
22 1 XJ1,XJ2,ICSP S1G20 (832-017, lámací lišta - kolíky)
23 1 ICSP (1x5pin) S1G20S (832-090, lámací lišta - kolíky)
24 1 JUMP-SW (832-012, zkratovací propojka - jumper)
25 1 SOKL14 (823-001, patice obyčejná)
26 2 SOKL20 * (823-004, patice obyčejná)
27 1 SOKL40 * (823-009, patice obyčejná)
28 1 ZIF40 * (825-012, patice s nulovou silou)
29 1 U-KP24 (622-425, krabička o rozměru 28x68x129mm)
30 1 sítový adaptér (751-345, 12V/200mA - nestabilizovaný)
31 1 Prodlužovací kabel paralelního portu 1,5m
* Použijte patici 1ks ZIF40 nebo 2ks SOKL20 a 1ks SOKL40 (nutno upravit).
V závorkách jsou kody součástek obchodu
GMe.
Krabičku U-KP24 je také možné koupit u firmy Krabičky - Antonín Anatasovský.
Napájení programátoru z USB konektoru počítače:
Pokud nemáme k dispozici sítový adaptér, tak si vyrobíme měnič pro napájení
programátoru. USB rozhraní má na krajních vývodech konektoru napětí 5V / 500mA,
které nám postačí pro napájení měniče. Měnič přemění napětí 5V na 20V pro napájení
programátoru. Sestavený měnič připojíme do volného konektoru USB v počítači. Pokud
měnič pracuje a má výstupní napětí, rozsvítí se zelená dioda LED.
Osadíme součástky na plošný spoj a přiletujeme vstupní a výstupní vodiče. Polarita
vodičů do USB konektoru je zobrazena na obrázku. Do horní části krabičky vyvrtáme
otvor pro LED diodu o průměru 3mm. Do obou boků vyvrtáme otvory pro vstupní a výstupní
vodiče. Nyní vložíme plošný spoj do krabičky. Spodní díl krabičky se nedá připevnit
šroubkem a tak dno trochu namažeme lepidlem. Nedávat hodně lepidla jinak se do krabičky
nedostaneme bez porušení okrajů!

Rozpiska součástek
pořadí ks označení typ
________________________________________________________________
1 1 U1 MC34063 (330-104)
2 1 VD1 1N5819 (223-001)
3 1 HL1 LED dioda zelená 3mm (2mA)
4 1 R1 0,5R (2x1R 0,25W)
5 1 R2 15K 0,25W
6 1 R3 1K0 0,25W
7 1 R4 3K3 0,25W
8 1 R5 180R 0,25W
9 1 C1 220u/16V (radiální)
10 1 C2 100n/50V
11 1 C3 1n0 /50V
12 1 C4 470u/25V (radiální)
13 1 L1 cívka 220uH (330uH) 09P-331K (611-055)
14 1 U-KM1 (622-738, krabička o rozměru 43x32x22mm)
15 1 konektor (832-174, USB-AZ)
16 1 konektor (806-016, napájecí konektor SCP-2009B, průměr 2,1)
17 1 kabel (651-228, např. RG-ALARM 04C)
Cena součástek je asi 75,- Kč (výpočet ceny k 4/2006).
V závorkách jsou kody součástek obchodu GMe.
Krabičku U-KM1 je také možné koupit u firmy Krabičky - Antonín Anatasovský.
Popis a nastavení ovládacího programu WinPicProg.
Pro začátek jsem vybral program od Nigel Goodwin's u kterého popíšu nastavení a používání. Na stránkách autora je ke stažení program WinPicProg verze 1.91 určený pro Windows 95/98, ME, 2000 a NT. Programuje procesory PIC: 12C508/509, 12F629/675, 12C671/672, 16C505, 16C84, 16F83, 16F84, 16F627, 16F628, 16F873, 16F874, 16F876 a 16F877. Tato nabídka procesorů nám pro začátek bude stačit. Pokud potřebujeme naprogramovat jiný procesor, musíme se podívat po jiném programu nebo programátoru.
Stáhneme si program WinPicProg a nainstalujeme. Dále je potřeba nainstalovat ovladač portu PC DLPortIO.DLL, který se do windows 98 jenom nakopíruje do adresáře Windows/System/. Windows XP potřebují tento ovladač nainstalovat. Stáhneme si Port I/O Driver (1,7Mb) nebo Port I/O Driver (1,7Mb) a nainstalujeme. Programátor připojíme k počítači PC pomocí prodlužovacího kabelu paralelního portu o délce cca 1,5m. Kabel má na obou koncích konektor canon 25 (na jedné straně jsou kolíky a na druhé dutinky). Do programátoru připojíme napájecí adaptér a rozsvítí se zelená LED dioda. Spustíme program WinPicProg.
Nastavení programátoru.
V horní lište vybereme položku Options kde jsou další položky.
Po zvolení položky Hardware se zobrazí následující obrázek Hardware Settings. V horní liště vybereme Programmer Type a pokud máme v programátoru osazen obvod 74LS06 tak nastavíme P16PRO40-7406. Dále nastavíme připojení k PC na paralelní port. Port LPT1 má adresu 378 a port LPT2 má adresu 278. Hodnoty v okénku Prog Delay a Vpp Delay nebudeme měnit. Pokud by programátor při programování zlobil tak hodnotu zvětšíme (asi na 15).
Kontrola programátoru.
Ve spodní části obrázku pod každým sloupečkem jsou tlačítka On a Off nebo High a
Low. Stisk tlačítka změní popis a vyzkouší jednotlivá programovací napětí pro procesor.
Po ukončení testování programátoru nastavíme tlačítka tak, aby na nich bylo napsáno Off nebo Low a LED diody byly zhasnuty kromě zelené LED.
Programování procesoru.
V následujícím obrázku uprostřed vybereme typ procesoru Processor, který
budeme programovat. Vybráním procesoru se zobrazí počet pojistek Fuses a možnosti
oscilátoru Oscillator. Vybereme soubor a načteme ho do Bufferu pro nahrání do
procesoru. V menu vybereme File, potom Open (nebo stisk na žlutou ikonu
pod Edit) a najdeme umístění souboru v počítači. Načtení souboru potvrdíme otevřít.
Nyní máme načtený soubor v Bufferu a je zobrazen na obrazovce. Pokud je v načteném
souboru uloženo nastavení pojistek a obsah paměti EEPROM (některé procesory pamět EEPROM
nemají) tak není potřeba nic nastavovat a program je připraven pro nahrání do procesoru.
Jinak se nastaví pojistky Fuses.

Zápis programu do procesoru:
Máme nastavený typ procesoru, načtený soubor v Bufferu a nastavené pojistky. Vložíme
procesor do patice programátoru a stiskneme Write PIC. Programování je v běhu a
čekáme než se procesor naprogramuje. V dolní části je zobrazen průběh programování a
informace o výsledku programování. Pokud nebyla žádná chyba vypíše se čas programovaní.
Procesor vyjmeme z patice a vyzkoušíme v zařízení.
Kontrola procesoru:
Verify provede kontrolu obsahu procesoru s načteným souborem v Bufferu. Pokud je při
programování procesoru nastavena volba Auto-Verify (automatická verifikace), není již
potřeba provádět kontrolu. Pokud je procesor chráněn proti čtení (ochrana se zapíná při
programování procesoru v pojistkách) není možné provádět dodatečnou verifikaci.
Čtení programu z procesoru:
Nastavíme typ procesoru. Vložíme procesor do patice programátoru a stiskneme Read PIC.
Provede se načtení programu z procesoru pokud není procesor chráněn proti čtení (ochrana
se zapíná při programování procesoru v pojistkách). Načtený program je možné uložit File
/ Save As.
Mazání procesoru:
Nastavíme typ procesoru. Vložíme procesor do patice programátoru a stiskneme Erase.
Provede se smazání procesoru.
Popis záložek:
Buffer - Zobrazý obsah bufferu paměti pro program a data. Po stisknutí levého tlačíta
na myši mužeme obsah paměti editovat.
HEX file - Načtený soubor se zobrazí v HEX formátu.
Source code - Pokud máme načtený soubor a stisneme tlačítko Disassemble, přeložíme
program do zdrojového kodu.
Nastavení ovládacího programu WinPic programmer - Wolfgang Buescher.
Popis:
Provedeme nastavení programu při použití obvodu 74LS06 dle následujícího obrázku. Připojíme
programátor na paralelní port počítače a zapneme napájení. Vybereme port LPT1 nebo LPT2 a
napíšeme adresu portu (378 pro LPT1 nebo 278 pro LPT2). Nastavíme typ rozhraní: Vlastní
na LPT portu, definovaný souborem a provedeme výběr souboru: Bojan Dobaj Intf P16PRO.ini
(procesory v pouzdru DIL8, 14 a 18 vývodů) nebo Bojan Dobaj Intf P16PRO40.ini (procesory v
pouzdru DIL28 a 40 vývodů), který potvrdíme tlačítkem otevřít. Nyní stiskneme tlačítko
inicializace. Pokud je správné propojení a nastavení programu, zobrazí se
Inicializace PIC-Programátoru: Hotovo.
Nastavení ovládacího programu PBrenner - Sprunt.
Popis:
Provedeme nastavení programu při použití obvodu 74LS06 dle následujícího obrázku.
Nastavení ovládacího programu IC-PROG - Bonny Gijzen.
Popis:
Provedeme nastavení programu při použití obvodu 74LS06 dle následujícího obrázku.
Nastavíme v Settings/Hardware (nebo F3) TAIT Serial Programmer, ports na LPT1 nebo
LPT2 a nastavit v Communication inverzi signálu (Data Out, Data In, Clock).
Dotazy a připomínky k této konstrukci posílejte na autora: Jaroslav Strolený.