REKLAMA

PK2DFEv1.0.0.6.zip

Prosty klon PICKIT2 (programator PIC na USB) z łatwo dostępnych elementów

http://obrazki.elektroda.pl/8193249900_1464448107_thumb.jpg Zdjęcie przedstawia mój klon PICKIT2 podłączony przewodami ICSP do mojej płytki developerskiej USB na PIC18F4550. Płytka na zdjęciu może się lekko różnić od opublikowanego PCB ponieważ przed publikacją jeszcze go poprawiałem. Witajcie moi drodzy Dziś chciałbym pokazać Wam mój projekt, który pozwolił mi tanio rozpocząc przygodę z mikrokontrolerami PIC. Jest to niezwykle prosty do wykonania klon programatora PICKIT2, zbudowany z łatwo dostępnych elementów (zbędne układy są pominięte, natomiast MOSFETy są zastąpione tranzystorami z rodziny BC*). Jego koszt ogranicza się w zasadzie do kosztu mikroprocesora PIC18F2550, ponieważ pozostałe elementy można nawet wyciągnąć ze złomu elektronicznego, a całość jest na tyle prosta, że można ją nawet zlutować na wierconej płytce prototypowej. Parę słów o oryginalnym PICKIT2 PICKIT2 to programator na USB dla mikrokontrolerów PIC od Microchipa. Oficjalnie przestał być wspierany w 2009 roku, kiedy to pojawił się PICKIT3, ale nieoficjanie dalej jest rozwijany przez hobbystów i w większości przypadków radzi sobie równie dobrze jak jego nowszy i droższy odpowiednik. Wraz z nieoficjalnymi aktualizacjami pozwala zaprogramować zdecydowaną większość układów od Microchipa, a nawet nowsze procesory z rodzin PIC32MX i PIC32MZ. Ponadto jego samodzielne wykonanie jest znacznie prostsze, ponieważ bazuje on na mikroprocesorze PIC18F2550 dostępnym w obudowie DIP, w przeciwieństwie do PICKIT3a, którego sercem jest PIC24FJ256GB106, niestety dla hobbystów dostępny tylko w obudowach pokroju TQFP. Schemat PICKIT2 od Microchipa wygląda następująco: http://obrazki.elektroda.pl/7192522500_1464385026_thumb.jpg http://obrazki.elektroda.pl/4139213400_1464385029_thumb.jpg Źródło: dokumentacja Microchipa. Jak widzimy, PICKIT2 składa się z nastepujących częsci: - układ zasilania VDD - generuje na wyjściu ICSP napięcie zasilania PICa, w zależności od rodziny jest to z reguły 5V bądź 3.3V, ale można ustawić inne napięcie. - uklad napięcia VPP - generuje napięcia do 12V które potrzebne są do wprowadzenia programowanego PICa w tryb programowania HVP (High Voltage Programming). PICe oferują również opcję LVP (Low Voltage Programming), ale jest ona znacznie rzadziej używana. - układ pamięci EEPROM - wykorzystywany jest jedynie do możliwości programowania układu bez podłączenia PICKIT2 do USB, tzn. PICKIT2 może zapamiętać wsad a potem programować PICe tym właśnie zapamiętanym wsadem. Natomiast schemat mojego klona PICKIT2a jest znacznie prostszy: http://obrazki.elektroda.pl/5350656300_1464540530_thumb.jpg Całość jest uproszczona najbardziej jak się dało aby nie stracić przy tym funkcjonalności programowania wszystkich układów. Co zostało zmienione: - układ zasilania VDD - został usunięty, mój klon PICKIT2 jest przeznaczony głównie do programowania ICSP i na wyjściu VDD zawsze ma 5V z USB. Oczywiście i tak można nim programować PICe na napięcie 3.3V, ale w tym celu należy zasilić je z osobnego źródła 3.3V (np. poprzez dodatkowy stabilizator LDO). Również należy sprawdzić, czy dany układ ma 5V-tolerant pins, bo jeśli nie to trzeba również przenieść sygnały PGD/PGC z poziomu 5V na 3.3V. W ten sposób programowałem moim klonem nawet niektóre układy z rodziny PIC32 i PIC24. - układ napięcia VPP - został uproszczony, tak aby korzystać z ogólnodostepnych tranzystorów z rodziny BC*. - układ pamięci EEPROM - został pominięty, w żaden sposób nie wpływa on na normalną pracę PICKITa. Uprzedzając pytania - ani mój klon, ani oryginalny PICKIT2 nie ma rezystora na pinie RESET (MCLR, pin 1), ponieważ jest on sprzętowo wyłączony. To nie jest błąd, schemat podany wyżej jest kompletny. Spis elementów: R1 - 10k (dzielnik napięcia, z rzeczywistego VDD równego 5V robi 3.4V tylko po to by oszukać soft PICKITa i pozornie ustawić VDD na 3.4V) R2 - 22k (dzielnik napięcia, z rzeczywistego VDD równego 5V robi 3.4V tylko po to by oszukać soft PICKITa i pozornie ustawić VDD na 3.4V) R3 - 10k R4 - 10 R5 - 10k R6 - 4k7 (dzielnik napięcia dla pomiaru uzyskanego VPP) R7 - 470 (rezystor dla diody LED) R8 - 2k7 (dzielnik napięcia dla pomiaru uzyskanego VPP) R10 - 100 R11 - 10k R12 - 10k R13 - 470 (rezystor dla diody LED) L1 - 680uH (lub zbliżona) C1 - 22pF (można by pominąć, ale bez niech PICKIT2 może działać niestabilnie) C2 - 22pF (można by pominąć, ale bez niech PICKIT2 może działać niestabilnie) C3 - 220nF do 2.2uF (wartość można dobrać zgodnie z datasheetem PIC18F2550, V-USB capacitor) C4 - 47uF C5 - 30uF (musi być na conajmniej 25V) C6 - 220uF lub podobny, do filtracji zasilania C7 - 100nF ceramiczny odsprzęganie zasilania C8 - 100nF ceramiczny odsprzęganie zasilania C9 - 100nF ceramiczny odsprzęganie zasilania D1 - 1N4148 Q1 - 20MHz Q2 - BC557 lub podobny T1 - BC547 lub podobny T2 - BC547 lub podobny T3 - BC547 lub podobny IC1 - PIC18F2550 (najlepiej w podstawce DIP) LED1 - czerwona dioda LED "Action" LED2 - zielona dioda LED "Power" X1 - złącze USB typu B, ale od biedy można nawet wykorzystać ucięty kabelek od myszki. JP1 - wyjście ICSP do programowania, zgodne z PICKITem z tą różnicą że pin 6 został pominięty i nie jest obsługiwany Jeśli chodzi o koszt, to zasadniczo można go ograniczyć do kosztu procesora. Pozostałe elementy są ogólnie dostepne, odpowiednie tranzystory można nawet wylutować ze sprzętu RTV. Jeśli nie chcemy trawić własnej płytki, to całość można wykonać na gotowej, wierconej płytce (tak robiłem swój prototyp, zanim jeszcze ogarnąłem termotransfer). Myślę, że bez problemu można koszt całości zamknąć w 20 zł. Moje PCB Własną płytkę zaprojektowałem w Eagle tak, by łatwo było ją samodzielnie wykonać w domu. Ścieżki są grube i wychodzą bez trudu nawet gdy użyje się starodawnej metody termotransferu. Rezystory od dzielników napięcia proszę lutować dość ostrożnie, bo tam na PCB jest ciasno i można się pomylić. http://obrazki.elektroda.pl/9866609700_1464419353_thumb.jpg Wgranie bootloadera Zasadniczo to jest najbardziej problematyczna kwestia. Aby wykonać ten programator PIC, należy mieć programator PIC, by wgrać wsad na PIC18F2550! Ja użyłem prostego JDMa na RS232, ale równie dobrze może to być Brenner lub inny PICKIT. Jeśli ktoś nie ma dostępu do programtora, a chce złożyć ten klon, to ja również mogę pomóc, mam chyba jeszcze jednego zaprogramowanego PICa pod ten układ. Użyty przeze mnie bootloader to PK2V023200.hex. Pierwsze uruchomienie Windows powinien od razu wykryć i zainstalować programator. Na Linuxie nie sprawdzałem, ale z tego co wiem to też jest wspierany. http://obrazki.elektroda.pl/5894406300_1464419862_thumb.jpg http://obrazki.elektroda.pl/4330911400_1464419863_thumb.jpg Po zainstalowaniu się sterowników możemy odpalić interfejs graficzny PICKITa. Proszę zwrócić uwagę na to, że VDD jest zawsze pokazywane jako 3.4V - jest to ustawione na sztywno poprzez dzielnik napięcia na rezystorach, ponieważ w moim klonie rzeczywisty układ VDD został pominięty. http://obrazki.elektroda.pl/2610026500_1464420099_thumb.jpg Potem warto wykonać Troubleshoot, aby sprawdzić czy poprawnie złożyliśmy całość. http://obrazki.elektroda.pl/5619596400_1464420157_thumb.jpg Zaczynamy testowanie, klikamy Next. http://obrazki.elektroda.pl/4491371000_1464420194_thumb.jpg Tutaj nie mamy nic do zrobienia - VDD jest na sztywno i ten komunikat jest poprawny. Klikamy Next. http://obrazki.elektroda.pl/8032768200_1464420195_thumb.jpg Tutaj klikamy Test VPP. http://obrazki.elektroda.pl/4637243300_1464420245_thumb.jpg Powinno wynosić około 12V. Również sprawdzamy te napięcie multimetrem na wyjściu ICSP. Na koniec sprawdzamy też sygnały PGD i PGC: http://obrazki.elektroda.pl/4499165400_1464420353_thumb.jpg Jeśli wszystko działa zgodnie z opisem to PICKIT2 jest gotowy do użytku. Jeśli nie, to należy sprawdzić płytke pod kątem uszkodzonym elementów, zimnych lutów itp. Można również spróbować dobrać lepszy induktor. Te 680uH nie jest wartością krytyczną, ale rzeczywista wartość powinna być do niej w miarę zbliżona. Tak wygląda nasz programator w akcji: http://obrazki.elektroda.pl/2842918400_1464420600_thumb.jpg PICkit2 Devicefile Editor Myślę, że w tym temacie wypada wspomnieć również o narzędziu takim jak PICkit2 Device File Editor. Pozwala ono modyfikować i rozszerzać plik Devices.dat który zawiera informacje i skrypty wsparcia procesorów kompatybilnych z PICKITem. Wiele nowszych procków zostało w ten sposób dodanych do PICKIT2a a zmodyfikowane pliki Devices.dat są dostępne za darmo w sieci. http://obrazki.elektroda.pl/3710447000_1464351992_thumb.jpg Strona domowa PICkit2 Device File Editor'a: https://sites.google.com/site/pk2devicefileeditor/ Wątek poświęcony mu na forum Microchipa: http://www.microchip.com/forums/m473925-p3.aspx Dalszy plan rozwoju Teraz planuję przeprojektowanie w pełni płytki i wykonanie tego programatora w pełni w wersji SMD. Podsumowanie Z mojego uproszczonego PICKIT2a jestem bardzo zadowolony. Posiadam również programatory typu Brenner, ale one mają problemy z działaniem na nowszych systemach, natomiast PICKIT2 chodzi bez potrzeby instalowania dodatkowych sterowników (sprawdzałem na Windows XP, Windows 7 i Windows 8.1). Ten programator jest nie do zdarcia i szczerze polecam go każdemu, kto chce choć trochę zająć sie PICami. Zawsze to lepiej samemu coś wytrawić niż kupować gotowca od chińczyków. Załączniki - użyty przeze mnie wsad .hex PICKIT2 - zzipowany mój folder softu PICKIT2 - projekt Eagla (schemat+wzór ścieżek) - pdf ścieżek gotowy do wydruku - PICkit2 Devicefile Editor - PICKIT2 Users Guide od Microchipa - pełna instalka PICKIT2a od Microchipa


Pobierz plik - link do postu
  • PK2DFEv1.0.0.6.zip
    • PICkit2 Device File Editor.exe