Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

klon ICD2 - programatora / debuggera procesorów PIC, dsPIC

Freddie Chopin 29 Jan 2008 21:58 46443 156
Altium Designer Computer Controls
  • klon ICD2 - programatora / debuggera procesorów PIC, dsPIC

    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:
    klon ICD2 - programatora / debuggera procesorów PIC, dsPIC klon ICD2 - programatora / debuggera procesorów PIC, dsPIC klon ICD2 - programatora / debuggera procesorów PIC, dsPIC

    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
    About Author
    Freddie Chopin
    MCUs specialist
    Offline 
    Has specialization in: arm cortex-m
    Freddie Chopin wrote 13336 posts with rating 860, helped 1711 times. Live in city Zawiercie. Been with us since 2005 year.
  • Altium Designer Computer Controls
  • #2
    hemol
    Level 12  
    Ciekawy projekt, alternatywa dla kosztownych firmowych programatorów, na które nie wszyscy mogą sobie pozwolić. Jaka metodą robiłeś płytkę. Czy można te procesory zaprogramować programatorem PICkit 2??
  • #3
    Freddie Chopin
    MCUs specialist
    plytke robilem termotransferem (papier kredowy, wytrawiacz B327) - wyszla od pierwszego razu, bo skala sciezek jest lekka i przyjemna. na oko sie malo dokladnie ocenia, ale obstawiam, ze sciezki maja 20milsow, a najmniejszy odstep jaki znajduje sie na plytce ok 15. nie ma tam zadnych extrem typu 2-3 sciezki miedzy nozkami scalakow [; . za to jest chyba 30 zworek, ktorych montowanie jest naprawde irytujace [; .

    pomimo zachowania uwagi w jednym miejscu sciezka sie troche przetrawila, dlatego jest poprawiona cyna (na zdjeciu sciezek - u gory po srodku, lekko na prawo, pozioma sciezka)

    procesory ktore siedza w ukladzie mozesz zaprogramowac dowolnym programatorem w zasadzie - sa to bardzo popularne uklady, wiec 99% programatow je obsluzy. ja osobiscie programowalem je wlasnie PICkitem 2 - podlutowalem sie pod spod plytki w tym celu i w jednej podstawce zaprogramowalem obydwa.

    0x41 0x56 0x45!!
  • #4
    ghost666
    Translator, editor
    Hm... Przydałoby się mi coś takiego. Dokumentacja widze jest, moze napisz coś o montażu i uruchamianiu - jakie wrażenia, jakieś kłopoty?
  • Altium Designer Computer Controls
  • #5
    dex
    Level 27  
    Czy jest opcja update-u firmware via USB? Czy znalazłeś pod to jakąś obudowę? Jaką przewage ma ten prog np od tych które są na aelegro za ok 150zł -tamte tez niby piszą obsługuja procki nawet od 1.8V ?
  • #6
    hemol
    Level 12  
    Czy, jeżeli mam programator PICkit 2, to opłaca mi sie robić programator przedstawiony w tym temacie do własnego użytku??
  • #7
    K_o_n_r_a_d
    Level 23  
    hemol wrote:
    Czy, jeżeli mam programator PICkit 2, to opłaca mi sie robić programator przedstawiony w tym temacie do własnego użytku??

    PicKit2 nie potrafi debuggować wszystkich uK, które potrafi ICD2.
    Tutaj jest lista, po lewej programowane przez PicKita2 a po prawej debuggowane.
    http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en027813
    Z 16bitowych potrafi debuggowac tylko rodzinę PIC24F, nie potrafi PIC24H i dsPIC, ale programuje wszystkie z każdej rodziny Microchipa.
  • #8
    Freddie Chopin
    MCUs specialist
    ghost666 wrote:
    napisz coś o montażu i uruchamianiu - jakie wrażenia, jakieś kłopoty?

    zmontowanie nie jest zbyt trudne - znajac podstawowe zasady skladania czegos takiego i robiac to z glowa nie ma z tym zadnych problemow. problemy oczywiscie sie pojawily - i mnie i kumplowi. moj problem wynikal z tego, ze jak najszybciej chcialem go sprawdzic, wiec przylutowalem jakis kabel sieciowy na pajaka pod plytka (w miejscu wyprowadzen) i do tego dolaczalem posiadana przezemnie mini-makietke. pomimo z niby kable dobrze przylutowane - nie chcialo dzialac. jednak nie byly do konca dobrze przylutowane [; po ktorejs tam poprawce tych kabli ruszylo, na prawidlowym kablu w zlaczu ruszylo od razu. problem kolegi byl tej natury, ze pocynowal cala plytke, przez co przez pol dnia nie zauwazylismy, ze jeden z rezystorow (istotnych) byl nie przylutowany z jednej strony [; . po przylutowaniu (i poprawieniu kilku innych bledow konstrukcyjnych z jego strony [troche zle wartosci gdzieniegdzie wstawil] ) uklad rowniez ruszyl.

    dex wrote:
    Czy jest opcja update-u firmware via USB?

    oczywiscie - po wybraniu innego procka w MPLABie ICD2 dostaje nowy firmware poprzez USB.

    Quote:
    Czy znalazłeś pod to jakąś obudowę?

    nawet jeszcze nie szukalem [;

    Quote:
    Jaką przewage ma ten prog np od tych które są na aelegro za ok 150zł -tamte tez niby piszą obsługuja procki nawet od 1.8V ?

    nie wiem o jakich dokladnie mowisz, teraz jest tam tylko jedna kopia ICD2 w tej cenie i jest to projekt typu PICS, czyli nie ma konwersji poziomow.

    hemol wrote:
    Czy, jeżeli mam programator PICkit 2, to opłaca mi sie robić programator przedstawiony w tym temacie do własnego użytku??

    jesli nie zamierzasz sie bawic w debuggowanie prockow typu dsPIC33 i PIC24H to raczej nie ma to sensu.

    0x41 0x56 0x45!!
  • #9
    dir3ctor
    Level 27  
    Freddie: a spotkales sie moze gdzies z wersja w SMD?
    Cholernie nie chce mi sie plytki przerabiac ;)
  • #10
    Freddie Chopin
    MCUs specialist
    niestety nie widzialem zadnego udostepnionego projektu na SMD [; spytaj w temacie na edaboardzie. sam bym sobie zrobil moze w SMD kiedys, choc pewnie wiecej roboty bedzie z pozadna plytka pod SMD niz z wierceniem otworow <:

    0x41 0x56 0x45!!
  • #12
    ghost666
    Translator, editor
    Hm... w sumie to ja mógłbym zaprojektować płytke w SMD... I wtedy, jak by było kilka chętnych osób to zamówić ją w jakimś zakładzie, co wy na to?
  • #13
    Freddie Chopin
    MCUs specialist
    mozesz sprobowac, ale szczerze mowiac, nie liczylbym na bardzo duza liczbe chetnych [; tutaj jakos wszyscy wola jakies starozytne rozwiazania podpinane przez LPT albo gole programatory na
    USB [;

    ja juz jednego mam, nie wiem czy potrzebny mi drugi, wiec jakby co to odpadam chwilowo <: moj kolejny projekt pochlania tone kasy, wiec raczej nie chce teraz inwestowac w cos, czego raczej nie potrzebuje. anyway - moze kiedys [;

    0x41 0x56 0x45!!
  • #14
    ghost666
    Translator, editor
    Nie no, jak by były ze 3 osoby, to juz coś. Przynajmniej koszty klisz etc sie rozłożą ładnie...
  • #16
    dex
    Level 27  
    Ja bym też wchodził w zasadzie w obojętnie jaką. Rozglądam się co jakiś czas na jakąs gotową jednak nic nie widać.

    ---
    Jakby kto zamawiał płytki gdzieś to chętnie kupię, bo nie chcę mi się robić wersje z picami w DIP.
  • #17
    ghost666
    Translator, editor
    Myśle że jak z zakładu - dwie strony + metalizacja + soldermaska to jakies 20zł za sztuke, moze mniej... Bo pewnie udałoby się to upchnąć w dosyć małym formacie, szczególnie jeśli uC sie uzyje SMD. Oczywiscie przy kilku..kilkunastu zamówieniach. Dla 3 osob to troszke więcej ;).
  • #18
    dir3ctor
    Level 27  
    Zaprojektuj plytke smd (nie zapomnij o wyprowadzeniach dla ICSP) i wtedy przeliczymy na jakims kalku ile to wyjdzie. Na ten dzien sam bym wzial minimum dwie (dla siebie i kumpla).

    Jesli ktos bedzie mial problem z dostaniem prockow SMD to tez sluze pomoca :-)
  • #19
    ghost666
    Translator, editor
    Procki SMD można, ewentualnie zamówić jako sample od Microchipa... A o ICSP chodzi Ci to zaprogramowania procków w samym ICD2?
  • #20
    Freddie Chopin
    MCUs specialist
    jak juz sie za ta plytke zabierzecie, to pamietajcie, zeby zrealizowac najnowsza wersje (link w 1 poscie). ciekawa sprawa byloby tez mozliwosc odpinania czesci z buforami. jesli ktos programuje tylko procki 5V, to po prostu nie lutuje buforow i odlamuje czesc plytki. jesli ktos chce robic procki 3.3V to dolutowuwuje pare zwor i na dodatkowej czesci daje czesc odpowiadajaca za buforowanie [; to taki bajer, ale moze byc ciekawy

    jesli procesory w programatorze maja byc w SMD, to raczej bez sensu byloby je programowac przed lutowaniem. jesli zas nie maja byc w SMD to projekt nowej plytki jest malo sensowny [;

    0x41 0x56 0x45!!
  • #21
    dir3ctor
    Level 27  
    ghost666 wrote:
    A o ICSP chodzi Ci to zaprogramowania procków w samym ICD2?


    Dokladnie o to, w koncu SMD ciezko inaczej zaprogramowac ;-)
  • #22
    ghost666
    Translator, editor
    Się powoli zabrałem za robote, póki co pracuje na schemacie i zmieniam to co moge bez problemu w SMD. Części rzeczy nie moge, bo nie ma tego w bibliotekach, więc będe musiał przemienić ręcznie wstawiając nowy element i przeroutowując... no ale mniejsza o to.
    Póki co - wszystkie układy 74LS są w SMD (standardowych, oporniki są w 0805, to też standard. Tranzystory BC327 też zmieniłem do SMD, ale niestety reszty nie mam w bibliotekach do Eagla. Jeśli ktoś ma, prosze o informacje, jeśli ktoś zna zamienniki (bo mam wrażenie że np. BC237 w SMD nie ma) to prosze o informacje.

    PeeS. Pracuje na schemacie z linka z 1szego postu - on jet okej, prawda?
  • #24
    dir3ctor
    Level 27  
    Wstawiaj jakiekolwiek elementy, byle tego samego ksztaltu :-)
    Jak nie znajdziesz prockow mikroczipa w smd to wrzuc avr-y :-) Byle raster sie zgadzal.
  • #25
    Gienek
    Level 37  
    Przeglądając różne opracowania klona ICD2 do gustu przypadł mi klon opracowany przez Węgra (a przynajmniej pliki zamieszczone były na stronie wegierskiej). Sprawuje sie wyśmienicie. Załączam pcb (autora - chociaż mój programator jest wierną kopią).
    klon ICD2 - programatora / debuggera procesorów PIC, dsPIC
  • #26
    dex
    Level 27  
    Nie sprzedaje płytek? Wygląda to dość fachowo wykonane. Strona potyo.uw.hu mi nie wchodzi cała, tylko górne banery?

    ---
    Jakby kto zamawiał płytki gdzieś to chętnie kupię, bo nie chcę mi się robić wersje z picami w DIP.
  • #27
    ghost666
    Translator, editor
    No elementy same mam, ale w schemacie mają inne wyprowadzenia no i ciężko mi jest je zastąpić... tzn musze manualnie je zastąpić, zamiast kliknać change -> package ;P.

    Zamienie Q4, czyli BC237? na BC846 - mam go w SMD i sie nadaje.

    Jakie rastry by były do kondensatorów. Elektrolity zostawie jakie sa, tylko chodzi mi o te w większosci 100n. 0805?
  • #28
    Gienek
    Level 37  
    Nie sprzedaje płytek? Wygląda to dość fachowo wykonane....

    Płytek nie sprzedaje, ale udostępnił plik *.brd z Eagla, tak, że wykonanie takiej płytki, to nie problem. Ja robiłem u Barańskiego (2 płytki - płytka wyszła trochę drogo, bo ok. 30zł, ale profesjonalne wykonanie :D).
    Faktycznie, strona jakoś dziwnie sie otwiera. Jak jesteś zainteresowany, to plik prześlę Ci na PW.
  • #29
    dir3ctor
    Level 27  
    ghost666 wrote:
    Jakie rastry by były do kondensatorów. Elektrolity zostawie jakie sa, tylko chodzi mi o te w większosci 100n. 0805?

    Tak jest, 100n moga byc 0805.
  • #30
    sunok
    Level 14  
    Witam. Ja jestem też zainteresowany zakupem PCB ICD2 clone.
    Robiłem niedawno Potyo2 i jakoś nie daje się uruchomić do końca :(. Zdesperowany już chciałem zamawiać poprawioną PCB tego węgra:

    klon ICD2 - programatora / debuggera procesorów PIC, dsPIC

    Ale jeżeli już macie zamiar coś projektować w SMD to też będzie fajnie.... zawsze to mniejsze. Kondensatory 0805 to chyba za małe.... ja bym proponował 1206... Druga uwaga to trzeba zauważyć że PICe mają wykorzystane linie przez które się programuje... tak więc jak się je zalutuje to nie wiem czy da się je zaprogramować w systemie.

    Oby się nie okazało że wywalimy kasę i nic z tego nie wyjdzie... :(