Strony

wtorek, 3 maja 2011

Jaki wybrać programator sprzętowy ?

Po wyborze rodziny mikrokontrolerów wydaje się, że wszystko już pójdzie z górki. Tymczasem kolejny orzech do zgryzienia. Wybór programatora sprzętowego! Gdy poczytamy różne fora internetowe, dowiemy się co najwyżej, że do samych procków AVR są dziesiątki różnych programatorów a każdy zachwala jako najlepszy ten który sam użytkuje - tłumacząc najczęściej to krótko i w ten sposób:

"bo mi się sprawdza i nigdy mnie nie zawiódł"

Ja wychodzę z nieco innego założenia. Programator powinien:


  1. Być tani lub możliwy do wykonania we własnym zakresie
  2. Obsługiwać wszystkie procesory AVR
  3. Działać niezawodnie i pod każdym systemem operacyjnym
  4. Umożliwiać szybkie programowanie
  5. Być jak najprostszy w obsłudze także dla początkującego
Na drugim miejscu jeśli chodzi o start, pozostawiłbym takie cechy jak:

  • Możliwość debugowania
  • Możliwość programowania także innych rodzin mikrokontrolerów czy pamięci
  • Możliwość programowania równoległego w tym wysokonapięciowego
  • Możliwość bezpośredniej współpracy np z takim środowiskiem jak AVR-Studio
Zatem bez owijania w bawełnę, uważam, że na pierwszym miejscu powinien się uplasować:

Programator USBASP.  Zanim jednak kupisz taki programator zastanów się dobrze czy nie jesteś w stanie zrobić go we własnym zakresie, jeśli posiadasz już biegłość w lutowaniu, tworzeniu własnych płytek PCB itd. Skąd wziąć dokumentację do tego programatora? Na pewno nie polecam ŻADNYCH innych stron internetowych poza jedną jedyną - źródłową: www.fischl.de/usbasp
Już nie jeden raz spotykałem się z ludźmi, którzy nie wiedzieć czemu wyszukiwali inne strony, fora itp narażając się na błędy w schematach a nawet błędne wsady do zaprogramowania mikrokontrolera, pracującego w tym programatorze. A po co utrudniać sobie życie. Na stronie autora otwartego projektu znajdziedzie podstawowy schemat a także najnowsze wsady do mikrokontrolera. Gdy to zadziała, to później będzie można już dokonywać własnych modyfikacji. Na temat tego programatora poświęcę jeszcze oddzielny wpis na blogu, gdyż jest tego warty.

Jednak dla kogoś kto zaczyna od podstaw a chciałby zbudować tego typu programator, przeszkodą nie do pokonania może okazać się przecież brak innego programatora, którym przecież trzeba zaprogramować mikrokontroler ATmega8 czy ATmega48 w oparciu o który zbudowany jest USBASP. Na szczęście w przypadku mikrokontrolerów AVR jak pisałem w poprzednim wpisie na blogu, mamy bardzo komfortową sytuację. Wiąże się ona z tym, że bez najmniejszego problemu można stworzyć w przysłowiowe 5 minut kilka najprostszych z możliwych programatorów sprzętowych. Mogą one działać w oparciu o takie porty w komputrze jak LPT lub zwykły port COM. Daleko nie trzeba szukać. Pierwszy z nich to:

1. Simple AVR ISP - programator składający się zaledwie z kilku rezystorów - port LPT


2. SiProg - programator podłączany do portu COM


3. STK200 - odrobinkę bardziej skomplikowany programator LPT


Myślę, że złożenie jednego z takich programatorków, tylko w tym celu aby zaprogramować nowy i szybki programator USBASP nie będzie stanowiło najmniejszych problemów.



