ISP programátor pro procesory rodiny ATMEL

Jedná se o jeden z prvních článků, které byly na webu Mongi, ale z důvodů zájmu o starší články, jsem jej našel v archivu a znovu zveřejnil. Postupně se pokusím přidat další, nicméně některé jsou navždy ztraceny a budu je muset znova napsat.

Důvod vzniku následující úpravy výborné a spolehlivé konstrukce programátoru Biprog byl ten, že jsem při ladění programu byl líný se stále přepínat mezi dvěma programy. Používal jsem sice osvědčený programátor Aprog, ale jeho nevýhodou bylo že neuměl kounikovat s prostředím AVR Studia. Proto jsem na internetu začal s hledáním vhodné konstrukce programátoru, která umožňuje zároveň komunikaci přímo s AVR Studiem a zároveň podoporuje USB port. Při výběru mi docela dobře pomohl článek zveřejněný na stránkách robotika.cz kde je zajímavý popis možných programátorů. Ze zmiňovaných konstrukcí mě zaujala právě konstrukce ing. Luboše RÜCKLA, kterou jsem se po prostudování rozhodl upravit a zjednodušit podle mých představ a potřeb.

Smotná konstrukce je velmi jednoduchá a hlavně spolehlivá, a až na mé drobné chybičky zaviněné netrpělivostí a zbrklostí, jsem programátor oživil téměř na první pokus. Základní informace najdete na WEBu autora konstrukce ing. Luboše RÜCKLA, kterému děkuji za pomoc při oživování. Na výše uvedeném WEBu najdete i veškeré soubory s programem pro procesor programátoru, do těchto souborů jsem nezasashoval protože předmětem této úpravy byla optimalizace plošného spoje, rozhraní, rozměrů a výstupních konektorů pro mé potřeby.Toliko pro úvod a přejděme k úpravám konstrukce. Abych neztrácel čas popisováním celé konstrukce, která je dokonale popsána na autorových stránkách, budu popisovat pouze odlišnosti od autorova návrhu. Základem mi byla verze HW 1.0 a proto pokud budu zmiňovat názvy součástek, budou se proto vztahovat k této verzi (pokud nebude upřesněno jinak).

Mé požadavky na úpravu byly následující:

  • rozhraní USB pro komunikaci s PC
  • rozměry do krabičky KPDO2 (61x32x13)
  • 6ti pólový konetor se zámkem pro rozhraní programátor-procesor
  • možnost programovat s připojeným externím napětím i bez něj
  • snížení počtu indikačních LED

Pro komunikaci přes USB rozhraní jsem použil již osvědčený převodník FT232RL. S tímto jednoduchým převodníkem USB/RS232 jsem neměl nikdy problémy a proto padla volba opět na něj. Další nespornou výhodou je minimální potřeba dalších externích součástek a možnost práce i na 3,3V (bude zmíněno dále). Úprava spočívala v náhradě rozhraní realizovaného tranzistory tímto integrovaným obvodem, což nepochybně zvládne každý konstruktér bez větších problémů. Možbá bych se zmínil k použitému konektrou, protože je zde použit SMD MiniUSB konektor a to navíc nestandartně ze strany spojů. Toto řešení je opravdu velice netradiční, ale účelné.Upevnění konektoru je provedeno připájením pomocí tenkých drátů (můžou být i zvonkové), kdy přes konektor je opásán tento drát a je připájen na pouzdro konektoru a do tištěného spoje skrz vyvrtané díry (jsou to ty největší pájecí body u USB konektoru). Poté jsou propojeny jednotlivé piny tohoto konektoru pomocí drátku z tenkého lankového vodiče (použil jsem jeden drátek z žíly plochého kabelu) k pájecím bodům na tištěném spoji. Další možnost je připájení zkráceného USB kabelu přímo na pájecé body určené pro propojení konektoru (ustřihnete USB kabelu od tiskárny koncovku B tj. ta čtverhranná). Toto řešení mi ale nevyhovovalo, proto používám MiniUSB konektor.

Pro minimalizaci rozměrů byla zvolena krabička od dálkového ovládání KPDO (hlavně proto, že jsem již měl do této krabičky upraven výše zmiňovaný programátor APROG). Z tohoto důvodu jsem použil téměř všechny součástky v SMD provedení, vypustil konektory JP2 a JP3, programovatelné tlačítko SW1 a některé indikační LED. Zejména to byly LED2 a LED3 protože požívám tento programátor výhradně pro AVR procesory a dále jsem vypustil i LED5, která indikovala stav IDLE, neboť fungovala inverzně k LED4, která indikuje stav programování. Z výše uvedeného vyplývá, že jsem zamýšlel osadit LED1, LED4 a LED6 z čehož jsem nakonec osadil pouze LED4, protože jsem se nakonec rozhodl nevyužívat funkce BOOTLOADERU a navíc jsem informaci o čekání považoval ze svého hlediska za redundantní.

Další změnou bylo použití šestipinového konektoru se zámkem pro připojení programovaného procesoru. Důvod jsem již zmiňoval výše a právě proto, že jsem měl již hotové propojovací kablíky a redukce pro programování dříve konstruovaných aplikací.Tento konektor ve zlacené úpravě je spolehlivý a dostatečně odolný i vůči hrubému zacházení, takže proč jej nepoužít a navíc do krabičky rozměrově zapadá a to zejména výškově. Na tento konektor jsou vyvedeny všechny potřebné programovací signály RESET, SCK, MISO, MOSI a napájení +5V a GND což pro 95% aplikací naprosto vyhovuje.

Snad poslední změnou byla úprava pro možnost použití programátoru jsk s externím napájením, tak i bez tohoto napájení a to bez nutnosti připojování či odpojování napájenípomocí Jumperu či přepínače. Tato úprava je velice snadná a spočívá v zabránění zpětnému napájení do USB konetoru pokud je připojen externí zdroj. Toto je zabezpečeno schotkyho doidou v mém schématu ozbnačena D, která zabrání zpětnému napájení USB rozhraní. Pokud je napětí na straně procesoru vyšší nebo rovno napětí rozhraní USB, je dioda pólovaná v závěrném směru a tudíž nemůže téct směrem do PC proud. V opačném případě, tzn. že na straně procesoru je napětí nižší než 5V-UD je dioda pólovaná v propustném směru a USB rozhraní se chová automaticky jako zdroj pro procesor.

!! POZOR !!

V případě programování konstrukcí napájených napětím nižším než je 5V je nutné odstranit diodu D1 protože jinak, jak již bylo zmíněno, by se programátor automaticky choval jako zdroj napětí 5V a aplikace by to s největší pravděpodobností nemusela přežít (a možná i dioda D1)

 

biprog sch
Obr.1 Schéma upraveného programátoru

 

biprog brd
biprog brd btm
biprog brd top
Obr. 2 - 4 Deska DPS a osazovací plány strana spojů a strana součástek

 

 

biprog01 biprog02
biprog06 biprog04
biprog08