USBasp – Programator mikrokontrolerów AVR na USB

Programator USBaspArtykuł ten przedstawia „krok, po kroku” etapy budowy programatora USBasp. W osobnych artykułach znajduje się opis instalacji sterowników w systemach Windows XP oraz Windows 7 (x64/x86). Na końcu wpisu umieszczone są linki z niezbędną dokumentacją do wykonania programatora we własnym zakresie.

Programator USBasp, dzięki prostocie w budowie oraz zastosowaniu tanich i powszechnie dostępnych elementów, stał się bardzo popularny. Jego parametry pracy również nie ustępują drogim, profesjonalnym programatorom mikrokontrolerów AVR.

Główne cechy USBasp:

Przed przystąpieniem do pracy, warto przeczytać kolejność wykonywanych czynności, wszystkie są opisane dalej w artykule:

  1. Wybranie schematu/wzoru płytki PCB
  2. Przeniesienie mozaiki ścieżek na laminat
  3. Wytrawienie PCB, wykonanie otworów
  4. Montaż elementów (lutowanie)
  5. Zaprogramowanie Atmegi, znajdującej się w programatorze
  6. Podłączenie programatora do komputera
  7. Instalacja sterowników – Windows XP, Windows 7
  8. Wybór programu obsługującego USBasp

Istnieje wiele wersji USBasp, lecz wszystkie opierają się na głównym schemacie, autorstwa Thomas’a Fischl’a - program na mikrokontroler znajdujący się w programatorze również jest jego autorstwa.

Podstawowy schemat:

Schemat USBasp

Dostosowałem oryginalny schemat, do swoich potrzeb. Uważam, że oryginalnie zastosowane zworki nie są wygodnym rozwiązaniem, dlatego zastosowałem DIP-Switch. Zmieniłem również wartość niektórych rezystorów. Ponad to, w oryginalnym schemacie linie TxD oraz RxD, są wyprowadzone na gniazdo ISP, jest to niepotrzebne (a raczej nie wykorzystywane), ponieważ jak pisze autor: Planned: serial interface to target (e.g. for debugging) – W planach jest wykorzystanie portu rs232, do ewentualnego debugowania błędów.

Poniżej schemat z naniesionymi modyfikacjami:

Zmodyfikowany schemat USBasp

Budowa

Istnieje wiele wersji PCB programatora, kilka można znaleźć na oficjalnej stronie USBasp. Ja jednak zrobiłem swoją na podstawie wyżej przedstawionego schematu. Niestety ze względu na zastosowanie DIP-SWITCHy, mozaika ścieżek  skomplikowała się i niezbędne było zastosowanie 2 krótkich zworek, by płytka nadal była jednostronna. Poniżej widok mojej wersji PCB:

Własna wersja PCB - USBaspWidok 3D PCB, tylko gniazdo USB jest zbyt duże i zasłania kondensator

Jak widać, nie zastosowałem żadnych elementów SMD. Płytka jest „zalana” polem masy w wolnych przestrzeniach, głownie po to by nie trzeba było trawić dużej ilości miedzi oraz by ograniczyć wpływ zakłóceń na programator. Gniazdo USB „wystaje” poza płytkę PCB.

Spis zastosowanych elementów:

Części potrzebne do zbudowania USBaspCzęści potrzebne do zbudowania USBasp

Rezystory:
R1: 10k
R2: 180Ω
R3: 100Ω
R5, R6: 68Ω
R7: 2k2
Kondensatory:
C1, C2: 22p
C3: 10µ
C4: 100n
Półprzewodniki:
IC1: Atmega8 UWAGA: Nie należy stosować mikroprocesora o oznaczeniu Atmega8-PU ze względu na jego ograniczenie maksymalnej częstotliwości taktowania do 8Mhz!
LED1: Czerwona dioda LED @20mA
LED2: Zielona dioda LED @20mA
D2, D3: Dioda Zenera 3V6
Gniazda:
X1: Gniazdo USB, typ B
SV1: Gniazdo pod wtyk IDC-10
Inne:
Q1: Kwarc 12Mhz, obudowa HC49-S
SW1: Dip-Switch, trzy pozycyjny

