Programator ISP mikrokontrolerów AVR - microsense.pl · AVR USB PROG Opis Obs³ugiwane...
Transcript of Programator ISP mikrokontrolerów AVR - microsense.pl · AVR USB PROG Opis Obs³ugiwane...
AVR USB PROG
Opis
Obs³ugiwane mikrokontrolery
Wspó³praca z programami
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)
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.
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.
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.
AVR USB PROG
micro
Programator ISP mikrokontrolerów AVR
Rysunek przedstawia przyk³adowy schemat pod³¹czenia programatora do mikrokontrolera ATmega8.
Opis z³¹czy programatora
Rozmieszczenie sygna³ów z³¹cza w standardzie KANDA
Pod³¹czenie z uk³adem docelowym
NC
SCK
MOSI
RST
MISO
GND
GND
VCC
GND
GND
1 2
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.
Z³¹cze J6 w standardzie ISP
s³u¿¹ce do zmiany firmware'uZ³¹cze J4 - port COM
(linie RxD i TxD)
RxDTxD
Jumper J1ON - zasilanie uk³adu docelowego 5V
Z³¹cze programowania ISP (standard KANDA)
Jumper J7 - zmiana szybkoœci programowaniaON (Slow SCK) - programowanie uC taktowanych <1,5 MHzOFF (Speed SCK) - programowanie z maksymaln¹ szybkoœci¹
AVR USB PROG
micro
Do konfiguracj i programatora s³u¿¹
2 zworki J1 i J7:
J7
J1
ON
OFF
ON
OFF
zmniejszenie czêstotliwoœci sygna³u taktuj¹cego (w przypadku gdy mikrokontro ler jest taktowany sygna³em mniejszym ni¿ 1,5MHz)
programowanie z maksymaln¹ prêdkoœci¹
uk³ad docelowy jest zasilany z programatora
uk³ad docelowy nie jest zasilany z programatora
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
AVR USB PROG
micro
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).
AVR USB PROG
micro
U¿ytkowanie
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
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).
AVR USB PROG
micro
Przyk³ad programowania mikrokontrolera ATmega8 programatorem USB AVR PROG i programem AVRDUDE z lini poleceñ.
AVRDUDE-c.d.
AVR USB PROG
micro
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.
AVR USB PROG
micro
AVR8 Burn-O-Mat
1) Z g³ównego menu wybieramy Settings Z 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
AVR USB PROG
micro
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 AVR USB PROG lub np. Ctrl+D
AVR USB PROG
micro
Konfiguracja Bascom-AVR
1) Z g³ównego menu wybieramy Options Z 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
AVR USB PROG
micro
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
-
-
-
f
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
usebitó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).
AVR USB PROG
micro
Aktualizacja firmware'u
Zmiana firmware'u do STK500v2S
CK
RS
T
MIS
O
MO
SI
GN
D
VC
C
1
2
MOSI, MISO, SCK - sygna³y magistrali SPI
RST - reset uk³adu docelowego
VCC - napiêcie zasilania uk³adu docelowego
GND - masa uk³adu docelowego
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 AVR USB PROG pracu j¹cy w t ryb ie zgodnoœc iz STK500v2
AVR USB PROG
micro