Programátor procesorů PIC

17. 4. 2005

   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.

Foto programátoru

Foto programátoru

Foto programátoru Foto programátoru

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

   Pro procesory, které jsou uvedeny v následující tabulce musí být zajišteno během programování připojení vývodu LVP (Low Voltage Programming) na zem pomocí pulldown odporu (cca 1K - 10K). Odpory jsou doplněny k vývodům na patici. Přepínač XJ2 v poloze 1-2 je pro programování procesoru PIC16F87x, kdy je zakončen vývod RB3 odporem na zem. V poloze 1-3 programuje procesory které mají 8-vývodů např. PIC12F629. Pro procesory s 18-ti vývody je nastavení přepínače do libovolné polohy. Zapojení je doplněno o dvě červené LED diody signalizující napětí +13V na procesoru. Diody se rozsvítí podle typu programovaného procesoru.

ICSP kabel 24CXX

Pozice procesorů

   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).

Schéma
Plošný spoj

Rozpiska součástek:

 pořadí    ks    označení           typ
________________________________________________________________

    1       1    D1                 B380C1000DIL (227-011, usměrnovací můstek)
    2       1    IO1                78L05    (330-011, stabilizátor)
    3       1    IO2                78L08    (330-013, stabilizátor)
    4       1    IC1                74LS06 (74LS07 jiné nastavení programu)
    5       3    T1,T2,T3           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    X1                 konektor (801-017, CANON25 do plošného spoje - kolíky)
   22       2    XJ1,XJ2            S1G20    (832-017, lámací lišta - kolíky)
   23       1    ICSP (1x5pin)      S1G20S   (832-090, lámací lišta - kolíky)
   24       2                       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ávorce je objednací kod součástky obchodu GMe.

Krabičku U-KP24 prodává firma Krabičky - Antonín Anatasovský.

Soubory ke stažení:

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.

čára

Obrázek

Napájení programátoru z USB konektoru počítače:

   Pokud nechceme použít sítový adaptér je možné použít pro napájení USB port počítače. Na krajních vývodech USB konektoru je 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 správně, rozsvítí se zelená LED dioda.

Osadíme součástky na plošný spoj a zaletujeme 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 trochu natřeme lepidlem a připevníme dno. Doporučuji dát málo lepidla jinak krabičku neotevřeme bez porušení okrajů!


Schéma

Plošný spoj Obrázek

Konektor USB

Rozpiska součástek:

 pořadí    ks    označení           typ
________________________________________________________________

    1       1    IC1                MC34063  (330-104)
    2       1    D1                 1N5819   (223-001)
    3       1    D2                 LED dioda zelená 3mm (2mA)
    4       1    R1                 0,5R (2x1R 0,25W)
    5       1    R2                 180R     0,25W
    6       1    R3                 1K0      0,25W
    7       1    R4                 15K      0,25W
    8       1    R5                 3K3      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)

V závorce je objednací kod součástky obchodu GMe.
Cena součástek je cca 75,- Kč (výpočet ceny v roce 2006).

Krabičku U-KM1 prodává firma Krabičky - Antonín Anatasovský.

Soubory ke stažení:

  • Schéma a plošný spoj - Měnič USB pro program EAGLE v 5.11.

čára

Nastavení ovládacího programu - WinPic800.

Vyzkoušeno pod Windows XP a Windows 7 (Windows 8.1 zatím nevyzkoušeno).

V programátoru je osazen obvod 74LS06. Provedeme nastavení programu podle následujícího obrázku.
V záložce "Nastavení / Hardware" vybereme "GTP-04", nastavíme LPT port a stiskneme tlačítko potvrdit.

Nastaveni programatoru

Test programátoru:
Na obrázku vlevo dole vedle bubliny i stiskneme ikonu zatržítko a přepneme zobrazení na okno I/O Bity na port. Na této záložce vyzkoušíme správnou funkci programátoru. V pravo nahoře zrušíme zatržítko "Blokování konfigurace" na ruční nastavení. Ve sloupci "TEST" zatrhneme jednotlivé zatržítka a kontrolujeme správné rozsvícení LED diody na programátoru. Po vyzkoušení zatržítka vrátíme zpátky.

