# JDM PIC programátor

#### V článku najdete popis univerzálního programátoru PIC. Umožňuje programovat obvody PIC12C5XX, 12C67X, 16C55X, 16C61, 16C62X, 16C71, 16C71X, 16C8X, 16F8X, sériové paměti EEPROM 24CXX. Dále umožňuje programovat mikrokontroléry přímo v zapojení (ICSP) a s adaptérem i další sériově programovatelné součástky, např. karty ISO.

Programátorů PIC lze na Internetu najít velké množství, jsou to však varianty několika málo zapojení. Jednoduchostí vynikají zejména programátory připojované k sériovému portu COM. Při hledání padla moje volba na programátor JDM.

Obr. 1. Programátor Easy-PIC

Nejjednodušší programátor PIC je opravdu velmi jednoduchý. Jak je patrné z obrázku, k jeho sestavení postačí kabel, objímka pro IO, rezistor 100 ohmů a zdroj napětí přibližně 5 V. Programátor není k programovanému obvodu příliš šetrný. K omezení napětí se používají vnitřní záchytné diody a napájecí zdroj. Podle poznámek v diskuzích je také jeho funkce dosti nespolehlivá. O něco složitější programátor již nepotřebuje externí napájecí zdroj. Společným neduhem obou uvedených zapojení je nedostatečné napětí Vpp, které je získáno přímo ze sériového portu COM. Obvody portu se napájejí napětím ±12 V ze zdroje PC, u notebooků jen zdvojeným napětím 5 V. Signály portu proto mohou mít napětí maximálně ±11,5; resp. ±9,5 V. To je o dost méně, než je potřebných 13 V.

Obr. 2. Programátor LUDIPIPO

Uvedený problém je elegantně vyřešen v programátoru JDM. Programovaný IO je i zde napájen přímo ze sériového portu, avšak jeho kladné napájecí napětí Vdd je spojeno se zemí PC. Napájecí napětí Vss je nyní -5 V a je i zde získáno se signálů portu. Programovací napětí Vpp teď už není vztaženo k zemi (GND), ale k napájecímu napětí Vss. Pro správnou funkci programátoru nyní stačí výstupní napětí portu ±8 V.

Obr. 3. Programátor JDM

Zapojení programátoru JDM je na obrázku, číslování součástek je shodné s originálním zapojením. Programátor se mírně zkomplikoval, protože signál RTS slouží jako zdroj taktovacích impulsů pro programovaný IO a současně jako zdroj napájecího napětí –5 V. Napětí z tohoto vodiče je omezeno a stabilizováno diodami D2 až D4. Kondenzátor C3 slouží jako zdroj napájecího napětí v době impulsu na vývodu RTS. Programovací napětí je omezeno diodou D6 na asi 8 V (tj. 13 V proti Vss). Některé varianty tohoto programátoru používají Zenerovu diodu D6 s napětím jen 6,2 V v sérii s LED, která při programování svítí. Jako zdroj napájecího napětí je využit i signál TxD. Tranzistor Q1 pracuje jako spínač, tranzistor Q2 jako obousměrný převodník napěťových úrovní.

Pro naprogramování IO je důležitých pouze pět vodičů: napájecí napětí Vdd a Vss, programovací napětí Vpp přivedené na vývod MCLR, signál clock, přivedený na vývod RB6 a signál data přivedený na vývod RB7. Tyto signály jsou vyvedeny na konektor ICSP a umožňují naprogramovat obvod přímo v zapojení (In Circuit Serial Programmining) nebo s adaptérem programovat další typy sériově programovatelných obvodů. Signály na ostatních vývodech mikrokontroléru jsou ignorovány. To umožnilo zapojit objímku pro IO tak, aby do ní bylo možno zasunout i procesory s osmi vývody a sériové paměti EEPROM.

Obr. 4. Deska s plošnými spoji programátoru.

Obr. 5. Rozmístění součástek programátoru

Originální deska s plošnými spoji je navržena na konektor CANNON s 25 vývody. Protože na nových počítačích je už jen konektor z devíti vývody, navrhl jsem desku pro tento konektor. Desku programátoru můžete zasunout přímo do konektoru portu (nepraktické) nebo použít prodlužovací kabel. Ani toto řešení není šťastné, protože prodlužovací kabel je tuhý. Nakonec jsem konektor z desky vypájel a k propojení s PC použil tenký kablík, na jednom konci připájený přímo do desky programátoru, na druhém opatřený konektorem. Kablík jsem získal ze staré myši. Myš musí být opravdu stará, všechny novější mají přívod jen čtyřžilový. Kablík je nutné zkontrolovat, myš mohla být nefunkční pro přelámané žíly v kabelu. Pro občasné programování vyhoví obyčejná objímka, objímka s nulovou zasouvací silou by byla dražší než několik programátorů. Podle mých zkušeností vydrží obyčejná objímka často více zasunutí IO než objímka precizní.

Obr. 6. Programátor s konektorem

Obr. 7. Programátor s kabelem

### Ovládací program

Ovládací program IC-Prog je volně dostupný můžete si ho stáhnout v sekci download. Umožňuje načíst data k programování ze souborů v několika formátech, číst, mazat a zapisovat program do mikrokontroléru, editovat data a nastavit typ oscilátoru a příslušné „pojistky“. Při prvním spuštění je nutno zvolit typ programátoru (JDM, hned první položka). V operačním systému Windows XP nebude program fungovat bez dalšího nastavení. V půzkumníku vyhledejte soubor icprog.exe. Použijte pravé tlačítko myši a zvolte Vlastnosti a dále v menu Kompatibilita „Spustit v režimu kompatibility s“ Windows 2000 nebo 98/Me. Stiskněte Ok. Do stejného adresáře s programem icprog.exe nahrajte soubor icprog.sys. Po spuštění icprog.exe zvolte menu Settings, Option, Misc a zaškrtněte volbu „Enable NT/2000/XP driver“. Soubor icprog.sys si stáhnete stejně jako program v sekci download pod názvem NT/2000 driver. Mně programátor funguje pod Windows XP i bez driveru a nastavení kompatibity. Po spuštění ovládacího programu jsem v menu Settings, Hardware zvolil místo „Direct I/O“ položku „Windows API“.

Autor: Jaroslav Belza

Za případné újmy na zdraví nebo majetku způsobené elektrickým proudem neberu žádnou zodpovědnost.