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 zamienia on popularną płytkę z mikrokontrolerem atmega w pełnowartościowy programator szeregowy, zgodny z ISP, który do działania wymaga jeszcze darmowego wsadu. Niska cena i podstawka ZIF28 zachęciły mnie do zakupu. Po udanych testach popełniam właśnie ten wpis.

AVR ISP Programmable Shield do Arduino Nano

Wspomnianą płytkę (shield) nakłada się na złącza goldpin Arduino Uno. Całość tworzy zwartą konstrukcję zasilaną z portu USB. Sam AVR ISP Shield wygląda tak:

Prócz użytecznej podstawki ZIF28 pasującej do atmega8/88/328 są punkty lutownicze J1 do obsługi RS232 TTL, do których można przylutować goldpiny, brzęczyk piezo, gniazdo ISP 10 pin w standardzie KANDA oraz mniejsze, 6 pinowe. Do tego 3 diody LED – pulsująca Heart Beat, sygnalizująca błąd ERROR i programowanie PROG.

Zestaw Arduino Uno (klon) + Shield wygląda jak niżej:

Jeśli chodzi o wykonanie, to podstawka jest oczywiście podróbką TEXTOOL o dźwięcznej nazwie TFXTDOL :). PCB jest dobrej jakości, podobnie luty. Generalnie wszystko sprawia dobre, solidne wrażenie, prócz oczywiście podstawki, która i tak sporo wytrzyma.

Takie cudo można kupić na Aliexpress za mnie niż 3$ -> Arduino AVR ISP Shield. Jakby ktoś potrzebował jeszcze samo Arduino UNO, oczywiście klon to można kupić np. tu. W linku jest kilka wersji – gniazdko USB 3.0, atmega w wersji smd lub DIP itd.

Sketch ArduinoISP

Prócz sprzętu, potrzebny jest jeszcze wsad, który ogarnie protokół ISP. W środowisku Arduino IDE w zakładce Examples -> 11. ArduinoISP znajduje się szkic ArduinoISP.

Szkic / sketch trzeba wgrać do płytki Arduino UNO:

No i gotowe. Teraz jakiś soft na Windows / Linux i można programować.

Arduino ISP Programmer w akcji

Programator będzie widziany w systemie operacyjnym jako port szeregowy. Klony Arduino najczęściej są oparte o przejściówkę CH340. W Linuksach będą to porty ttyUSB0, ttyUSB1 itd. W Windows typowo któryś port COM. Dokładnie można to sprawdzić w Zarządzaniu komputerem i pozycji Menedżer urządzeń:

W moich przypadku jest to COM8 – 3 pozycja od dołu w prawej części.

Do programowani najlepszy będzie oczywiście kombajn AVRDUDE. Ma on w pliku avrdude.conf zdefiniowany programator pod nazwą arduino_as_isp. Z konfiguracji wynika, że jest on zgodny z STK500, baudrate jest ustawione na 19200. Dla nie lubiących tekstowej obsługi avrdude, polecam graficzną nakładkę AVRDUDESS. Właśnie w tym programie, po uprzednim ustawieniu właściwego portu COM, wykonałem kilka testów, o których niżej.

Identyfikacja i odczyt podstawowych danych attiny13A:

Układ podłączyłem z programatorem za pomocą kabelków i płytki stykowej:

Kolej na większego attiny2313:

I podłączenie na płytce stykowej:

I nieco mniej popularny attiny24:

Również podłączony na płytce stykowej:

I na koniec atmega328 umieszczona w podstawce shieldu:

Wszystko działało bez zarzutu. Na początek wykonywałem detekcję układu, później odczyt fuse bitów i lock bitów. Następnie wgrywałem wsad – plik hex do flasha i eep do eeprom.

Podsumowanie

Na zakończenie – shield za 10-12 zł to całkiem niezłe rozszerzenie płytki Arduino. Generalnie używam programatora USBasp, który kiedyś złożyłem samodzielnie, mogę też polecić taniego gotowca. Mam też STK200 podłączony pod praktycznie niespotykany już port równoległy, używałem też skleconego z przewodów układu autorów Bascoma. Programator na Arduino jest pełnoprawnym uzupełnieniem mojej kolekcji, a cechą wspólną wszystkich tu wymienionych jest avrdude.

PS. To 250 wpis na tej stronie :).

Możesz również polubić…

Leave a Reply

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.