POL
ENG

Programator ICD2 Clone

Swego czasu firma Microchip wypuściła na rynek urządzenie o nazwie ICD2 (w momencie pisania artykułu był już w sprzedaży ICD3). Jest to uniwersalny programator szeregowy ISP (ang. In System Programming - Programowanie w układzie), to znaczy, że do zaprogramowania mikrokontrolera nie trzeba go wyciągać z układu i wsadzać do programatora. Wystarczy podłączyć go do pracującego urządzenia i zaprogramować układ. Dużą zaletą tego programatora jest szeroka gama układów jakie jest w stanie zaprogramować. Oprócz możliwości zapisu i odczytu programu, posiada on również funkcję J-TAG. Umożliwia to śledzenie działania programu bezpośrednio w mikrokontrolerze. Ułatwia to pisanie i sprawdzanie (ang. debug - odrobaczanie) poprawności działania programu.


Jednak jak większość firmowych programatorów, ma jedną wielką wadę – cena. Jeszcze do niedawna kosztował ponad 660 PLN. Dlatego większość ludzi decyduje się na zbudowanie samego programatora działającym na porcie szeregowym i kosztującym do 40 PLN. Ja niestety nie mam portu szeregowego w moim laptopie. Dlatego szukałem rozwiązań na USB. To było najlepsze co udało mi się znaleźć. Okazało się, że istnieje projekt, który miał na celu sklonowanie ICD2 w warunkach domowych (ICD2 clone). Ściągnąłem potrzebne materiały ze strony i złożyłem programator. Zgodnie z którymś tam prawem elektroniki: "Jeżeli prototyp układu działa od pierwszego włączenie, to znaczy, że coś jest źle". Ten układ nie zadziałał od razu. Na początku miałem problemy z zaprogramowaniem układów wymaganych do poprawnej pracy. Udało się dzięki wytrwałości i pasji kolegi z pracy Jana (Jaśka) Dłubały. Potem, okazało się, że nie zgadzają się poziomy napięć potrzebne do zaprogramowania innych układów. Po wielu próbach udało mi się podnieść jedno z nich do właściwego poziomu. Na resztę zabrakło mi pomysłów na to, co jeszcze może być źle. Zdesperowany, udałem się do skarbnicy wiedzy (czyt. forum dla elektroników – elektroda.pl). Znalazłem wątek poświęcony temu urządzeniu. Niestety, po wyczerpaniu wszystkich pomysłów użytkowników, układ dalej nie działał poprawnie. W końcu, niespodziewanie z pomocą przyszedł mi inny kolega, Piotr Orlik. Okazało się, że ma taki działający programator własnej roboty. Dał mi namiary na kolegę, który zaprojektował płytkę w programie Eagle i oddał ją do wykonania profesjonalnej firmie. Udało mi się z nim skontaktować i zakupić u niego jedną płytkę. Jeszcze tego dnia, gdy przyszła przesyłka, układ był poskładany i uruchomiony. Tym razem zadziałał od razu, ale to dobrze, bo to już nie był prototyp :).


Trochę o konstrukcji:

Płytka przewidziana była w większości do montażu przewlekanego. Niestety, autor użył oporników w najmniejszych obudowach jakich są produkowane (przewlekane). Nie miałem takich, więc mogłem je zamówić, ale było to nie opłacalne. Innym wyjściem było użyć tych co mam ale wlutować je w pozycji stojącej (jedna nóżka dłuższa). Pech chciał, że większości oporników, które miałem, pochodziły z demontażu i miały bardzo krótkie wyprowadzenia. Musiałbym dolutowywać krótkie druciki do każdego z nich. Ostatecznie zdecydowałem się na przylutowanie elementów SMD. Obudowa największych części tego typu to 1206. Co prawda okazało się, że jest trochę za mała, ale w końcu cyna jest elastyczna. Gdy udało mi się przylutować pierwszy, to reszta poszła już gładko (efekt można zobaczyć na zdjęciach poniżej). Na płytce przewidziane jest miejsce dla dwóch gniazd programatora: typowe dla ICD2 gniazdko telefoniczne oraz rząd 6 goldpinów. Jako, że nie mam odpowiedniej zaciskarki do kabli telefonicznych to zrezygnowałem z tego gniazda i nie montowałem go. Skorzystałem z drugiej opcji, która po pewnym czasie używania wydaje mi się być lepszą alternatywą.


Efekty pracy jak i pliki wsadów dla układów programatora znajdują się poniżej.


Pliki:





Kilka zdjęć gotowego egzemplarza



Programator wykonany przez Darka.

Pewnego dnia, kolega Darek trafił na moją stronę gdzie znalazł ten właśnie artykuł. Okazało się, że jest mu potrzebny programator układów Microchipa. Ten przez swoją prostotę przypadł mu do gustu i postanowił zrobić swoją wersję. Więcej można poczytać na jego stronie (www.toconasze.strefa.pl). Poniżej prezentuje dwa zdjecia jego układu. Dla zainteresowanych dodam, że układ można kupić u Darka. Kontaktu proszę szukać na jego stronie







Problem: Invalid target device id (expected=0x21, read=0x1)

Podczas próby zaprogramowania układu PIC18f452 pojawia się następujący komunikat z niezerową wartością odczytaną read=0x1. Programator nie wykazuje podobnego zachowania przy programowaniu układów PIC16f873A.



Rozwiązanie:

Uszkodzeniu uległ jeden z buforów układu 74HC126N. Należy go wymienić.




Problem: Invalid target device id (expected=0x21, read=0x00)

Podczas próby zaprogramowania układu PIC18f452 pojawia się następujący komunikat.



Rozwiązanie:

Należy podłączyć napięcie zasilania do programowanego układu lub zamienić miejscami linie PGC i PGD



Wszelkie prawa zastrzeżone. Projekt i wykonanie strony SrcPro.pl