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 :).
Nokia 6310i jest świetna po prostu. Najszybciej mi się wybiera nr nawet z mokrą reką czy w rękawiczce. Wygodny, świetnie…
super artykuł. można powiedzieć że będzie wiecznie aktualny dla każdego poczatkującego ( i nie tylko ) elektronika. Dziękuję!
Witam stary konwerter rs232 na USB ponownie ożył....... Dzięki za pomoc!!!
Już rozgromiłem problem... jak zwykle sam :( dobrze ,że przyświeciliście mi lampką :). wystarczy podać akceptowane bez portu samo IP…
Mam taki problem, że dane są niby wysyłane ale domoticz ich nie odbiera. Link bezpośrednio w przeglądarce odbiera ale po…