Programator DIY do AVR – USBasp

USBasp – bardzo popularny programator do mikrokontrolerów AVR opisywałem całkiem niedawno na stronie Programator USBasp v2.0 Lcsoft. Był to gotowy moduł, który można kupić na ebay’u czy aliexpress za naprawdę małe pieniądze. Jednak swój sukces osiągnął dzięki bardzo prostej budowie i może zostać samodzielnie złożony nawet przez początkującego elektronika. Ja swojego USBasp zacząłem składać w 2007 roku i nieukończony projekt wrzuciłem do pudełka. Po 8 latach ponownie ujrzał światło dzienne i myślę, że warto go uruchomić.

Schemat USBasp na atmega8

W sieci można znaleźć kilka wersji schematów programatora, ale najlepiej oprzeć się na oryginalne ze strony autora, czyli www.fischl.de/usbasp/. Ja, projektując kilka lat temu PCB do swojego USBasp, korzystałem z jakiegoś innego schematu, zawierającego błędy. Zatem korzystajmy z oryginału, który wygląda tak:

Schemat na którym ja się wzorowałem nie zawierał rezystorów zabezpieczających R4-R6, diod Zenera 3V6, a rezystor R3 był włączony między 14 pin atmegi i R2, a powinien być umieszczony za gniazdem USB i przed R2. Mimo to mój USBasp działa (dolutowałem od strony druku diody Zenera).

Jednostronna płytka drukowana do USBasp DIY

Płytkę drukowaną do programatora projektowałem pod konkrektną obudowę, więc miałem z góry narzucone wymiary laminatu. Przy rozmieszczaniu elementów przeszkadzał nieco otwór na śrubę, która przechodzi przez środek PCB. Płytka jest jednostronna i nie udało się uniknąć kilku zworek (kolor czerwony), część z nich można zastąpić rezystorami zabezpieczającymi, o czym niżej.

Jak pisałem wyżej, w moim układzie nie uwzględniłem kilku elementów i projekt należy traktować jako punkt odniesienia, który wymaga poprawek a nie wzór do skopiowania. Nie uwzględnione diody Zenera wlutowałem od strony druku do pinów 2 i 3 gniazdka USB i masy. Tak zmontowany układ działa prawidłowo, ale poza tym dwie pionowe zworki przy gnieździe KANDA P1 powinny być zastąpione rezystorami R5 i R6 270Ω. Ścieżkę prowadzącą z pinu 19 atmegi do pinu 7 gniazda P1 KANDA należy przeciąć i połączyć rezystorem R4. Rezystor R3 powinien być wlutowany między 1 i 2 pin gniazdka USB P2. Zapewni to zgodność z oryginalnym schematem. Nie montowałem u siebie goldpinów P4 – SlowSCK, gdyż w nowszych wersjach firmware taktowanie ustawia się programowo. Można wtedy zrezygnować z wlutowywania długiej zworki prowadzącej do 25 nogi atmegi. Goldpiny P5 (Selfprogramming) umożliwią w przyszłości założenie zworki i upgrade firmware’u. W miejsce P3 wlutowałem włącznik kołyskowy, którym można podać napięcie zasilania na gniazdo KANDA – VTarget.

Niedokończony układ sprzed 8 lat wyglądał tak:

Diody Zenera zabezpieczające port USB komputera wlutowane od strony ścieżek:

Po wlutowaniu wszystkich elementów pozostało zaprogramowanie mikrokontrolera atmega8.

Teraz wystarczy wywiercić otworki w obudowie na diody LED, przełącznik i kabel USB.

Zaprogramowanie atmega8 wsadem usbasp 2011-05-28

Teraz znajdujemy się w punkcie, kiedy to musimy zaprogramować mikrokontroler AVR by mieć programator do programowania mikrokontrolerów AVR. Na szczęście nie jest to duży problemem – wystarczy płytka stykowa z zasilaczem, atmega8 i programator składający się z wtyczki lpt i kabelka. Jeśli ktoś posiada bardziej profesjonalny STK200, to oczywiście również się nada. Niezbędny będzie komputer czy laptop ze złączem LPT.