43 komentarze:

  1. Od samego początku [będzie już z 5 lat] stosuję tylko programator w wersji 1 i mi w zupełności wystarcza jako amatorowi który tworzy jakiś układ raz na jakiś czas.

    OdpowiedzUsuń
    Odpowiedzi
    1. No jasne - ale ja już nic na to nie poradzę, że lubisz wolniej ;) .... Ja go używałem sporadycznie. USBASP jest dużo dużo szybszy i tylko dlatego na niego przeszedłem. Nie mówiąc już że z tego o którym piszesz nie można zasilać procka więc to dodatkowy (jak dla mnie MEGA ZONK).

      Usuń
    2. Może i szybszy, ale teraz właśnie muszę składać równoległy bo nie obsługuje wszystkich AVR'ów :)

      Usuń
    3. No a jakich to on nie obsługuje ? ;)

      Usuń
  2. Gdybym go używał na co dzień to prawdopodobnie by mnie to denerwowało, ale jak wspomniałem wcześniej popełniam układy raz na jakiś czas, więc ten mi w zupełności wystarcza.

    A co do zasilania wychodzę z założenia definicji:
    In-System Programming - wiec programuję zazwyczaj kompletny, złożony układ [czyli wraz z zasilaczem].

    Myślę po prostu że każdy powinien wybrać odpowiedni dla siebie, w zależności od tego, jak często będzie z niego korzystał i jakich funkcji od niego wymagał [i ewentualnie jakie złącza posiada w swoim PC].

    OdpowiedzUsuń
    Odpowiedzi
    1. W zupełności się z tym zgadzam, że każdy powinien wybrać coś sam dla siebie, pozwolisz jednak, że ja początkującym osobom będę odradzał ten sposób na programator. Nie każdy się na tyle zna na elektronice a o uszkodzenie czy procka czy kompa przy nim jest o wiele łatwiej. Więc tylko dlatego ja mam do niego takie podejście.

      Usuń
  3. Antystatyczny18 lipca 2012 22:01

    Ja używam STK200 z buforem, czyli wersja 3. Szanuję port lpt, bo jeśli się pomylę... Nowa płyta główna może już nie mieć tego portu. Ojciec nauczył mnie dbania o sprzęt, więc to czynię.

    OdpowiedzUsuń
    Odpowiedzi
    1. Racja ja także dbam i szanuję port LPT, lubię go mieć w płycie głównej ;) .... korzystałem też z STK200, ale niestety - czas to pieniądz, i strasznie długie czasy programowania na takim powolnym łączu jak LPT skłoniły mnie bardzo szybko do programatora USBASP.

      Usuń
  4. Od kilku tygodni szukam odpowiedzi na pytanie :
    czy programatorem USBASP zaprogramuję ATTINY4313 ?
    Czy może ktoś z Was ma takie doświadczenie/wiedzę praktyczną ?


    Krzychoo.

    OdpowiedzUsuń
    Odpowiedzi
    1. Programatorem USBASP zaprogramujesz prawie każdy procek - kwestia czy znajdziesz program aby tego dokonać. To większy brat ATtiny2313 ;) ... więc pewnie dałoby radę przerobić AVRDUDE czyli MkAvrCalculator żeby go programować ;)

      A swoją drogą dlaczego uparłeś się akurat na taki procek ?

      Usuń
  5. Witam,
    Wszystko super, ale może cosik kolega opisze o programowaniu AVRów w debugWIRE On-chip Debug System. Programowanie AVRów na jednym kablu eliminuje dodatkowe połączenia, zbędne piny, zmniejsza znacząco wielkość płytki. Może jakieś fajne, tanie rozwiązanie znajdziecie w sieci.
    Oczywiście ten system głównie jest używany do debugowania w małych chipach, jednak można nim pięknie również ładować programy.
    Oczywiście pozostaje jeszcze problem małych attiny4-10 gdzie do załadowania programu używa się TPI. To naprawdę skutecznie odstrasza od tych układów - choć mała wielkość tych chipów w stosunku do możliwości wydaje się być doskonała.

    OdpowiedzUsuń
    Odpowiedzi
    1. O debugwire nie napiszę - nie mam możliwości teraz, ale jeśli chodzi o TPI to programatory USB już umożliwiają programowanie w tym trybie procków ATtiny10 itp ;)

      Usuń
  6. Cześć, mam pytanie.

    Ostatnio przypadkowo spaliłem jeden z programatorów USBASP poprzez przypadkowe zwarcie przewodu zasilającego wychodzącego z programatora z radiatorem tranzystorów napięcia pośredniczącego, ok 60V. Efekt jest taki, że ta mała ATmega w programatorze po podpięciu do portu USB po kilku chwilach robi się gorąca, MKAVRkaklulator w ogóle nie widzi programatora. Sam port jest raczej sprawny - czyta wszystko, co się pod niego podepnie. Problem polega na tym, że po podpięciu drugiego programatora (inny producent) nadal nie mogę wykryć żadnego z procesorów (mega88, 16 czy 128). Sterowniki przeinstalowałem, nadal cały czas błąd rc=-1 (układ podłączony raczej prawidłowo). O co tutaj może chodzić?

    OdpowiedzUsuń
    Odpowiedzi
    1. jeśli chodzi o

      rc=-1

      to odsyłam do tego poradnika:

      http://mirekk36.blogspot.com/2012/12/avr-jak-zaczac.html

      tam dokładnie to wyjaśniam

      Usuń
  7. Witam.
    Jaki dokładnie kabel usb należy zastosować do zasilania programatora ATB-USBASP. Na filmie i na zdjęciach wygląda tak, jakby miał on z obu stron te same płaskie wtyki jak do normalnego portu usb w komputerze, a przecież w normalnym kablu z drugiej strony jest jest inna wtyczka.
    Pozdrawiam, Zbyszek.

    OdpowiedzUsuń
    Odpowiedzi
    1. tutaj można dokładniej poczytać i zobaczyć programator ATB-USBASP

      http://atnel.pl/programator-atb-usbasp.html

      wykorzystuje się normalny kabel USB jak do przedłużaczy - nie ma na końcach takich samych wtyków ;)

      Usuń
  8. Witam!
    Na wstępie zaznaczę, że jestem początkujący.
    Chciałbym złożyć programator USBASP. Zamówiłem wszystkie potrzebne elementy, jednak omyłkowo zamówiłem rezystory 62ohm zamiast 68ohm (R1 i R2 na schemacie).
    Czy zastosowanie ich nie spowoduje większej różnicy w działaniu programatora?
    pozdrawiam

    OdpowiedzUsuń
    Odpowiedzi
    1. Zapewniam że spokojnie możesz użyć tych rezystorów 62R - żaden kłopot - będzie śmigać

      Pamiętaj tylko żeby zastosować diody zenera koniecznie na 3,3V a nie na 3,6V

      Usuń
    2. Dziękuję bardzo za szybką odpowiedz. ;)

      Usuń
    3. Witam
      Przeglądając internet, gdzieś w komentarzach natknąłem się na opinie o niepewności działania programatora USBASP w laptopach. Jak to wygląda w rzeczywistości, ma to jakieś znaczenie??

      Usuń
    4. W rzeczywistości to w internecie można znaleźć wszystko ;) .... szczególnie sporo bzdur. Tylko trzeba umieć je odfiltrować. Ja akurat sprzedaję programatory:

      http://atnel.pl/programator-atb-usbasp.html

      a klienci korzystają z nich także na laptopach ;) spróbuj mi znaleźć niezadowolonego klienta z naszego programatora ATB-USBASP ;)

      zobacz np dzisiejszy jakiś świeży wątek na forum:

      http://forum.atnel.pl/post74610.html#p74610

      i zdjęcie akurat naszego programatorka włączonego do notebooka ;)

      http://forum.atnel.pl/_obrazki/o/662/6015663f6bedf6d94746da923e37ad3d.jpg

      ja sam również na co dzień korzystam z tego programatorka w notebooku.

      Usuń
  9. Witam. Mam do Pana dwa pytania.
    Złożyłem programator pod COM na płytce stykowej, ale nie wiem do którego pinu z tych 10 którą nóżkę z mikroprocesora (Atmega8A-PU) podłączyć. Mógłbym prosić o wskazówkę ?
    Druga sprawa to program. Chcę ten procesorek zaprogramować tak aby wykorzystać go do zrobienia programatora USBASP - czy jest możliwość znalezienia gdzieś gotowego kodu, albo wskazówek jak taki kod samemu stworzyć - znam trochę Bascoma.

    Korzystałem ze schematu z Pana strony. Obejrzałem 2 filmy, ale nie znalazłem wskazówek w tej materii. Z góry dziękuję z odpowiedź.

    Pozdrawiam
    Zbigniew

    OdpowiedzUsuń
    Odpowiedzi
    1. Dzień dobry , chciałbym podłączyć się do pytania Pana Zbigniewa. Też mam zamiar zbudować własny programator i pewnie zanim to nastąpi przestudiuję cały blog oraz filmiki. Poszukuję coś na temat programowania procesora do programatora USBasp. Będę chciał zaprogramować procka tez programatorem USBasp (pożyczonego od kolegi) . Istnieje właśnie jakiś gotowy kod do takiego zaprogramowania a jeśli nie to chociaż wskazówki.


      Pozdrawiam , Krzysztof

      Usuń
    2. Pewnie, że istnieje gotowy wsad na stronie autora projektu:

      http://www.fischl.de/usbasp/

      ale na nieszczęście on jednak nie chce za dobrze obsługiwać takich maluchów jak ATtiny4/5/9/10 dlatego ja niejednokrotnie już pisałem i mówię wszędzie - aż mnie naprawdę język już boli od powtarzania tego, że z przyjemnością udostępniam ale na maila wsad od naszego atnelowskiego programatora jak ktoś do mnie napisze z taką prośbą. Już chyba grubo ponad tysiąc takich maili wysłałem w ciągu ostatnich 2-3 lat ....

      a schemat to macie i na stronie którą wyżej podałem i na stronie atnela ....

      Usuń
  10. Witam. Mam pytanie zlutowałem programator według schematu:
    Simple AVR ISP - programator składający się zaledwie z kilku rezystorów - port LPT
    Przerobiłem poradniki i utknąłem bo nie wiem
    Jaki ustawić programator w eclipse do simple avr isp ?
    Bardzo proszę o wskazówkę i poszukam jeszcze w necie.
    Z góry dziękuje.

    OdpowiedzUsuń
    Odpowiedzi
    1. A proszę sobie zajrzeć do zakładki "NARZĘDZIA" w programie "MkAvrCalculator" i kliknąć tam pierwszą pozycję "Najprostszy programator LPT". Na obrazku ukaże się i schemat połączeń i konfiguracja pinów i nazwa jaką można wybrać np "Bascom" w avrdude

      Usuń
    2. Niestety według schematu podanego w MkAcrCalculator i nazwa użyta w avrdude bascom nie działa. Wygląda na to że źle są tam podane połączenia do bascom.
      Udało mi się wgrać program do atmegi8-16PU za pomocą schematu Simple AVR ISP podanego na tej stronie i polecenia avrdude STK200 przy czym schemat jest niepełny ponieważ te połączenia są dla opcji buforowanej tego programatora. Jak na razie wgram wgrany ale dioda nie miga :) może tego buforowania brak spróbuję skrócić kabel.
      A dowiedziałem się tego na tej stronie http://avrprogrammers.com/programmers/all-parallel-port#
      Pozdrawiam i bardzo dziękuje za te poradniki są bardzo pomocne dla początkujących.

      Usuń
    3. Panie kolego - ja sam osobiście niejednokrotnie robiłem z potrzeby chwili swego czasu ten programator na LPT i dlatego opisałem go w MkAvrCalculatorze, więc sorki ale kolega opowiada niedorzeczności, że to co pokazałem nie działa. Działa i to bardzo dobrze ... ;)

      Usuń
  11. Witam

    Na co dzień używam USBASP - jestem bardzo zadowolony - nawet jak którąś nóżkę przywarłem do masy to procek się po prostu nie zaprogramował, a programatora nie upaliło.
    Mam takie pytanie - chciałbym zrobić programator tzw. wysokonapięciowy (aby np. wattinie13A pobawić się w przeprogramowanie pinu RESET na zwykły port), niestety w necie nic ciekawego nie znalazłem. Czy masz może jakiś sprawdzony układ takiego programatora?

    pozdrawiam

    Andrzej

    OdpowiedzUsuń
    Odpowiedzi
    1. Myślę że warto przemyśleć czy opłacalne jest budowanie takiego programatora? Ja wiem wiem - każdy początkujący o tym myśli, ja też myślałem jak zablokowałem pierwszego procka ;)

      ale na szczęście im dalej tym kończą się jakieś tam zablokowania procków - gdy masz już chociaż minimum praktyki. A jak nawet z powodu rutyny zablokujesz kiedyś jeden to ..... to teraz policz ile kosztują te 3 a nawet 4 procki które może zablokujesz a ile części na taki programator HV który będzie leżał i się kurzył ...

      Myślę że zamiast programatora HV to wpisz sobie w google hasło "Fuse bit doctor" i zrób ten układ ew do przywracania fabrycznych fusów w zablokowanych prockach ;) dużo prostszy , tańszy i łatwiejszy do wykonania jak już ... odblokujesz swoje 3-4 procki i też nadal będzie leżał i się kurzył .... no ale to już sam zdecyduj ;)

      Usuń
  12. Masz rację, ale ;)
    poszukam coś w ramach edukacji.
    I znalazłem coś takiego:
    http://elm-chan.org/works/avrx/report_e.html
    Ale zabawę z tym to już raczej na forum opiszę, nie tutaj (to nie miejsce na takie "przygody")

    OdpowiedzUsuń
    Odpowiedzi
    1. Tak to już na forum. Jak go zrobisz to wstaw na forum do działu DIY ;)

      Usuń
  13. Panie Mirku mam pytanko, chciałem zacząć przygodę z AVR, na początek chciałem zakupić programator. Jednak jak sam Pan mówił na początku nie ma się co pchać w koszty :) więc mam Pytanie co do tego. Ponieważ w sklepie elektroniku widziałem programator. No i nie jestem na dzien dzisiejszy przekonany czy jest on firmy ATNEL wiem tylko ze pisało na nim USB ISP ( starszy model na płytce niebieskiej, wydaje mi się ze to firma ATNEL tylko starszy model programatora ). Jest on tańszy od nowych programatorów firmy ATNEL. Ale chciałem zapytać czy nie byłoby błędem zakup tego programatora?

    OdpowiedzUsuń
    Odpowiedzi
    1. Nigdy w życiu firma Atnel nie sprzedawała programatorów o nazwie "USB ISP", taka nazwa od razu pachnie chińszczyzną i to najczęściej z problemami. Nasze programatory ZAWSZE mają nazwę "ATB-USBASP" i wątpię aby były sprzedawane w sklepach detalicznych. Proponuję ci albo ten programator:

      https://www.sklep.atnel.pl/pl/p/Programator-AVR-ATB-USBASP-4.0-MkAvrCalculator/39

      albo zbuduj sobie sam USBASP to wtedy wyjdzie cię to najtaniej, a od nas dostaniesz dodatkowo do niego wsad, który obsługuje procki ATtiny 4/5/9/10 i to zupełnie za free ten wsad.

      Usuń
    2. Pana szybka odpowiedź tylko zachęciła mnie do szybkiego zamówienia odpowiedniego programatora :) myślę że nie będe załował.
      Myślałem też nad zrobieniem ale stwierdziłem ze przynajmniej jak poświęce pieniądze na nowy to bede miał pewność ze wszystko jest z nim ok, i może zaowocuje to lepszą pracą :)

      Usuń
  14. Witam i proszę o odpowiedź. Zmontowałem stk200 pod lpt (mam win8) ale nie moge wgrać żadnego programu, avrdude wywala problem z portem lpt i giveio, ale isp programmer poprawnie identyfikuje atmege.
    A chciałem spytać czy programator pod port com bedzie działał na win8?

    OdpowiedzUsuń
    Odpowiedzi
    1. Tak stare zabawki jak stk200 na porcie LPT będą działać tylko pod starym windowsem XP.

      Usuń
    2. Dziękuje za odpowiedź, nie wiem jak ale dziś udało się wrzucić program przez ponyprog i po 3 dniach zmagań działa także narazie zostaje przy stk200 na lpt, dopiero sie ucze i jeszcze nie potrafie napisać własnego programu, pozdrawiam;)

      Usuń
    3. Czyli rozumiem, że opcja BASCOM LPT1 przy wyborze najprostrzego programatora świata w mkAVRCalculator zadziała tylko w XP, a w mkAVRCalculatorze uruchomionym w Windows 7 i wzwyż już nie zadziała.

      Usuń
    4. dokładnie tak będzie - i daj sobie spokój z programatorem na LPT.

      Usuń
  15. witam
    A jaki jest nie drogi programator do ATMEL ATF16V8B.
    bo posiadam program MiniPro programator TL866A i programując jest wszystko ok a przy sprawdzeniu czy jest zaprogramowany to jest czysty

    OdpowiedzUsuń
  16. Kupiłem przejściówkę, programator ATB-USB-RS232. Nie udaje mi się nim póki co zaprogramować ani odczytać żadnego procka. Próbowałem Attiny13A i Attiny4313. Za każdym razem poprawnie odczytuje nazwę procka i fusebity ale nie może odczytać, ani zapisać programu. Próbowałem włączać w mkAVR calculator bit slowsck ale efekt się nie zmienia. Ktoś miał taki przypadek?

    OdpowiedzUsuń
    Odpowiedzi
    1. Ptaszek SLOWSCK w MkAvrCalculator, albo jeszcze większe zmniejszenie taktowania parametrem -B na dole ... zawsze można podpytać na naszym forum jak sobie z tym radzić, tam łatwiej podpowiadać. To MUSI działać panie kochany ;)

      Usuń