Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Programator PIC/AVR na USB wraz z podstawkami

p.kaczmarek2 16 Mar 2019 11:43 4923 18
Altium Designer Computer Controls
  • Programator PIC/AVR na USB wraz z podstawkami
    Witajcie moi drodzy.
    Dziś przedstawię projekt, który w zasadzie powstał tylko dlatego, że chciałem pierwszy raz wypróbować samodzielne tworzenie płytki w Eagle pod eksport plików Gerber i zlecenie wykonania płytek dwustronnych w fabryce. Zrobiłem go na bazie czegoś, co kiedyś wykonałem z pomocą termotransferu.

    Krótko o projekcie
    Jest to prosty klon PICKIT2 złożony z ogólnodostępnych elementów. Nie wymaga dodatkowych kości pamięci tak jak oryginał, tranzystory są z serii BC, wartość dławika nie jest krytyczna. Większość powierzchni płytki zajmują gniazda DIP pod różne PICe, tak by można było je programować bez zabaw z płytkami stykowymi. Dodatkowo na pokładzie znajdują się diody LED które można wykorzystać przy testowaniu różnych konstrukcji, jak również piny GND, 3.3V i 5V. Gniazda pod PIC mają również na płytce miejsce pod rezystor 10k na MCLR oraz wyprowadzone niektóre piny, by testowany mikroprocesor mógł 'wstać i zamrugać' jeszcze w programatorze.
    Na płytce również znajduje się zworka RST-PU, która pozwala na włączenie/wyłączenie rezystora 10k pull up dla pinu RESET.
    Na płytce również jest miejsce na dodatkowy rezystor 10k między RESET Atmegi a RESET z ICSP, ale tam powinna być zworka.

    Co można tym programować?
    Z pomocą tego narzędzia zaprogramujesz:
    - wszystkie te PIC-e i pamięci, które wspiera PICKIT2
    - dodatkowe PIC-e, które można dodać z pomocą PICkit2 Devicefile Editor
    - nowsze PIC32 z pomocą pic32prog (alternatywa dla softu PICKIT2 na Windowsa, z kolei firmware na programatorze dla niej pozostaje bez zmian)
    - również AVRy (PK2AVRISP)

    Schemat i PCB
    Projekt płytki powstał w Eagle i był robiony z założeniem, że całość jest dwustronna i będzie składać się tylko z elementów przewlekanych, tak by było każdemu łatwo wszystko zlutować. A same płytki zamówiłem z płytkarni, 10 sztuk.

    Schemat:
    Programator PIC/AVR na USB wraz z podstawkami
    Programator PIC/AVR na USB wraz z podstawkami
    Programator PIC/AVR na USB wraz z podstawkami
    Układ elementów:
    Programator PIC/AVR na USB wraz z podstawkami

    Wykonanie
    Na przestrzeni miesięcy wykonałem co najmniej dwie sztuki tego programatora, aczkolwiek wielu elementów do płytki nie lutowałem, bo najzwyczajniej nie były mi potrzebne tak jak np. podstawka pod Atmegę. Wrzucam pare zdjęć z konstrukcji i testów:

    PCB prosto z fabryki:
    Programator PIC/AVR na USB wraz z podstawkami
    PCB i gotowy programator:
    Programator PIC/AVR na USB wraz z podstawkami
    W trakcie lutowania:
    Programator PIC/AVR na USB wraz z podstawkami
    Gotowy:
    Programator PIC/AVR na USB wraz z podstawkami

    A tutaj już w trakcie użycia, wraz z innym moim projektem i płytką stykową:
    Programator PIC/AVR na USB wraz z podstawkami
    Zdjęcie przedstawia mój DIY klon PICKIT podłączony jako ICSP do innego projektu (sterowanie przez Ethernet). Dodatkowo płytka "Ethernetowa" tutaj jest podłączona do jednego z LEDów na programatorze (niby to nie dużo, ale one są zawsze dla mnie użyteczne, jak chcę coś szybko przetestować bez zbędnych zabaw ze stykówkami, płytek kabelków itp).

    Podstawki
    Na płytce znajdują się podstawki pod następujące mikroprocesory:
    - PIC12F683
    - PIC24FJ16GA002
    - dsPIC30F2010
    - dsPIC30F4011
    - PIC16F676
    - PIC18F2550
    - PIC18F4550
    - PIC16F1459
    - PIC16F628
    - Atmega8
    To oczywiście nie znaczy, że tylko one są wspierane, ponieważ bardzo dużo innych scalaków ma podobny układ wyprowadzeń tak jak te z listy. Dla ułatwienia piny PGD/PGC/RESET od podstawek też są podpisane na płytce.

    Podsumowanie
    W sumie wykonałem dwa takie programatory, w przypadku jednego użyłem dławika THT a w drugim SMD, oba odbiegające wartością od 680uH ze schematu, ale w obu przypadkach sprawdzają się idealnie. Nie było żadnych problemów z uruchomieniem.
    Z obu korzystam aż do tej pory.
    Co do dalszego rozwoju projektu, to myślałem jeszcze, by wziąć kod źródłowy 'openproga' ( http://openprog.altervista.org/ )i go dostosować pod mój hardware, ale na razie nie było takiej potrzeby.
    Do postu dołączam używany przeze mnie soft, wsad programatora, źródła Eagle, gerbery oraz dodatkowe narzędzia do programowania.
    Dodatkowo, jakby co to mam jeszcze trochę płytek pod ten projekt, jakby co to PW.

    Cool? Ranking DIY
    Can you write similar article? Send message to me and you will get SD card 64GB.
    About Author
    p.kaczmarek2
    Level 26  
    Offline 
  • Altium Designer Computer Controls
  • #2
    puszak
    Level 28  
    Zawsze gdy widzę programator pic okazuje się, że jest zbudowany w oparciu o pic i żeby go zbudować potrzebuję programatora do pic. Tym sposobem nie mam programatora pic.
  • #3
    Matesz 063
    Level 15  
    puszak wrote:
    Zawsze gdy widzę programator pic okazuje się, że jest zbudowany w oparciu o pic i żeby go zbudować potrzebuję programatora do pic. Tym sposobem nie mam programatora pic.

    Niestety :(. Tak samo potrzebujesz Internet Explorer by zdobyć np Chroma lub Firefoxa.
  • Altium Designer Computer Controls
  • #4
    yogi009
    Level 43  
    puszak wrote:
    Zawsze gdy widzę programator pic okazuje się, że jest zbudowany w oparciu o pic i żeby go zbudować potrzebuję programatora do pic. Tym sposobem nie mam programatora pic.


    A masz jakiś inny pomysł?
  • #5
    p.kaczmarek2
    Level 26  
    yogi009 wrote:
    puszak wrote:
    Zawsze gdy widzę programator pic okazuje się, że jest zbudowany w oparciu o pic i żeby go zbudować potrzebuję programatora do pic. Tym sposobem nie mam programatora pic.


    A masz jakiś inny pomysł?


    Przecież wcale tak nie trzeba. Ja sam zaczynając przygodę z PIC poradziłem sobie bez programatora PIC.
    Mój pierwszy programator wyglądał tak:
    Programator PIC/AVR na USB wraz z podstawkami
    Z jego pomocą byłem w stanie zaprogramować PIC16F628A, jak również sam PIC18F2550, na którym można zrobić klon PICKIT2 lub OpenProga.
    Jedyny minus, że potrzeba komputer z wyjściem RS232.

    I do tego ten soft:
    Programator PIC/AVR na USB wraz z podstawkami
    No i ja nie używałem tego układu do in-circuit programming, tylko do jednorazowego wgrania wsadu w podstawce. Natomiast programator z pierwszego postu w temacie oczywiście radzi sobie z ICSP dobrze.
  • #6
    yogi009
    Level 43  
    p.kaczmarek2 wrote:
    Jedyny minus, że potrzeba komputer z wyjściem RS232.


    Sam sobie odpowiedziałeś. Cała masa prostych programatorów przeszła w ten sposób do historii.
  • #7
    lukaszd82
    Level 30  
    Większość stacjonarnych PC ma na płycie wyprowadzone COM. Wystarczy tylko kupić na allegro śledzia i podpiąć. Tak więc ja tu nie widzę problemu. Całe 4zł + wysyłka.
  • #8
    yogi009
    Level 43  
    Oczywiście można i tak. Zakładając, że każdy przyszły programista mikrokontrolerów chce się bawić w otwieranie obudowy jednostki głównej, przede wszystkim że ma komputer stacjonarny, a nie notebook'a. Wersja pod port USB jest po prostu uniwersalna. Ale - jak napisał wcześniej Kolega - do jej wykonania potrzebujemy zaprogramowanego PIC'a (lub Atmegę). Tyle, że tutaj mamy taką samą sytuację, jak z tym śledziem, wystarczy zamówić przez internet i masz zaprogramowany układ. Sądzę, że na naszym forum znajdziesz kilka osób, które chętnie Ci pomogą w temacie.
  • #9
    lukaszd82
    Level 30  
    Przejściówki USB-RS też są dostępne, część ma pełną obsługę RS.
    Programista wcześniej czy później może potrzebować portu COM. Niestety, szczególnie stare urządzenia jeszcze do tego zmuszają.
    Ja zajmuję się trochę inna branżą - automatyka (PLC itp.) i pomimo, że USB jest już na rynku wiele lat, to tylko COM gwarantuje komunikację z większością PLC (ok 70% obecnie), dalej Ethernet (ok 25%) i pozostałe 5% to USB i dedykowane rozwiązania (w większości oparte o przejściówki RS-USB).
  • #10
    kolgreen
    Level 15  
    puszak wrote:
    Zawsze gdy widzę programator pic okazuje się, że jest zbudowany w oparciu o pic i żeby go zbudować potrzebuję programatora do pic. Tym sposobem nie mam programatora pic.


    Nonsens, tutaj znajdziesz kompletny projekt programatora PIC bez mikrokontrolera.
    Jest tam gotowa płytka, pełna dokumentacja, jak podłączyć PIC, jakich programów użyć, nawet PCB możesz zamówić do tego projektu w Chinach za parę złotych (a jak się dopiero rejestrujesz w PCBWay to nawet za darmo).
    I jeszcze oprogramowanie dla Linux opisane - jeśli ktoś używa. :D
  • #11
    tplewa
    Level 39  
    yogi009 wrote:
    puszak wrote:
    Zawsze gdy widzę programator pic okazuje się, że jest zbudowany w oparciu o pic i żeby go zbudować potrzebuję programatora do pic. Tym sposobem nie mam programatora pic.


    A masz jakiś inny pomysł?


    Zrobić programator do PIC-ów na dowolnie wybranym procesorze... magi w tym nie widzę :)

    kolgreen wrote:

    Nonsens, tutaj znajdziesz kompletny projekt programatora PIC bez mikrokontrolera.
    Jest tam gotowa płytka, pełna dokumentacja, jak podłączyć PIC, jakich programów użyć, nawet PCB możesz zamówić do tego projektu w Chinach za parę złotych (a jak się dopiero rejestrujesz w PCBWay to nawet za darmo).
    I jeszcze oprogramowanie dla Linux opisane - jeśli ktoś używa. :D


    Niestety większość takich programatorów działa bardzo kiepsko ;) Jak składałem klona PicKit-a udało mi się poprawnie zaprogramować procesor chyba za 20 razem (albo i po większej liczbie prób) :) Tutaj wiele zależy od konstrukcji UART-u w PC i niestety w nowszych komputerach działa to tragicznie, a jak pamiętam nawet i na starych (bo dawno temu używałem podobnej konstrukcji) też nie działało to najlepiej... No a jak ktoś nie używa stacjonarnego to praktycznie ma problem, chyba że kupi jakiegoś starocia (co się średnio opłaca) bo za mniej można kupić chińskiego klona PIC-kit-a.
  • #12
    tronics
    Level 38  
    yogi009 wrote:
    puszak wrote:
    Zawsze gdy widzę programator pic okazuje się, że jest zbudowany w oparciu o pic i żeby go zbudować potrzebuję programatora do pic. Tym sposobem nie mam programatora pic.


    A masz jakiś inny pomysł?

    FT232RL + odpowiedni soft np.
    https://github.com/gphalkes/fpicprog
    Dla AVR ten sam układ obsłuży wszystkie korzystające z SPI do programowania, a soft to wszystko co bazuje na AVRDude.
    Co ciekawsze nadal można wyprowadzić Rx, Tx i używać do programowania ESP8266, ESP32, LPC, STM32 itp. ;) Czyli opcja zdecydowanie łatwiejsza w implementacji i uniwersalna.
  • #14
    kolgreen
    Level 15  
    tplewa wrote:
    Niestety większość takich programatorów działa bardzo kiepsko ;)


    Ja używałem go przez wiele lat. Zrezygnowałem tylko dlatego, że dostałem Pickit. Fakt, jeśli ktoś ma laptopa, brak portu COM, to ma problem.

    Fakt jest jednak taki, że elektronika (a tym bardziej dział mikrokontrolerów) do tanich nie należy. To nie bieganie, że wyjdzie się z domu i się zacznie to robić. Jakieś koszty trzeba ponieść...
  • #15
    tplewa
    Level 39  
    kolgreen wrote:
    tplewa wrote:
    Niestety większość takich programatorów działa bardzo kiepsko ;)


    Ja używałem go przez wiele lat. Zrezygnowałem tylko dlatego, że dostałem Pickit. Fakt, jeśli ktoś ma laptopa, brak portu COM, to ma problem.


    Ot jak mówię kwestia szczęścia... Kiedyś też używałem i na stacjonarce działał w sumie ok (ale nie idealnie) - potem na laptopie z RS232 miał już problemy... Natomiast na komputerze w firmie - to była totalna staroć chyba jakiś Pentium 3 (jeszcze miałem serwis RTV) działał bezproblemowo.

    Natomiast co do taniości to wiadomo, ale nie tylko o kwoty chodzi czasem potrzeba być też kreatywnym ;) Przykładowo kiedyś miałem polskiego UPROG-a HS48, ale że więcej leżał w szafie niż go używałem to sprzedałem (ot kilka tysięcy drogą nie chodzi)... potem nagle pojawił się problem i zbudowałem taki programator ;) https://www.elektroda.pl/rtvforum/topic2302500.html ot czasem trzeba być kreatywnym i robi się coś z tego co ma się w szufladzie :)

    W sumie po tym aby się znowu nie bawić kupiłem uniwersalny TNM5000 bo stwierdziłem że prędzej czy później znowu coś będzie potrzeba zaprogramować i jednak warto coś takiego mieć - zakup to w sumie kompromis cenowy pomiędzy najtańszymi programatorami, a tymi z wyższej półki.

    Do tego wiadomo inne do programowania w układzie czyli J-Tag do ARM-ów, kilka ISP do AVR-ów, Pic-kit do tego jeszcze do FPGA...

    Więc trochę się tego uzbierało. Z drugiej strony większość takich programatorów można zaprojektować i wykonać samodzielnie - tylko problem najczęściej jest taki że mało komu się chce :)
  • #16
    User removed account
    Level 1  
  • #17
    tplewa
    Level 39  
    acctr wrote:
    puszak wrote:
    Tym sposobem nie mam programatora pic.

    Dla chcącego nic trudnego. Twój problem należy upatrywać gdzie indziej. Tym bardziej, że Pickity wersji 2 i 3 chodzą na portalu aukcyjnym poniżej 50zł, sprzedano nawet egzemplarz Pickit3 za 16zł.


    Dokładnie to co wspomniałem klony Pickita 3 są tanie u nas z 60zl na znanym portalu aukcyjnym, a na Aliexpress za 10$ z wysyłką bez problemu można kupić co daje jakieś 39zł - ot taka pierwsza lepsza aukcja https://de.aliexpress.com/item/PICKIT2-PIC-Ki...Color-w-USB-cable-Dupond-Wire/1814593020.html

    Więc jak się chce mieć tylko programator to mały problem... Bardziej kwestia tego czy chce się posiadać programator, czy chce się zbudować programator. Co przy budowie nie musi być tańsze ale za to zyskujemy tutaj satysfakcję z budowy, nową wiedzę itd. co trudno wycenić...
  • #18
    puszak
    Level 28  
    COM nie mam w laptopie, JDM leży zapomniany. Kupić gotowy nie sztuka, gdyby był mi mocno potrzebny kupił bym go. Mam USBasp i arduino, widziałem coś po angielsku w oparciu o arduino lecz słabo u mnie z angielskim. Także poczekam może natknę się na coś opartego na AVR lub arduino i sobie wykonam.
  • #19
    szlovak
    Level 12  
    Gdybym nie miał programatora żadnego, to brałbym pickit4 teraz, ma od razu wsparcie najnowszego mplabx i programuje avr też. Nawet Jtaga ma. Oczywiście to debugger też jest, piców na pewno, nie wiem jak z avr, a ten programator tu to tylko programator i do tego powolny, stary, ludzie. Acha, jeszcze jedno, nie brałbym żadnych klonów programatorów, oryginały microchipa maja dozgonną gwarancję :) Czy tutaj w tym dziale wypychane są projekty których nikt nie potrzebuje?