Programator ISP mikrokontrolerów AVR Opis Programator USB AVR PROG 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. USB AVR PROG 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 1,8 V - 5,5V. Obs³ugiwane mikrokontrolery Programator USB AVR PROG umo liwia programowanie wszystkich mikrokontrolerów rodziny AVR z interfejsem ISP obs³ugiwanych przez AVRDUDE i po zmianie firmware'u równie przez AVRStudio. Wspó³praca z programami Programator USB AVR PROG 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. USB AVR PROG 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 1,8V - 5,5V - standardowy interfejs KANDA 10 pin - 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 - dodatkowa dioda LED sygnalizuj¹ca pod³¹czenie programatora STK500v2 do wirtualnego portu szeregowego (COM) - wyprowadzone linie Rx i Tx, co po zmianie firmware'u umo liwia ³atwe u ywanie programatora równie jako portu szeregowego - konstrukcja umo liwiaj¹ca pod³¹czenie programatora do uk³adu bez dodatkowej taœmy - ma³e wymiary (28x58mm)
Opis z³¹czy programatora Z³¹cze J6 w standardzie ISP s³u ¹ce do zmiany firmware'u Z³¹cze J4 - port COM (linie RxD i TxD) TxD RxD Do konfiguracji programatora s³u ¹ 2 zworki J1 i J7: Jumper J7 - zmiana szybkoœci programowania ON (Slow SCK) - programowanie uc taktowanych <1,5 MHz OFF (Speed SCK) - programowanie z maksymaln¹ szybkoœci¹ Jumper J1 ON - zasilanie uk³adu docelowego 5V Z³¹cze programowania ISP (standard KANDA) Rozmieszczenie sygna³ów z³¹cza w standardzie KANDA J1 J7 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 USB AVR PROG umo liwia bezpoœrednie wpiêcie programatora w z³¹cze interfejsu ISP uk³adu docelowego. 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.
Instalacja sterowników 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
Instalacja sterowników 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 USB AVR PROG do innego portu USB ni poprzednio wywo³a okno instalacji sterownika (jak przy ka dym innym urz¹dzeniu USB).
U ytkowanie Programator USB AVR PROG 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), Bascom-AVR (za poœrednictwem AVRDUDE). 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
AVRDUDE-c.d. Przyk³ad programowania mikrokontrolera ATmega8 programatorem USB AVR PROG i programem AVRDUDE z lini poleceñ.
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.
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
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
Konfiguracja Bascom-AVR 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
WinAVR Naturalnym œrodowiskiem pracy programatora PRG AVR USB (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: - i - - znajdÿ i zakomentuj (dodaj znak # na pocz¹tku) wiersze rozpoczynaj¹cy siê od AVRDUDE_PROGRAMMER AVRDUDE_PORT dopisz wiersz: AVRDUDE_PROGRAMMER = usbasp dopisz wiersz: AVRDUDE_PORT = usb - zale noœci od potrzeby dodaj uzupe³nij cykl programowania o programowanie pamiêci eeprom i bajtów 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ê J1, 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).
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 J6 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 J6 i zaprogramowaæ go odpowiednim plikiem *.hex. Programator pracuj¹cy w trybie zgodnoœci z STK500v2