(USBasp) Programator ISP mikrokontrolerów AVR Opis Programator (USBasp) jest programatorem ISP 8-bitowych mikrokontrolerów AVR firmy Atmel. Pod³¹czany do portu USB komputera PC umo liwia ³atwe programowanie mikrokontrolerów z notebooków, które obecnie nie posiadaj¹ w standardzie portów RS-232 i LPT. Wspó³pracuje z programem AVRDUDE jako USbasp, a po zmianie firmware'u mo e pracowaæ jako programator STK500v2. posiada interfejs ISP w standardzie Kanda (10 pin), co uniemo liwia ewentualne pomy³ki w pod³¹czaniu do uk³adu docelowego. Zastosowany bufor napiêciowy umo liwia programowanie mikrokontrolerów zasilanych napiêciami 2,0 V - 5,5 V. Obs³ugiwane mikrokontrolery Programator (USBasp) umo liwia programowanie wszystkich mikrokontrolerów rodziny AVR z interfejsem ISP obs³ugiwanych przez AVRDUDE, Bascom i po zmianie firmware'u równie przez AVRStudio. Wspó³praca z programami Programator wspó³pracuje z programem AVRDUDE, który jest natywnym interfejsem programowania œrodowiska WinAVR. AVRDUDE mo na tak e obs³ugiwaæ z poziomu linii poleceñ lub za pomoc¹ ró nych nak³adek GUI, takich jak: AVRDUDE-GUI, AVR 8 Burn-O-Mat. mo e tak e wspó³pracowaæ ze œrodowiskami AVRStudio, Bascom-AVR, CodeVisionAVR. Podstawowe w³aœciwoœci - umo liwia programowanie w systemie wszystkich mikrokontrolerów AVR - pod³¹czany do portu USB komputera PC umo liwia programowanie mikrokontrolerów równie z notebooków - wspó³pracuje z WinAVR, Bascom-AVR, AVRStudio, CodeVisionAVR - wspó³praca z uk³adami zasilanymi napiêciami 2,0V - 5,5V - standardowy interfejs KANDA 10 pin - zabezpieczenie nadpr¹dowe chroni¹ce port USB (bezpiecznik polimerowy) - diody LED sygnalizuj¹ce stan pracy programatora w wersji USBasp i STK500v2 - mo liwoœæ zasilania uk³adu docelowego z portu USB (5V) - mo liwoœæ programowania mikrokontrolerów taktowanych zegarem <1,5 MHz - z³¹cze ISP umo liwiaj¹ce zmianê firmware'u programatora - ³atwa zmiana firmware'u umo liwiaj¹ca pracê jako programator STK500v2 - ma³e wymiary (41x47mm) - 1 - USB AVR AVR USB ISP PROG I
Opis z³¹czy programatora i diod LED Jumper J6 ON - zasilanie uk³adu docelowego 5V Do konfiguracji programatora s³u ¹ 2 zworki J6 i J4A: LED zielona D7 - pod³¹czenie do portu USB, zasilanie programatora LED czerwona D5 - programowanie uk³adu docelowego Z³¹cze J2 w standardzie ISP s³u ¹ce do zmiany firmware'u Z³¹cze programowania ISP (standard KANDA) Jumper J4A - zmiana szybkoœci programowania ON (Slow SCK) - programowanie uc taktowanych <1,5 MHz OFF (Speed SCK) - programowanie z maksymaln¹ szybkoœci¹ Rozmieszczenie sygna³ów z³¹cza w standardzie KANDA J6 J4A ON OFF ON OFF uk³ad docelowy jest zasilany z programatora uk³ad docelowy nie jest zasilany z programatora zmniejszenie czêstotliwoœci sygna³u taktuj¹cego (w przypadku gdy mikrokontroler jest taktowany sygna³em mniejszym ni 1,5MHz) programowanie z maksymaln¹ prêdkoœci¹ MOSI NC RST SCK MISO 2 1 VCC GND GND GND GND MOSI, MISO, SCK - sygna³y magistrali SPI RST - reset uk³adu docelowego VCC - napiêcie zasilania uk³adu docelowego GND - masa uk³adu docelowego Rysunek przedstawia z³¹cze interfejsu ISP w standardzie KANDA, które powinno byæ zamontowane na p³ytce z programowanym uk³adem docelowym. Z³¹cze zamontowane w programatorze umo liwia pod³¹czenie programatora za pomoc¹ standardowej taœmy IDC. W przypadku zastosowania niestandardowego u³o enia pinów, nale y u yæ odpowiedniej przejœciówki. Pod³¹czenie z uk³adem docelowym Rysunek przedstawia przyk³adowy schemat pod³¹czenia programatora do mikrokontrolera ATmega8. - 2 -
Instalacja sterowników (Windows XP) 1) Pod³¹czyæ programator do portu USB za pomoc¹ kabla miniusb B(Canon)-USB A 2) Przy pierwszym pod³¹czeniu programatora do komputera, system Windows poinformuje u ytkownika o wykryciu nowego urz¹dzenia i przyst¹pi do jego instalacji 3) W oknie kreatora nale y zaznaczyæ opcjê Nie, nie tym razem i wybraæ Dalej 4) W nastêpnym oknie zkreatora aznaczyæ Zainstaluj z listy lub okreœlonej lokalizacji i wybraæ Dalej - 3 -
Instalacja sterowników (Windows XP) c.d. 5) Nastêpnie wybraæ opcjê Wyszukaj najlepszy sterownik w tych lokalizacjach oraz Uwzglêdnij tê lokalizacjê w wyszukiwaniu i podaæ œcie kê dostêpu do sterownika. Po wybraniu lokalizacji sterowników, wybraæ Dalej 6) Po poprawnej instalacji programatora, w oknie Mened era urz¹dzeñ powinna pojawiæ siê pozycja LibUSB-Win32 Devices a w niej USBasp Pod³¹czenie do innego portu USB ni poprzednio wywo³a okno instalacji sterownika (jak przy ka dym innym urz¹dzeniu USB). Instalacja sterowników - Linux (Ubuntu). Do obs³ugi programatora wymagana jest biblioteka libusb. Je eli nie jest zainstalowana, nale y j¹ zainstalowaæ, najproœciej poprzez wykonanie w Terminalu komendy (posiadaj¹c po³¹czenie z internetem): sudo apt-get install libusb-1.0-0-dev Do obs³ugi natywnym oprogramowaniem dla systemów GNU GPL jest AVRDUDE. Najproœciej poprzez wykonanie w Terminalu komendy: sudo apt-get install avrdude - 4 -
U ytkowanie Programator (USBasp) obs³ugiwany jest za pomoc¹ darmowego programu AVRDUDE, który jest rozpowszechniany na licencji GNU GPLv2. Strona domowa programu to: http://savannah.nongnu.org/projects/avrdude. Wspó³pracuje ze œrodowiskiem WinAVR, AVRStudio (za poœrednictwem AVRDUDE), natywnie z Bascom-AVR (za poœrednictwem AVRDUDE dla wersji < 1.11.9.6). AVRDUDE W³aœciwoœci programu AVRDUDE: -Obs³ugiwany z lini poleceñ, co umo liwia uruchamianie z poziomu innych aplikacji -Dzia³a w systemach, takich jak: Windows, Linux, MacOS X, FreeBSD -umo liwia zapis i odczyt pamiêci Flash, EEPROM, fuse i lock bitów Obs³ugiwane mikrokontrolery AVR to miêdzy innymi: - ATmega6450, ATmega3250, ATmega645, Atmega325 - ATmega2561, ATmega2560, ATmega1281, Atmega1280, - Atmega640 - ATmega168, ATmega88, Atmega48 - ATmega8535, ATmega8515, ATmega8, Atmega161, - ATmega32, ATmega6490, ATmega649, ATmega3290P, - ATmega3290, ATmega329P, ATmega329, Atmega169, - ATmega163, ATmega162, ATmega644P, Atmega644, - ATmega324P, ATmega164P, Atmega16 - ATmega128, ATmega64, ATmega103 - ATtiny15, ATtiny13, ATtiny12, Attiny11 - Attiny2313 - ATtiny84, ATtiny44, Attiny24 - ATtiny85, ATtiny45, Attiny25 - ATtiny861, ATtiny461, Attiny261, ATtiny26-5 -
AVRDUDE-c.d. Przyk³ad programowania mikrokontrolera ATmega8 programatorem i programem AVRDUDE z lini poleceñ. - 6 -
AVRDUDE GUI 1) W polu Location of avrdude podajemy œcie kê dostêpu do programu avrdude.exe 2) W polu Alt. Config file mo na podaæ œcie kê dostêpu do alternatywnego pliku configuracyjnego avrdude.conf 3) W polach -p Device, -c Programmer oraz -P Port podajemy odpowiednio typ programowanego mikrokontrolera, typ programatora (usbasp), oraz wpisujemy rodzaj portu (usb) 4) W polu Flash podajemy œcie kê dostêpu do pliku z programem dla programowanego mikrokontrolera i zaznaczamy typ operacji (odczyt, zapis, weryfikacja) 5) Po naciœniêciu przycisku Execute mikrokontroler zostanie zaprogramowany oraz zostan¹ wyœwietlone informacje o przebiegu programowania. - 7 -
AVR8 Burn-O-Mat 1) Z g³ównego menu wybieramy SettingsZ AVRDUDE 3) W polu AVRDUDE location podajemy œcie kê dostêpu do programu avrdude.exe 3) W polu Programmer wybieramy programator usbasp 4) W polu Port wpisujemy usb 5) Zatwierdzamy wprowadzone parametry przyciskiem Ok 6) Wybieramy typ mikrokontrolera 7) W polu Flash podajemy œcie kê dostêpu do pliku programu mikrokontrolera 8) W celu zaprogramowania mikrokontrolera wciskamy przycisk Write - 8 -
Konfiguracja AVRStudio 1) Z g³ównego menu wybieramy ToolsZ Customize 2) W zak³adce Tools z Menu contens wybieramy New i wpisujemy nazwê programatora 3) W oknie Command podajemy œcie kê dostêpu do programu avrdude.exe 3) W oknie Arguments podajemy parametry: - typ procesora (np. -p m8) - typ programatora (-c usbasp) - port (-P usb) - œcie kê dostêpu do pliku HEX(katalog projektu) (-U flash:w:"{file}":a i ewentualnie -U flash:v:"{file}":a) Przyk³adowa definicja parametrów: -p m8 -c usbasp -P usb -U flash:w:"test_1.hex :a -U flash:v:"test_1.hex :a 4) W oknie Initial directory podajemy œcie kê dostêpu do katalogu projektu 5) Zatwierdzamy wprowadzone parametry przyciskiem Close 6) Dobrze jest przypisaæ klawisze skrótu, jak pokazano poni ej 7) W celu zaprogramowania mikrokontrolera wybiaramy ToolsZ lub np. Ctrl+D - 9 -
Konfiguracja Bascom-AVR (wersja < 1.11.9.6) 1) Z g³ównego menu wybieramy OptionsZ Programmer 2) W zak³adce Programmer z rozwijanej listy wybieramy External programmer 3) Poni ej w zak³adce Other w oknie Program podajemy œcie kê dostêpu do programu avrdude.exe 3) W oknie Parameter podajemy: - typ procesora (np. -p m8) - typ programatora (-c usbasp) - port (-P usb) - œcie kê dostêpu do pliku HEX(katalog projektu) (-U flash:w:"{file}":a i ewentualnie -U flash:v:"{file}":a) 4) Nale y zaznaczyæ opcjê Use HEX file Przyk³adowa definicja parametrów: -p m8 -c usbasp -P usb -U flash:w:"test_1.hex :a -U flash:v:"test_1.hex :a Konfiguracja Bascom-AVR 1) Z g³ównego menu wybieramy OptionsZ Programmer 2) W zak³adce Programmer z rozwijanej listy wybieramy USBASP 3) Poni ej w zak³adce Clock Frequency mo emy ustawiæ czêstotliwoœæ programowania ISP (przy zdjêtej zworce J4A) dostosowan¹ do czêstotliwoœci taktowania mikrokontrolera lub zostawiamy AUTO UWAGA! W NOWEJ WERSJI BASCOM-AVR JEST B D OBS UGI PROGRAMATORA USBASP, NALE Y PODMIENIÆ PLIK NA PLIK ZA CZONY NA CD!!! bascavr.exe - 10 -
WinAVR Naturalnym œrodowiskiem pracy programatora (USBasp) jest pakiet WinAVR. Aby korzystaæ z programatora z poziomu Programmers Notepada lub podobnego IDE nale y w pliku makefile projektu zdeklarowaæ u ycie tego programatora: - znajdÿ i zakomentuj (dodaj znak # na pocz¹tku) wiersze rozpoczynaj¹cy siê od AVRDUDE_PROGRAMMER i AVRDUDE_PORT - dopisz wiersz: AVRDUDE_PROGRAMMER = usbasp - dopisz wiersz: AVRDUDE_PORT = usb fusebitów/lockbitów: AVRDUDE_WRITE_EEPROM = -U eeprom:w:eeprom.hex AVRDUDE_WRITE_LOCK = -U lock:w:0x3c:m AVRDUDE_WRITE_HFUSE = -U hfuse:w:0xc9:m AVRDUDE_WRITE_LFUSE = -U lfuse:w:0x9f:m Je eli któraœ z tych opcji nie jest potrzebna, wskazane jest zakomentowanie zwi¹zanego z ni¹ wiersza W pliku makefile powinna znaleÿæ siê linia: program: $(TARGET).hex $(TARGET).eep (lub np. program: $(TARGET).hex eeprom.eep) $(AVRDUDE) $(AVRDUDE_FLAGS) $(AVRDUDE_WRITE_FLASH) $(AVRDUDE_WRITE_EEPROM) $(AVRDUDE_WRITE_HFUSE) $(AVRDUDE_WRITE_LFUSE) $(AVRDUDE_WRITE_LOCK)! Nieostro noœæ przy ustalaniu wartoœci fusebitów mo e zakoñczyæ siê zablokowaniem mikrokontrolera, niemo liwym do usuniêcia bez wysokonapiêciowego programatora równoleg³ego; konieczne jest dok³adne zapoznanie siê z kart¹ katalogow¹. Po przeprowadzeniu powy szych operacji mo liwe jest programowanie mikrokontrolera poprzez opcjê Tools/Program Programmer's Notepada. UWAGA! W przypadku, gdy wyst¹pi b³¹d programowania, poprzedzony odczytem przez avrdude zerowej sygnatury (avrdude: Device signature = 0x000000) win¹ mo e byæ niskie taktowanie lub du e opóÿnienie startowe programowanego mikrokontrolera nale y za³o yæ w programatorze zworkê J4A, aby zmniejszyæ szybkoœæ SPI przy programowaniu. Dotyczyæ to mo e m.in. fabrycznie nowych mikrokontrolerów (dla Atmega8 ustawione fusebity SUT daj¹ du e opóÿnienie startowe a Ÿród³em taktowania jest generator 1MHz). - 11 -
FAQ (Rozwi¹zanie najczêstszych problemów) Problem Mo liwa przyczyna Rozwi¹zanie Mimo poprawnego pod³¹czenia uk³adu docelowego, nie mo na po³¹czyæ siê z mikrokontrolerem. Zbyt du a ustawiona czêstotliwoœæ magistrali SPI (zbyt ma³e opóÿnienie), w porównaniu do czêstotliwoœci zegara taktuj¹cego mikrokontroler. Za³ó zworkê J4A (kolor czarny) zmniejszaj¹c¹ czêstotliwoœæ programowania. SprawdŸ po³¹czenie z mikrokontrolerem i je eli jest komunikacja, zwiêksz czêstotliwoœæ zegara mikrokontrolera. Zbyt niskie napiêcie zasiania mikrokontrolera. SprawdŸ napiêcie zasilania mikrokontrolera. Pod³¹cz zewnêtrzne zasilanie. Programator nie jest widziany w Menad erze urz¹dzeñ, nie wykrywany jest w systemie. Nieprawid³owo zainstalowane sterowniki. SprawdŸ poprawnoœæ instalacji sterowników. Aktualizacja firmware'u 2 1 VCC MISO MOSI SCK GND RST MOSI, MISO, SCK - sygna³y magistrali SPI RST - reset uk³adu docelowego VCC - napiêcie zasilania uk³adu docelowego GND - masa uk³adu docelowego Zmiana firmware'u do STK500v2 Z³¹cze J2 umo liwia zmianê firmware'u programatora np. do programatora zgodnego z STK500v2 lub upgrade'u obecnego firmware'u. W tym celu nale y do³¹czyæ zewnêtrzny programator ISP do z³¹cza J2 i zaprogramowaæ go odpowiednim plikiem *.hex. Dane techniczne Wymiary : 41 x 47 x 10 mm Waga : ok. 30 g Po³¹czenie do PC : USB Kabel programuj¹cy : 30 cm Z³¹cze programuj¹ce : IDC-10 0.1 standard KANDA Czêstotliwoœæ zegara ISP : 1,845 MHz Napiêcie uk³adu docelowego : Vtarget 2-5,5V Zasilanie uk³adu docelowego : Vtarget 4,5 V Pobór pr¹du z portu USB : 50 ma - 12 -