15.4.2011 - Do programu nabízím volně ke stažení opravený překlad češtiny WinPic800 cz. Po stažení rozbalte soubor s češtinou a umístěte Czech_doveda.ini do adresáře c:\Program Files\WinPic800\Languages\. Původní soubor s češtinou ponecháme. Spustíme program a v záložce "Jazyk" vybereme "Czech_doveda".


Nastavení ovládacího programu - WinPic programmer (Wolfgang Buescher).

Vyzkoušeno pod Windows XP a Windows 7 (Windows 8.1 zatím nevyzkoušeno).

Nastavení spuštění pro Windows 7:
Myší najet na ikonu programu na ploše a stisknout pravé tlačítko, vybrat vlastnosti. Přepnout na záložku kompatibilita a zaškrtnout "Tento program spustit v režimu kompatibility pro: Windows XP (SP3)" a potvrdit OK. Spustit program.

V programátoru je osazen obvod 74LS06. Provedeme nastavení programu podle 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 zapíšeme adresu portu (378 pro LPT1 nebo 278 pro LPT2). Nastavíme typ rozhraní: Vlastní na LPT portu, definovaný souborem a nastavíme Vlastní rozhraní ze souboru: výběrem 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ů). Potvrdíme tlačítkem otevřít. Nyní stiskneme tlačítko Inicializace ! Pokud je správné propojení a nastavení programu, na spodním řádku se zobrazí Inicializace PIC-Programátoru: Hotovo.

Nastaveni programatoru Nastaveni programatoru

Test programátoru:
Na této záložce vyzkoušíme správnou funkci programátoru. Pod popisem "Test Rozhraní" zatrhneme jednotlivé napětí a zkontrolujeme správné rozsvícení LED diody na programátoru.

9.4.2015 - Do programu nabízím volně ke stažení poslední opravený překlad češtiny WinPicProg cz je pro verzi "24 mar 2013" (verzi programu zjistíte Help / About). Autor vylepšuje program a pro novější verze nemusí být vše přeloženo. Po stažení rozbalte soubor s češtinou a umístěte do adresáře c:\Program Files\WinPic\translations\. Spustíme program a v záložce "Options" je volba "Select Language" (vybraný jazyk) vybereme Czech. Doporučuji program ukončit a znovu spustit, aby došlo k načtení češtiny do všech oken programu.


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 nebo Port I/O Driver 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.

Options
Nastavení programátoru.
V horní lište vybereme položku Options kde jsou další položky.

  • Find Port - Najde programátor na paralelním LPT portu.
  • Hardware - Nastavení programátoru.
  • Auto-Detect - Automaticky hledá programátor.
  • Auto-verify - Po naprogramování se provede verifikace
  • Auto-update - ?
  • 640x480 - Přizpůsobení programu pro jiné rozlišení monitoru.


   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).

Hardware settings

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.

  • Vdd - napájecí napětí +5V pro procesor. Při On svítí žlutá LED dioda a je napětí na patici pinu č. 3, 25 a 32.
  • Vpp - programovací napětí +13V pro procesor. Při On svítí spodní červená LED dioda a je napětí na patici pinu č. 6 a 15.
  • Vpp40 - programovací napětí +13V pro procesor. Při On svítí horní červená LED dioda a je napětí na patici pinu č. 1.
  • Output - data pro procesor. Při High je napětí +5V (ve sloupci Input se mění popis tlačítka High/Low) na patici pinu č. 24, 37, 40.
  • Clock - clock pro procesor. Při High je napětí +5V na patici pinu č. 23, 36, 39 (pin č. 36 podle nastavení jumpru XJ2).

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.

File

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.

WinPicProg

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 - PBrenner (Sprunt).

Popis:
Provedeme nastavení programu při použití obvodu 74LS06 dle následujícího obrázku.

Nastaveni programatoru


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).

Nastaveni programatoru

Při spuštěni programu ve Win XP se zobrazí v okně hlášení "Privileged instruction". Hlášení odstraníme stáhnutím ovladače icprog_driver.zip, rozbalíme a nakopírujeme do adresáře programu IC-prog. Spustíme program a zapneme ovladač v nastavení Settings -> Options -> Misc Enable NT/200/XPDriver.

Nastaveni programatoru

Dotazy a připomínky posílejte na autora konstrukce: Jaroslav Strolený, email: doveda@seznam.cz.