Mikrokontroler wsadzamy do płytki, do nóżek 7 i 20 podłączmy zasilanie +5V, do 8 i 22 GND (masę). Końcówki programatora odpowiednio: RESET – 1 pin, MOSI – 17 pin, MISO – 18 pin, SCK – 19 pin. Masę programatora koniecznie trzeba połączyć z masą na płytce.

Programowanie zaczynamy od wgrania wsadu. Najnowszą wersję pobieramy ze strony projektu http://www.fischl.de/usbasp/.

Po rozpakowaniu kopiujemy sobie w dogodne miejsce plik usbasp.atmega8.2011-05-28.hex. Do zaprogramowania polecam świetny avrdude. W Windowsie czy Linuksie wystarczy wpisać w linii komend:

avrdude -c bascom -p m8 -U flash:w:usbasp.atmega8.2011-05-28.hex

Parametr -c bascom oznacza zastosowanie programatora typu bascom, -p m8 to typ mikrokontrolera – atmega8, dalsza część to programowanie pamięci flash zawartością wskazanego pliku.

Teraz musimy wgrać wymagane fusebity. Tu należy poświęcić nieco uwagi, bo błąd może narobić problemów lub uczynić atmegę bezużyteczną. Procesor z półki sklepowej posiada skonfigurowane fusebity, które między innymi ustawiają taktowanie procesora z wewnętrznego oscylatora o prędkości 1MHz. Dlatego możemy programować “goły” procesor, z podłączonym tylko zasilaniem. Po wgraniu nowych wartości taktowanie zostanie przestawione na zewnętrzny kwarc i nie będziemy już mieć możliwości komunikowania się z atmegą wpiętą w płytkę stykową – chyba że dołożymy rezonator i dwa kondensatorki. Wywołujemy avrdude ze składnią:

avrdude -c bascom -p m8 -U hfuse:w:0xC9:m -U lfuse:w:0xEF:m

W skrócie – wgrywamy fusebity o wartości 0xC9 i 0xEF szesnastkowo. Mikrokontroler jest gotowy do włożenia w podstawkę na płytce programatora.

Podsumowanie

Kompletny i sprawdzony wizualnie programator można podłączyć do komputera i sprawdzić, czy jest poprawnie wykrywany. Mój gotowy układ, zamknięty w obudowie wygląda tak:

Jego przewaga nad większością gotowych układów to kabel z wtykiem USB – dzięki temu nie trzeba stosować przedłużaczy chroniących przed wyłamaniem wtyczki USB z płytki. Układ też wygodniej podłącza się do komputerów stacjonarnych.

Wojtek

Zobacz komentarze

Ostatnie posty

Tani moduł IoT z kamerką ESP32 CAM – pierwsze uruchomienie

Mega tanie, bezprzewodowe moduły Internet of Things na dobre zadomowiły się w naszych sieciach. Od…

3 dni temu

Aktualizacja oprogramowania w stacji lutowniczej AiXun T3A

Pewnie nie każdy posiadacz tytułowej stacji lutowniczej wie, że posiada ona możliwość aktualizacji firmware'u. Producent…

3 tygodnie temu

Programator USB AVR ISP z Arduino Nano

Jakiś czas temu, przeglądając Aliexpress natknąłem się na ciekawy shield do Arduino Nano. Według opisu…

4 tygodnie temu

Tester elementów elektronicznych na atmega – aktualizacja firmware’u

W mailach i komentarzach kilka razy przewijała się prośba o ten wpis. Chodzi o aktualizację…

2 miesiące temu

Wzmacniacz słuchawkowy Lovely Cube – popularny klon Lehmanna

Dziś tematyka audio, a nawet audiofilska. Uznany wzmacniacz słuchawkowy Lehmann Black Cube Linear o dość…

2 miesiące temu

Podsumowanie 2023 roku

Tradycyjnie w styczniu, publikuję podsumowanie minionego roku na stronie grylewicz.pl. Poniżej trochę liczb, lista najpopularniejszych…

3 miesiące temu