Przeniesienie mozaiki ścieżek na laminat zrealizowałem używając metody termo transferu – czyli wydruk drukarką laserową na papierze kredowym (polecam), później przepuszczenie laminatu i przyczepionego do niego papieru (oczywiście laminat należy wcześniej odtłuścić, np. używając rozpuszczalnika), przez laminator ok. 10 razy (można zamiast laminatorem, posłużyć się żelazkiem), efekt po zeskrobaniu papieru:

Naniesiony toner na laminatNaniesiony toner na laminat

Następnym etapem było trawienie płytki. Podczas trawienia w roztworze B327, ważne jest by była utrzymywana temperatura ok. 40 C, dlatego też słoik z roztworem został zanurzony w gorącej wodzie:

Trawienie PCBTrawienie PCB

Po zakończonym trawieniu należy usunąć toner zabezpieczający miedz, polecam rozpuszczalnik nitro:

Easy AdSense by Unreal

PCB po trawieniu, przed usunięciem toneruPCB po trawieniu i usunięciu tonera

Pozostaje teraz tylko powiercić otwory i oszlifować płytkę (wyrównać krawędzie). Po zakończeniu procesu tworzenia można przystąpić do lutowania elementów, zaczynając od umiejscowienia zwór. Samo lutowanie może przystworzyć wiele kłopotów, jeśli grot lutownicy nie jest odpowiednio ostry. Widok płytki, po przylutowaniu wszystkich elementów:

Polutowana płytka programatora USBaspPolutowana płytka programatora USBasp

W celu zabezpieczenia miedzi, polecam prostą metodę – rozpuszczenie kalafonii w spirytusie, następnie naniesienie roztworu małym pędzelkiem na płytkę od strony ścieżek.

Gotowe do wydruku (PDF) wzory płytek znajdują się na końcu artykułu. Można również znaleźć kilka na oficjalnej stronie projektu.

Bardzo polecam zlecenie wykonania płytki PCB w wyspecjalizowanej firmie zajmującej się produkcją PCB, dzięki temu płytka jest bardziej estetyczna, zachowana jest bardzo duża dokładność rozmieszczenia otworów, naniesiona jest solder maska oraz opis elementów (schemat montażowy). Poniżej zdjęcie płytki (2 płytki na zdjęciu) wykonanej poprzez taką firmę:

PCB USBaspPCB USBasp

Pierwsze uruchomienie

Teraz, gdy programator jest już zbudowany, należy zaprogramować znajdującą się w nim Atmegę8 (lub m48), do tego celu potrzebny jest osobny programator, może to być np.  STK200 (port LPT), STK500 itp. Jeśli jednak, nie posiadasz żadnego programatora, skontaktuj się ze mną a postaram się wysłać zaprogramowaną Atmegę8. Programator podłącza się do USBasp poprzez złącze IDC-10, rozkład pinów w gnieździe oryginalnego programatora (USBasp) znajduje się po lewej stronie, natomiast w wersji opisywanej w tym artykule – po prawej stronie:

Rozkład pinów USBaspRozkład pinów w USBasp, zmodyfikowanymRzomieszczenie pinów, opis przełączników

Rozkład przedstawiony po prawej stronie jest zgodny z tym, które stosuje firma Atmel w sowich oryginalnych programatorach. Rozkład taki zmniejsza ryzyko powstania błędu podczas programowania, gdzie zastosowane są długie kable od programatora do procesora, ponieważ każda linia danych rozdzielona jest masą, z wyjątkiem MOSI.

Na czas programowania należy włączyć tryb self programing, poprzez przełączenie DIP-SWITCHa o numerze 3 w pozycję ON. Dzięki temu pojawia się możliwość zaprogramowania Atmegi. Po zakończeniu programowania programatora, pozycja przełącznika (3) musi być w stanie OFF.

