
ICD2 to programator i debugger do wszystkich istniejacych procesorow firmy Microchip: 8-bitowych (PIC10-PIC18), 16-bitowych (PIC24, dsPIC) oraz 32-bitowych (PIC32). Urządzenie to komunikuje sie z ukladem docelowym za pomoca interfejsu szeregowego, wykorzystujac linie MCLR (reset), PGD (dane), PGC (zegar). Wymaga tez dolaczenia zasilania i masy docelowego ukladu (wymagane do konwersji napiec, lub mozliwosc zasilania ukladu docelowego z ICD2). ICD2 jest wspierany w glownym srodowisku Microchip'a - MPLAB - dzieki czemu mozna pisac kod, programowac uklad i debugowac go w jednej aplikacji. Koszt oryginalnego urzadzenia (bez kabli) wynosi 110E.
Mozna jednak wykonac sobie samemu odpowiednik, ktory dysponuje takimi samymi mozliwosciami. W tym temacie bede pisal tylko o bardziej zaawansowanej (i bardziej kosztownej wersji) zwanej potyo2.
Glowna idea rozwinela sie na forum EDABoard w temacie, ktory liczy obecnie 56 stron. Powstaly 2 projekty - PicS oraz potyo2. Schemat, liste elementow oraz wzory plytek mozna znalezc na tej stronie, choc tutaj aktualnie znajduje sie najnowsza wersja projektu potyo2 z poprawionymi kilkoma bug'ami. Te dwa projekty roznia sie zasadniczo stopniem skomplikowania, ktory przeklada sie na kompatybilnosc. W skrocie - projekt PicS (tanszy i prostszy) pozwala (bezpiecznie) programowac i debuggowac tylko procesory zasilane napieciem 5V, natomiast projekt potyo2 (bardziej skomplikowany i rozbudowany) - wspolpracuje z ukladami zasilanymi dowolnym napieciem. O co chodzi? Trzy najnowsze rodziny procesorow Microchip'a -
PIC24F, PIC24H oraz dsPIC33 obsluguja jedynie niskie napiecia zasilania 2-3.3V. Projekt potyo2 pozwala je programowac bez zadnych obaw (na forum EDABoard sa opinie, ze projekt PicS rowniez wspolpracuje z tymi ukladami, gdyz ich wejscia programujace sa przystosowane do wiekszych napiec, jednak nie jest to sposob na 100% bezpieczny). Rowniez debugowanie ukladow z niskim napieciem zasilania (np bateryjnym) jest bezpieczniejsze dla calosci ukladu przy wykorzystaniu projektu potyo2.
Poniewaz sam wykonalem ostatnio projekt potyo2, od tego momentu bede pisal juz tylko o nim, choc wiekszosc z tego co tu napisze jest prawdziwe rowniez dla PicS'a.
Caly programator zasilany jest z portu USB - nie jest wymagane zadne napiecie zewnetrzne. Znajdujacy sie na plytce konwerter DC-DC pozwala wygenerowac (w razie potrzeby - nie wszystkie procesory tego wymagaja) wysokie napiecie (~13V), wprowadzajace procesor w tryb programowania. Znajdujace sie na plytce wazniejsze uklady to:
- procesor PIC18F4550 - odpowiadajacy za komunikacje z komputerem poprzez magistrale USB,
- procesor PIC16F877A - odpowiadajacy za obsluge procesu programowania i debuggowania,
- przetwornica impulsowa MC34063 - odpowiadajaca za generowanie wysokich napiec wprowadzajacych programowany uklad w odpowiedni tryb,
- potencjometr cyfrowy MCP41010 - pelniacy role swoistego sprzezenia zwrotnego pozwalajacego na ustawienie wlasciwej wartosci napiecia programujacego,
- bufory HCT125 oraz HC126 - zapewniajace pelna konwersje poziomow logicznych pomiedzy ICD2 a programowanym / debuggowanym ukladem,
- bufory HC4066 - pozwalajace 'odlaczyc' elektrycznie (stan Hi-Z) ICD2 w trybie programatora (wybierane zworka) od programowanego ukladu poza samym procesem programowania, dzieki czemu nie trzeba go odpinac fizycznie od ukladu, jesli na portach programujacych sa dolaczone jakies peryferia.
Zakladajac, ze glowne procesory pozyskane zostana z probek, koszt wykonania calosci szacuje na ok 40-50zl. Zakup procesorow to ok +40zl. Urzadzenie to udalo sie nam (bo kolega tez sobie zrobil) zlozyc w pol dnia, po poprawie nieodlacznych bledow (; uklad ruszyl i od tej pory dziala bezawaryjnie. Wspolpraca ze srodowiskiem MPLAB jest bezawaryjna. Oczywiscie konieczne jest wczesniejsze zaprogramowanie tych dwoch ukladow wsadami, ktore dostepne sa na podlikowanej przezemnie wczesniej stronie. Do tego celu mozna sobie zmontowac jakis pajakowaty programator na LPT, albo poprosic kogos, aby je nam zaprogramowal.
Biorac pod uwage koszty calosci oraz mozliwosci tego urzadzenia (debuggowanie!) jest to niesamowicie kuszaca alternatywa dla ukladow potrafiacych jedynie programowac wybrane uklady firmy Microchip. Samodzielne wytrawienie plytki oraz zlutowanie calosci nie jest szczegolnie problematyczne dla kogos, kto wie co to lutownica. Po prostu polecam [;
kilka fotografii calosci:



na zdjeciach widac pewne poprawki (rezystor od strony miedzi) - jeden z nich sluzy do uzyskania wartosci 0.5oma (dwa rownolegle rezystory 1om), drugi natomiast jest poprawa buga polegajacego na tym, ze programator nie zawsze odlaczal zasilanie ukladu po stosownej komendzie z aplikacji. Blad ten poprawiony jest w najnowszej wersji, my jednak wykonalismy starsza, bo o nowszej jeszcze nie wiedzielismy. Jedyna istotna roznica to wlasnie ten jeden rezystorek podciagajacy.
jesli ktos ma jakies pytania, postaram sie odpowiedziec. Po dokladne informacje odsylam jednak do:
- podlinkowanych wczesniej stron (opis ICD2, opis MPLAB'a),
- schematow urzadzenia,
- podlinkowanego tematu na forum EDABoard.
(jesli ktos nie zna angielskiego, to przykro mi, czas sie nauczyc)
0x41 0x56 0x45!!
Cool? Ranking DIY