Najnowszą wersję wsadu pamięci Atmegi można ściągnąć z oficjalnej strony. Polecam wsad dla Atmegi8, który znajduje się w paczce: usbasp.2011-05-28.tar.gz, w podfolderze usbasp.2011-05-28\bin\firmware.

Należy pamiętać, by przed zaprogramowaniem Atmegi zapisać również Fuse Bit’y, które mają wartości:

# dla atmega8    HFUSE=0xC9  LFUSE=0xEF
# dla atmega48   HFUSE=0xDD  LFUSE=0xFF

Fuse Bit'y USBasp dla Atmega8

W przypadku poprawnego  zaprogramowania uC, można podłączyć programator do komputera, powinna zaświecić się czerwona dioda LED, a w komputer powinien sygnalizować wykrycie nowego sprzętu…

Instalacja sterowników

Sposób instalacji sterowników opisany został w odrębnych artykułach, znajdujących się w kategorii programatory. Tam również załączone są odpowiednie sterowniki.
Poniżej bezpośrednie linki do artykułów:

Obsługa programatora

Najpopularniejszym programem obsługującym programator USBasp, jest AVRdude. Jest to program konsolowy w związku z czym obsługuję się go z wiersza poleceń. Istnieje wiele pochodnych programów okienkowych, których używanie jest o wiele wygodniejsze (są to nakładki graficzne – GUI – na program AVRdude). Zostały one przedstawione w artykule Porównanie programów do obsługi programatora USBasp.

Częste problemy z USBasp

DOWNLOAD

- budowa programatora:

Posiadam kilka wytrawionych płytek, jak i gotowych do pracy programatorów, w przypadku zainteresowania proszę o kontakt.
W razie wystąpienia problemów proszę o pozostawienie komentarza.

Posted on Sierpień 19, 2009 at 1:27 by Wojtek · Permalink
In: Programatory · Tagged with: , , , , , , , , , , , , , , ,

163 Responses

Subscribe to comments via RSS

  1. Written by Michał
    on 25 czerwca 2013 at 16:23
    Odpowiedz · Permalink

    „UWAGA: Nie należy stosować mikroprocesora o oznaczeniu Atmega8-PU ze względu na jego ograniczenie maksymalnej częstotliwości taktowania do 8Mhz!”

    Czy mogę zastosować ATMEGA8A-PU ?

  2. Written by blackhat seo tools vps
    on 3 lipca 2013 at 8:33
    Odpowiedz · Permalink

    It’s the best time to make some plans for the future and it’s time to be happy.
    I have read this post and if I could I want to suggest you some interesting things or tips.

    Maybe you can write next articles referring to this article.
    I desire to read more things about it!

  3. Written by high risk merchant account ach
    on 4 lipca 2013 at 12:53
    Odpowiedz · Permalink

    Don’t blame the state governors for high college tuition in state colleges and universities. Instead of trying to get a merchant account, just signup on a 3rd party payment processor. The system then presented an opportunity for these goldsmiths to loan out money just by issuing a receipt even if it was not backed by any gold or silver held for safekeeping.

  4. Written by cheap plastic wine glasses
    on 21 lipca 2013 at 22:25
    Odpowiedz · Permalink

    Greetings! I’ve been following your website for a while now and finally got the courage to go ahead and give you a shout out from Humble Tx! Just wanted to tell you keep up the fantastic job!

  5. Written by boydcom.com
    on 7 sierpnia 2013 at 8:03
    Odpowiedz · Permalink

    Thank you a bunch for sharing this with all people you actually realize what
    you are speaking about! Bookmarked. Please also visit my site =).
    We can have a link trade arrangement among us

  6. Written by wiza do egiptu
    on 9 grudnia 2013 at 18:42
    Odpowiedz · Permalink

    I usually do not drop a leave a response, but after browsing through
    a ton of remarks on

  7. Written by Piotr
    on 31 stycznia 2014 at 20:59
    Odpowiedz · Permalink

    Witam. Jakiej najmniejszej mocy rezystory oraz diody mogę użyć? Mam 0.25W, czy będzie ok?

  8. Written by herbata
    on 13 lutego 2014 at 17:35
    Odpowiedz · Permalink

    Jakie wymiary ma miec plytka PCB dla pobranych wzorow metoda termotransferu?

  9. Written by Dawid
    on 28 marca 2014 at 22:35
    Odpowiedz · Permalink

    Czy tym programatorem będę mógł w stanie zaprogramować PIC12F629 ?

  10. Written by www
    on 7 maja 2014 at 12:52
    Odpowiedz · Permalink

    First of all I want to say excellent blog! I had a quick question in which I’d like to ask if you do not mind.
    I was interested to know how you center yourself and clear your
    thoughts before writing. I’ve had difficulty clearing my thoughts in getting my ideas
    out. I truly do take pleasure in writing but it just seems like the first 10
    to 15 minutes are usually wasted just trying to figure out how to begin.
    Any recommendations or hints? Thanks!

  11. Written by kuba33a
    on 20 maja 2014 at 17:09
    Odpowiedz · Permalink

    Jakie wymiary ma płytka ?, Ile kosztowały elementy elektroniczne.

    • Written by KALKULATOR
      on 19 sierpnia 2016 at 14:14
      Odpowiedz · Permalink

      Kalkulator w ręke……… i licz.

  12. Written by Piotr
    on 24 maja 2014 at 21:08
    Odpowiedz · Permalink

    Witam. Wciąż wyskakuje mi komunikat „nie rozpoznano urządzenia”. Sprawdzałem na kilku systemach i różnych komputerach. Diody zmieniłem na 3v3. W czy może być problem? Nie widzę żadnych zwarć ani zimnych lutów. Dioda po podłączeniu świeci.

  13. Written by Olo
    on 13 września 2014 at 7:36
    Odpowiedz · Permalink

    Witam,jakie procki z rodziny Atmela obsługuje ten programator?.Pozdrawiam

  14. Hi, i think that i saaw you vizited my web site sso i came to
    “return the favor”.I am ttrying to find things to improve my website!I suppose its ook to use some of
    your ideas!!

  15. Written by robo
    on 9 listopada 2014 at 12:36
    Odpowiedz · Permalink

    Problem polega na tym że jak zaprogramuję Atemga 8 to mi nie wykrywa programatora. Urządzenie nieznane pisze.
    Płytka jest ok bo jak włożę inną atmegę to działa. Widzę że problem jest po stronie zaprogramowana procka. Ustawiam fusy na HFUSE=0xC9 LFUSE=0xEF
    Ma ktoś jakiś pomysł.

  16. Written by PaPaj
    on 13 listopada 2014 at 23:15
    Odpowiedz · Permalink

    Mam podobny problem jak Piotr z 24. maja 2014. – „nie rozpoznano urządzenia”. Zaprogramowaną mam atmegę8a-pu, kwarc 12MHz, reszta jak na schemacie. Czy koniecznie musi być atmega8, czy można zastosować inny uC, czy też można skorzystać z innego wsadu do procka?

    • Written by Piotr
      on 18 listopada 2014 at 16:19
      Odpowiedz · Permalink

      Kolego PaPaj, Twój komentarz mnie oświecił. Używamy tego samego uC (Atmega8a-pu). Z ciekawości wysiliłem się i poszukałem innego (Atmega8L-8PU). Programator okazał się całkowicie sprawny, po wgraniu wsadu do nowego uC sprzęt jest prawidłowo wykrywany, także polecam zmianę procka :)

  17. Written by Piotr
    on 15 listopada 2014 at 21:31
    Odpowiedz · Permalink

    Witam. Mam od dłuższego czasu problem z programatorem. Po podłączeniu pojawia się komunikat „nie rozpoznano urządzenia”. Niezależnie od systemu, kabla i komputera. Najpierw zrobiłem na płytce uniwersalnej, myślałem, że to mój błąd, później zamówiłem płytkę profesjonalnie zrobioną (wzór z tej strony) i wciąż to samo. Programuje się dobrze, jest rozpoznawany uC bez problemów. Sprawdziłem pod kątem zwarć i zimnych lutów i dałem również do sprawdzenia doświadczonemu w lutowaniu koledze – nic nie znalazł. W czym może być problem? Diody są zmienione na 3V3.

  18. Written by LUKE
    on 3 stycznia 2015 at 23:00
    Odpowiedz · Permalink

    Programator działa u kolegi na każdym komputerze. Jednak u mnie na żadnym. „Nie rozpoznano urządzenia” instalacja sterowników nie przynosi efektu. POMOCY

  19. Written by Marek
    on 19 kwietnia 2015 at 19:37
    Odpowiedz · Permalink

    Witam, czy jest możliwość wstawienia plików PCB z Eagle lub wygenerowanie pdf kliszy do wykonania soldermaski.
    Pozdrawiam.

  20. Written by olej opałowy gliwice
    on 24 października 2015 at 6:16
    Odpowiedz · Permalink

    Bardzo przydatny wpis, polecam wszystkim Dobry olej opałowy śląsk

  21. Written by Carla
    on 1 listopada 2015 at 12:10
    Odpowiedz · Permalink

    Excellent blog here! Also your web site rather a lot up fast!
    What host are you the usage of? Can I get your affiliate hyperlink in your host?
    I wish my website loaded up as fast as yours lol

  22. Written by web designer ottawa
    on 17 stycznia 2016 at 8:01
    Odpowiedz · Permalink

    In order to find out how this works, try resizing your browser.
    There should be all browser compatible navigation interfaces,
    where from the visitors can move through one page to another and see the objectives of
    the website as a whole and at the same time see
    the image and graphic application. You also want to pay attention to things like how long it will
    take for the page to load.

  23. Written by 9145
    on 4 maja 2016 at 11:01
    Odpowiedz · Permalink

    Wyjątkowo korzystny wpis, polecam wszystkim Stomatolog Cennik gliwice

  24. Written by https://slotmachines.work
    on 26 sierpnia 2016 at 12:39
    Odpowiedz · Permalink

    Right this moment’s on-line slots and video slots operate the same means as the typical casino slots do.
    Check whether the site is licensed, who the owner is, and how
    the money transactions are done. But, once you take the plunge,
    you’d be surprised to find out that it’s not as complex as it seems
    to be.

  25. Written by bookopedz.blogspot.com
    on 3 września 2016 at 22:21
    Odpowiedz · Permalink

    Inside our resources, translation assignments are taken in from all more than Finland and from abroad.

  26. Written by Rafaela
    on 20 listopada 2016 at 20:22
    Odpowiedz · Permalink

    At the prepare station, an company rep gave us our tickets for an overnight train and quick directions, that when we reached the opposite
    side, somebody with a sign can be ready for us. On the practice, our group
    was split up into completely different vehicles and after
    we arrived early in the morning, I forgot what my group regarded like.

  27. Written by Patricia
    on 25 listopada 2016 at 23:59
    Odpowiedz · Permalink

    E como já estamos nos aproximando do natal e também das festas de
    final de ano, hoje em dia nossa pista privativo de artesanato é para lhes ensinar como decorar sua mesa de natal com lindas esculturas de frutas, verduras e também legumes
    em normalmente, que vão deixar a ceia bastante mais elegante e também sofisticada.

  28. Written by example
    on 29 kwietnia 2017 at 21:45
    Odpowiedz · Permalink

    It’s hard to come by educated people in this particular topic, but you seem like you
    know what you’re talking about! Thanks

Subscribe to comments via RSS

Leave a Reply