AVRISP.pdf

(1184 KB) Pobierz
010-014_programator_avr-isp_z_usb.indd
Programator AVRISP z interfejsem USB
Programator AVRISP
z interfejsem USB
AVT–988
Rynek mikrokontrolerów
w Polsce przez długi
czas zmonopolizowany
był przez różne odmiany
procesorów rodziny '51,
produkowanych przez wielu
producentów. Niektóre typy
tego mikrokontrolera przeżyły
swoją drugą młodość między
innymi dzięki wprowadzeniu
modeli z pamięcią Flash oraz
pracujących ze zredukowaną
liczbą cykli zegara
przypadających na jeden cykl
maszynowy. Nie bez znaczenia
był również fakt, że tajniki
budowy i programowania tego
mikrokontrolera przewijały się
i nadal się przewijają przez
większość programów nauczania
szkół i uczelni.
Rekomendacje:
przyrząd niezbędny do pracy
dla każdego elektronika
wykorzystującego mikrokontrolery
AVR i środowisko programistyczne
AVR Studio 4.12.
Dojście do głosu innych rodzin
mikrokontrolerów było możliwe
głównie dzięki znacznemu spadko-
wi ich cen, a także dzięki szybko
postępującemu rozwojowi sieci dys-
trybutorów, oferujących niemal do-
wolnie wymarzony procesor wraz
ze wsparciem technicznym. Obecnie
najbardziej popularną rodziną mikro-
kontrolerów stosowanych przez pol-
skich konstruktorów wydają się być
AVR–y firmy Atmel. Ceny tych 8–bi-
towych kości spadły znacznie, kiedy
na rynku pojawiły się różnej maści
procesory z rdzeniem ARM7TDMI,
które oferowały dużo większą wy-
dajność za porównywalną cenę. Jed-
nak mimo umacniającej się pozycji
ARM–ów, które zapewne na długi
czas przejmą prowadzenie po wie-
kowej '51, popyt na AVR–y nie ma-
leje. Dzieje się tak dlatego, że moc
32–bitowych ARM–ów nie zawsze
jest potrzebna, a dodatkowo firma
Atmel wypuszcza nowe modele oraz
aktualizuje narzędzia, wychodząc na-
przeciw potrzebom konstruktorów.
Jednym z takich kroków, chociaż
nieco spóźnionym, było „zauważe-
nie” przez firmę Atmel ogromnej
popularności kompilatora GCC wy-
korzystywanego do programowania
AVR–ów w języku C. W listopadzie
2005 roku ukazało się na stronie
producenta środowisko AVR Stu-
dio oznaczone numerem 4.12, naj-
pierw jako beta, a następnie jako
wersja oficjalna. Najnowszą wersję
tego darmowego narzędzia można
Dojście do głosu innych rodzin pobrać ze strony www.atmel.com.
pobrać ze strony www.atmel.com.
Jego najważniejszą nową cechą,
oprócz standardowo wprowadzanych
usprawnień i poprawek błędów,
była integracja z kompilatorem GCC.
Chociaż kompilator należy nadal
zainstalować osobno, a poprzednie
wersje AVR Studio w lepszy lub
gorszy sposób również umożliwiały
wykorzystanie swoich możliwości
dla programów pisanych w C, to
dla wielu, zwłaszcza początkujących
użytkowników, możliwość wyboru
języka programowania (C czy asem-
bler), a także uwolnienie od zagłę-
biania się w edycję pliku makefile
i konfiguracji kompilatora GCC jest
cechą wielce pożądaną. No a cze-
go potrzeba jeszcze konstruktorowi
oprócz niezłego środowiska i dużej
możliwej do wykorzystania rodziny
mikrokontrolerów? Potrzeba oczywi-
ście programatora.
Środowisko AVR Studio oferuje
możliwość obsługi przede wszystkim
programatorów „firmowych”, takich
jak STK500, AVRISP, AVRISP mk
II oraz interfejsów JTAG ICE, także
w wersji mk II. Nic jednak nie stoi
na przeszkodzie, aby wykonać swój
programator „podszywający się” pod
jeden z powyższych. Nie jest to za-
danie specjalnie trudne, zwłaszcza,
że firma Atmel udostępnia protokół
komunikacyjny pomiędzy PC a pro-
gramatorem i oczywiście dosyć do-
kładnie opisuje sygnały niezbędne
do prawidłowego zaprogramowania
procesora.
PODSTAWOWE PARAMETRY
• Płytka o wymiarach 60x41 mm
• Zgodność z protokołem STK500V2
• Bezpośrednia obsługa programatora przez
AVR Studio
• Połączenie z komputerem przez interfejs
USB, bez konieczności doprowadzania
oddzielnego zasilania
• Obsługa trybu uśpienia magistrali USB
• Programowanie mikrokontrolerów AVR
w systemie przy wykorzystaniu złącza
zgodnego ze standardem Atmel
• Programowanie procesorów nie zamonto-
wanych (z zastosowaniem odpowiednich
przystawek)
• Programowanie w szerokim zakresie napięć
zasilających systemu docelowego (gwaran-
towane od 2,7 V do 5 V, poniżej 2 V bez
gwarancji)
• Duża szybkość programowania, konfigu-
rowalna w zależności od częstotliwości
taktowania procesora docelowego
10
Elektronika Praktyczna 7/2007
PROJEKTY
728060089.174.png 728060089.185.png
Programator AVRISP z interfejsem USB
Rys. 1. Schemat elektryczny programatora
W przypadku programatora
AVRISP w rzeczywistości mamy do
czynienia z protokołem opisywanym
jako STK500, gdyż w tym zesta-
wie uruchomieniowym został zin-
tegrowany protoplasta programatora
AVRISP. Od wersji 4.11 AVR Stu-
dio, Atmel wprowadził nowy stan-
dard komunikacyjny pomiędzy PC
a programatorem (STK500V2), który
nie jest kompatybilny z rozwiąza-
niem poprzednim. Został on jednak
znacznie unowocześniony i posiada
cechy uniezależniające programa-
tor od programowanego procesora,
co pozwala na łatwe dostosowanie
do nowo powstałych komponentów
wyłącznie poprzez uaktualnienie
oprogramowania na PC. Cały pro-
tokół jest dosyć dokładnie opisany
w nocie aplikacyjnej AVR068. Do
opisu producent dołącza również
plik command.h zawierający defini-
cje stałych wykorzystywanych przez
protokół, przydatnych przy tworze-
niu własnego oprogramowania. Pre-
zentowany programator został opra-
cowany na podstawie powyższych
materiałów.
układu FT232RL stanowiącego inter-
fejs łączący z portem USB komputera
PC, mikrokontrolera ATmega8 reali-
zującego wszystkie funkcje logiczne
programatora oraz bufora wyjściowego
74HC125. Całość jest zasilana napię-
ciem +5 V pochodzącym z linii zasi-
lającej interfejsu USB poprzez filtrują-
cy obwód LC. Cewkę L1 stanowi tu-
taj przeciwzakłóceniowy dławik SMD
o indukcyjności około 1 mH, o budo-
wie podobnej do perełki ferrytowej
nałożonej na przewód.
Oryginalny programator AVRISP
posiada interfejs RS–232 wykorzysty-
wany do komunikacji z PC. W opraco-
wywanej konstrukcji założono jednak
współpracę programatora z dowolnym
komputerem (czyli także nowoczesnym
laptopem bez portu RS) oraz niekło-
potliwe zasilanie programatora, zde-
cydowano się więc na wykorzystanie
interfejsu USB. Układ FT232RL (U1)
stanowi tutaj pomost pomiędzy złą-
czem USB PC a portem szeregowym
mikrokontrolera i został on wybrany
nieprzypadkowo z wielu podzespo-
łów innych producentów pełniących
podobną funkcję. Jest to stosunkowo
nowy podzespół należący do rodziny
konwerterów RS–232/USB produko-
wanej przez firmę FTDI ociekawych
cechach upraszczających konstrukcję
opisywanego urządzenia. Największą
jego zaletą jest brak konieczności do-
łączenia jakichkolwiek zewnętrznych
komponentów, poza jednym konden-
satorem odsprzęgającym. Dodatkowo
próby przeprowadzane z tym układem
oraz innymi konwerterami RS/USB
wykazały, że pracuje on bardzo sta-
bilnie w przedstawionym zastosowaniu
i w odróżnieniu do innych podzespo-
łów nie ma tendencji do zawieszania
sterownika (a wraz z nim całej aplika-
cji AVR Studio). Jak każdy konwerter
tego typu, po zainstalowaniu sterow-
nika widziany jest z poziomu systemu
operacyjnego PC jako kolejny port
COM, co oczywiście jest niezbędne
dla możliwości korzystania z aplikacji
pisanych z myślą o obsłudze standar-
dowego interfejsu RS–232.
Układ FT232RL komunikuje się
z mikrokontrolerem U2 poprzez linie
RxD, TxD, natomiast linie sterujące
RTS i CTS zostały dołączone na za-
pas w celu ewentualnego obsłużenia
innego zastosowania programatora
(obecna wersja oprogramowania ich
nie wykorzystuje). Dodatkowo, układ
U1 za pośrednictwem sygnału na li-
nii CBUS3 informuje mikrokontroler
o stanie pracy magistrali USB, co jest
wykorzystywane przez program do
wprowadzenia programatora w stan
uśpienia. Dołączony do U1 konden-
sator C4 filtruje wewnętrzne napięcie
Budowa programatora
Schemat elektryczny programatora
przedstawiono na rys. 1 . Programator
składa się z trzech głównych bloków:
Elektronika Praktyczna 7/2007
11
728060089.196.png 728060089.207.png 728060089.001.png 728060089.012.png 728060089.023.png 728060089.034.png 728060089.045.png 728060089.056.png 728060089.067.png 728060089.078.png 728060089.089.png 728060089.100.png 728060089.111.png 728060089.122.png 728060089.132.png 728060089.137.png 728060089.138.png 728060089.139.png 728060089.140.png 728060089.141.png 728060089.142.png 728060089.143.png 728060089.144.png 728060089.145.png 728060089.146.png 728060089.147.png 728060089.148.png 728060089.149.png 728060089.150.png 728060089.151.png 728060089.152.png 728060089.153.png 728060089.154.png 728060089.155.png 728060089.156.png 728060089.157.png 728060089.158.png 728060089.159.png 728060089.160.png 728060089.161.png 728060089.162.png 728060089.163.png 728060089.164.png 728060089.165.png 728060089.166.png 728060089.167.png 728060089.168.png 728060089.169.png 728060089.170.png 728060089.171.png 728060089.172.png 728060089.173.png 728060089.175.png 728060089.176.png 728060089.177.png 728060089.178.png 728060089.179.png 728060089.180.png 728060089.181.png 728060089.182.png 728060089.183.png 728060089.184.png 728060089.186.png 728060089.187.png 728060089.188.png 728060089.189.png 728060089.190.png 728060089.191.png 728060089.192.png 728060089.193.png 728060089.194.png 728060089.195.png 728060089.197.png 728060089.198.png 728060089.199.png 728060089.200.png 728060089.201.png 728060089.202.png 728060089.203.png 728060089.204.png 728060089.205.png 728060089.206.png 728060089.208.png 728060089.209.png 728060089.210.png 728060089.211.png 728060089.212.png 728060089.213.png 728060089.214.png 728060089.215.png 728060089.216.png 728060089.217.png 728060089.002.png 728060089.003.png 728060089.004.png 728060089.005.png 728060089.006.png 728060089.007.png 728060089.008.png 728060089.009.png 728060089.010.png 728060089.011.png 728060089.013.png 728060089.014.png 728060089.015.png 728060089.016.png 728060089.017.png 728060089.018.png 728060089.019.png 728060089.020.png 728060089.021.png 728060089.022.png 728060089.024.png 728060089.025.png 728060089.026.png 728060089.027.png 728060089.028.png 728060089.029.png 728060089.030.png
Programator AVRISP z interfejsem USB
Rys. 2. Schemat montażowy
nak jednorazowo i nie jest ona zbyt
uciążliwa nawet dla osób nie posia-
dających innego programatora, gdyż
najprostszy z nich można zlutować
z kilku rezystorów. W Internecie
można znaleźć opisy programatorów
nie posiadających tej wady, wyko-
rzystujących tryb Bit Bang układu
FT232RL, ale wymagają one wpro-
wadzania dodatkowych połączeń
na czas programowania. Wiąże się
to także z koniecznością otwarcia
obudowy, a w dodatku samo progra-
mowanie za pośrednictwem FT232RL
trwa kilkanaście minut.
Programowany układ jest dołącza-
ny do mikrokontrolera sterującego za
pośrednictwem buforów zrealizowa-
nych na układzie 74HC125. Bufory
te, oprócz dołączania i odłączania linii
ISP, zapewniają dopasowania pozio-
mów napięć. Układ U3 jest zawsze
zasilany napięciem równym napięciu
zasilania programowanego systemu,
a w przypadku braku tego zasilania,
energia niezbędna do pracy jest do-
starczana od strony programatora za
pośrednictwem diody D1 i rezystora
R13. Rezystory włączone w linie sy-
gnałowe zabezpieczają bufor przed
przeciążeniem i wymuszają stan usta-
lony w przypadku przełączenia wyjść
w stan wysokiej impedancji. Złącze
J3 służy do dołączenia przewodu ta-
śmowego połączonego z takim samym
złączem w programowanym systemie
(zgodnie ze standardem Atmela).
pieczeństwo uszkodzenia PC w przy-
padku błędu w montażu. Uruchomie-
nie należy przeprowadzić podłączając
jako zasilanie zasilacz stabilizowany
5 V z ograniczeniem prądowym nie
większym niż 100 mA. Uruchomienie
sprowadza się w zasadzie do spraw-
dzenia, czy napięcie zasilania układu
U1, U2 i U3 są prawidłowe. Napięcia
zasilania dla U1 i U2 powinny wyno-
sić 5 V, natomiast układ U3 będzie
zasilany napięciem o wartości obniżo-
nej przez diodę D1 i R13. Oczywiście
aby urządzenie mogło działać, należy
zaprogramować mikrokontroler U2.
Skompilowany program zamieszczono
w pliku avrispusb.hex na stronie inter-
netowej Elektroniki Praktycznej. Nie
należy zapomnieć o takim ustawieniu
fusebitów, aby procesor był taktowa-
ny dołączonym kwarcem (np. CKSE-
L=1111, SUT=11). Korzystne jest
również włączenie watchdoga (jego
odświeżanie jest realizowane przez
program), a także detektora zaniku na-
pięcia zasilania na poziomie 4 V.
Przed podłączeniem programato-
ra do PC, należy pobrać ze strony
www.ftdichip.com sterowniki do ukła-
du FT232RL. Proces instalacji sterow-
nika nie różni się od opisu podanego
przez producenta tego elementu. Po
podłączeniu i wykryciu przez system
Windows nowego urządzenia, należy
wskazać pobrany wcześniej sterow-
nik. Po poprawnym przeprowadzeniu
instalacji w Menedżerze Urządzeń po-
winien pojawić się nowy port COM,
którego numer warto zapamiętać.
Kolejnym krokiem jest sprawdzenie
współpracy z AVR Studio. W tym celu
należy uruchomić to środowisko i wy-
brać z menu polecenie Tools/Program
AVR/Connect... Pojawi się wówczas
okno przedstawione na rys. 3 . Nale-
ży wybrać programator „STK500 or
AVRISP” oraz port COM, który został
przydzielony przy instalacji sterowni-
ka. Można również zaznaczyć opcję
„Auto”, która automatycznie przeska-
nuje wszystkie porty COM w poszuki-
waniu programatora. Aby zatwierdzić
ustawienia należy wcisnąć przycisk
„Connect...”. Jeżeli programator działa
poprawnie i zostanie wykryty przez
AVR Studio, naszym oczom ukaże się
okno przedstawione na rys. 4 . W po-
lu „Revision” pojawi się wersja opro-
gramowania programatora. Jest ona
wpisana w oprogramowaniu na stałe,
zgodnie z wersją oryginalnego oprogra-
mowania Atmela (odpowiadająca naj-
nowszej wersji AVR Studio) i nie na-
leży próbować wykonywać upgrade’u
zasilania 3,3 V. Programator został
wyposażony w standardowe gniazdo
MINI–USB–B, umożliwiające dołącze-
nie go do komputera PC.
Głównym podzespołem realizują-
cym wszystkie funkcje programatora
jest mikrokontroler U2 – ATmega8.
Oprogramowanie dla mikrokontrolera
przygotowano w oparciu o opis pro-
tokołu komunikacyjnego STK500V2
w języku C z wykorzystaniem kompi-
latora GCC. Mikrokontroler U2 pra-
cuje w standardowej aplikacji z ze-
wnętrznym rezonatorem kwarcowym
wyznaczającym częstotliwość jego pra-
cy. Częstotliwość kwarcu X1 została
wybrana z punktu widzenia prędkości
transmisji poprzez złącze szeregowe.
Starano się nie wybierać wartości
zbyt dużej ze względu na rosnący
wraz z częstotliwością pobór mocy
i poziom generowanych zakłóceń.
Do mikrokontrolera zostały dołączo-
ne dwie diody świecące: LED1 o kolo-
rze zielonym informującym o włącze-
niu zasilania i gotowości programatora
do pracy oraz LED2 (czerwona) infor-
mująca o realizacji przez programator
operacji na dołączonym układzie. Do
jednego z wejść analogowych (ADC7)
zostało doprowadzone napięcie zasila-
nia programowanego systemu.
Programowanie układu docelo-
wego odbywa się za pośrednictwem
linii portu PB0 pracujących częścio-
wo w sposób programowy, a częścio-
wo wykorzystując wbudowany w mi-
krokontroler interfejs SPI. Interfejs
sprzętowy wykorzystywany jest przy
dużych prędkościach programowania,
natomiast przy prędkościach małych
transmisja jest realizowana na dro-
dze programowej. Do interfejsu SPI
dołączone jest również standardowe
złącze ISP umożliwiające zaprogra-
mowanie programatora podczas jego
budowy. Do wykonania tego zadania
niezbędny jest niestety dodatkowy
programator procesorów AVR (pojawia
się tutaj odwieczny problem jajka
i kury). Operację tę wykonuje się jed-
Montaż i uruchomienie
Dla programatora przewidziano
dwustronną płytkę drukowaną, jedno-
stronnie obłożoną elementami SMD
i kilkoma podzespołami przewlekany-
mi. Schemat montażowy przedstawio-
no na rys. 2 . Montaż należy prze-
prowadzić z precyzją i starannością
należną elementom SMD o gęstym ra-
strze. Płytka drukowana została zapro-
jektowana z myślą o umieszczeniu jej
w półprzezroczystej obudowie Z–24Ap
firmy Kradex. Jako złącze J3 najlepiej
wykorzystać kątową listwę goldpinów,
co po przygotowaniu otworu w ścian-
ce obudowy umożliwi swobodne do-
łączanie i odłączanie przewodu ISP.
Przed pierwszym podłączeniem za-
silania należy sprawdzić poprawność
lutowania i usunąć ewentualne zwarcia
między nóżkami układów scalonych,
które ze względu na mały raster,
zwłaszcza dla U1, mogą być trudne
do zauważenia. Zmontowanego progra-
matora nie należy od razu podłączać
do komputera ze względu na niebez-
12
Elektronika Praktyczna 7/2007
728060089.031.png 728060089.032.png 728060089.033.png 728060089.035.png 728060089.036.png 728060089.037.png 728060089.038.png 728060089.039.png 728060089.040.png 728060089.041.png 728060089.042.png 728060089.043.png 728060089.044.png 728060089.046.png 728060089.047.png 728060089.048.png 728060089.049.png 728060089.050.png 728060089.051.png 728060089.052.png 728060089.053.png 728060089.054.png 728060089.055.png 728060089.057.png 728060089.058.png 728060089.059.png 728060089.060.png 728060089.061.png 728060089.062.png 728060089.063.png 728060089.064.png 728060089.065.png 728060089.066.png 728060089.068.png 728060089.069.png 728060089.070.png 728060089.071.png 728060089.072.png 728060089.073.png 728060089.074.png 728060089.075.png 728060089.076.png 728060089.077.png 728060089.079.png 728060089.080.png 728060089.081.png 728060089.082.png 728060089.083.png 728060089.084.png 728060089.085.png 728060089.086.png 728060089.087.png 728060089.088.png 728060089.090.png 728060089.091.png 728060089.092.png 728060089.093.png 728060089.094.png 728060089.095.png 728060089.096.png 728060089.097.png 728060089.098.png 728060089.099.png 728060089.101.png 728060089.102.png 728060089.103.png 728060089.104.png 728060089.105.png 728060089.106.png 728060089.107.png 728060089.108.png 728060089.109.png 728060089.110.png 728060089.112.png 728060089.113.png 728060089.114.png 728060089.115.png 728060089.116.png 728060089.117.png 728060089.118.png 728060089.119.png 728060089.120.png 728060089.121.png 728060089.123.png 728060089.124.png 728060089.125.png 728060089.126.png
 
Programator AVRISP z interfejsem USB
Rys. 3. Okno wyświetlane po prawidłowym skomuni-
kowaniu się programatora z komputerem
nastawy: 3,955 kHz)
i 1,811 kHz. Aby uzy-
skać ostatnią częstotli-
wość, należy wybrać
wartość 603 Hz, która
niestety nie jest moż-
liwa do uzyskania,
ze względu na błąd
w AVR Studio (zbyt
krótki timeout, zja-
wisko występuje na-
wet na oryginalnym
programatorze Atme-
la). W praktyce podane częstotli-
wości umożliwiają programowanie
procesorów taktowanych zegarami
począwszy od około 8 kHz, więc
niemal we wszystkich użytecznych
przypadkach. Należy pamiętać, że
ustawienie częstotliwości zbyt dużej
(większej niż jedna czwarta często-
tliwości zegara) uniemożliwi zapro-
gramowanie procesora. Oczywiście
im wyższa jest ustawiona częstotli-
wość, tym operacja programowania
trwa krócej.
Zakładka „Program”, przedstawio-
na na rys. 5 , umożliwia ustawie-
nie głównych opcji programowania.
Są to: typ procesora, nazwa pliku
źródłowego dla programu i pamięci
EEPROM oraz opcje dotyczące pro-
gramowania i weryfikacji. Możliwe
jest również przeprowadzenie pro-
cesu kasowania zawartości pamięci
mikrokontrolera.
Zakładki „Fuses” ( rys. 6 ) i „Lock-
Bits” ( rys. 7 ) umożliwiają odczyt
i konfigurację bitów konfiguracyjnych
procesora. Trzeba pamiętać, że przy
wchodzeniu na te zakładki nastę-
puje automatyczna próba odczytu
aktualnych ustawień, więc bez do-
łączonego procesora
docelowego będzie
zgłaszany błąd wej-
ścia w tryb progra-
mowania.
Zakładka „Advan-
ced” ( rys. 8 ) pozwa-
la na kontrolę sy-
gnatury dołączonego
mikrokontrolera, jak
również pozwala od-
czytać, zmodyfikować
i zapisać w pamię-
ci bajty kalibracyjne
wewnętrznego oscyla-
tora programowanego
mikrokontrolera.
Najciekawszą
z punktu widzenia
wygody użytkownika
jest zakładka „Auto”,
WYKAZ ELEMENTÓW
Rezystory
R1...R7, R16: 470 V (SMD 0805)
R8, R10, R11: 10 k V (SMD 0805)
R9: 3,3 k V (SMD 0805)
R12: 1 k V (SMD 0805)
R13: 220 V (SMD 0805)
R14, R15, R17, R18: 100 V (SMD
0805)
R19: 10 V (SMD 0805)
R20...R23: 470 k V (SMD 0805)
Kondensatory
C1, C2, C4...C7: 100 nF (SMD 0805)
C3, C8: 10 m F/16V (SMD Package A)
C9, C10: 15 pF (SMD 0805)
Półprzewodniki
U1: FT232RL (SSOP-28)
U2: ATMega8 (TQFP-32) (programo-
wany przy uruchamianiu)
U3: 74HC125 (SO-14)
D1: BAS85 (MINIMELF)
LED1: LED 3 mm zielona
LED2: LED 3 mm czerwona
Inne
X1: kwarc 3,6864 Mhz (HC49S)
L1: dławik przeciwzakłóceniowy
1 m H (SMD 0805)
J1: gniazdo MINI-USB-B
J2: goldpin 2x3, 2,54 mm, prosty
J3: goldpin 2x3, 2,54 mm, kątowy
przez wciskanie położonego obok
przycisku. Prezentowany programator
nie jest zgodny z oryginałem pod tym
względem i operacja ta nie powiedzie
się. Gotowość programatora do działa-
nia jest sygnalizowana świeceniem się
zielonej diody LED1. Jeżeli uzyskanie
połączenia z programatorem nie po-
wiodło się, należy jeszcze raz spraw-
dzić montaż, poprawność zainstalo-
wania sterownika FTDI i poprawność
zaprogramowania mikrokontrolera.
Obsługa programatora
Jeżeli po uruchomieniu progra-
matora pojawiło się okno z rys. 4,
oznacza to, że oprogramowanie
programatora funkcjonuje prawidło-
wo i jest on gotowy do pracy. Roz-
poczynając od przedstawionej na
rys. 4 zakładki, możemy przeprowa-
dzić konfigurację programatora. Jedy-
nym parametrem przewidzianym do
modyfikacji w tym miejscu jest pa-
rametr ISP Freq. Oznacza on często-
tliwość zegarową interfejsu ISP przy
programowaniu układu docelowego.
Może być ona ustawiana na warto-
ści: 921,6 kHz, 230,4 kHz, 57,6 kHz,
28,8 kHz, 4 kHz (przy odczycie
przedstawiona na rys. 9 . Umożli-
wia ona wybranie czynności, które
będą wykonywane podczas automa-
tycznego programowania z AVR Stu-
dio. Aby skorzystać z tej możliwości,
należy zaznaczyć pożądane opcje,
a następnie zminimalizować okno
AVRISP (nie należy go zamykać!).
Spowoduje to uaktywnienie na głów-
nym pasku narzędzi ikony opisanej
Rys. 4. Okno wyświetlane po prawidłowym
wykryciu programatora
Rys. 5. Okno zakładki „Program” umożliwiają-
ce ustawienie głównych opcji programowania
Elektronika Praktyczna 7/2007
13
728060089.127.png 728060089.128.png 728060089.129.png
Programator AVRISP z interfejsem USB
Rys. 6. Zakładka „Fuses” umożliwiająca odczyt
i modyfikację bitów konfiguracyjnych proce-
sora
Przeprowadzanie
operacji programowa-
nia polega na dołą-
czeniu interfejsu ISP
programatora z bliźnia-
czym złączem w sys-
temie docelowym
i odpowiednim skonfi-
gurowaniu oprogramo-
wania, w zależności
od potrzeb. Podczas
programowania świe-
ci się czerwona dio-
da LED2, nie należy
wówczas odłączać
programatora od pro-
gramowanego układu.
Jeżeli układ docelowy
nie chce się progra-
mować (zgłaszany jest
błąd wejścia w tryb
programowania), należy
przede wszystkim sprawdzić popraw-
ność połączeń pomiędzy programato-
rem a układem programowanym. Pro-
blem może również leżeć po stronie
ustawionej zbyt wysokiej prędkości
interfejsu ISP, niedostosowanej do
prędkości zegarowej mikrokontrolera.
W tym miejscu należy pamiętać, że
fabrycznie nowe mikrokontrolery są
standardowo skonfigurowane na tak-
towanie stosunkowo wolnym oscyla-
torem wewnętrznym, którego często-
tliwość (najczęściej 1 MHz) jest za
mała do obsłużenia maksymalnych
prędkości programowania.
Błąd programowania może rów-
nież wystąpić przy braku zasilania
systemu docelowego. Jeżeli napięcie
zasilające bufor U3 spadnie poniżej
wartości około 2,5 V, wów-
czas zielona dioda
LED będzie migać.
Nie powoduje to jed-
nak blokady pracy
programatora, lecz
sygnalizuje jedynie,
że ewentualny błąd
programowania może
być związany ze zbyt
niskim napięciem za-
silania systemu doce-
lowego. Praktyka po-
kazała, że programator
poprawnie programuje
mikrokontrolery już
przy napięciu około
1,4 V (testowano na
ATtiny2313).
Przy pomocy opi-
sywanego programa-
tora można również
programować proceso-
Rys. 8. Zakładka „Advanced” umożliwiająca
sprawdzanie sygnatur mikrokontrolera
ry nie wlutowane do układu. W tym
celu należy przygotować odpowied-
nie podstawki z przyłączem dla in-
terfejsu ISP. Nie jest konieczne ze-
wnętrzne zasilanie programowanego
w ten sposób procesora, gdyż linia
VCC, normalnie pobierająca energię
z programowanego systemu, może
oddać niewielką moc wystarczającą
do zasilenia układu podczas progra-
mowania.
Opisywany programator z pew-
nością przyśpieszy przygotowywanie
aplikacji za pomocą środowiska AVR
Studio oraz ułatwi życie osobom
wykorzystującym komputery pozba-
wione portów komunikacyjnych in-
nych niż USB.
Paweł Hadam, EP
pawel.hadam@ep.com.pl
czerwonym napisem „Auto”, której
wciśnięcie spowoduje automatyczne
wykonanie wszystkich zaprogramo-
wanych wcześniej operacji, zgodnie
z ustawieniami z pozostałych zakła-
dek aplikacji obsługi programatora.
Programowanie procesorów AVR
z wykorzystaniem opisanego progra-
matora jest również możliwe z wy-
korzystaniem dostarczanej wraz ze
środowiskiem AVR Studio aplikacji
STK500.EXE. Jest to program tek-
stowy, wywoływany z linii poleceń,
dający możliwość programowania
procesorów przez jego wywołanie
z innych aplikacji, np. dowolnych
środowisk programistycznych. Listę
dostępnych poleceń można wyświe-
tlić poprzez wywołanie STK500.
EXE –h.
Rys. 9. Zakładka „Advanced” służąca do
sprawdzania sygnatury dołączonego mikrokon-
trolera oraz modyfikowania bajtów kalibracyj-
nych wewnętrznego oscylatora mikrokontrolera
Rys. 7. Zakładka „LockBits” umożliwiająca
odczyt i modyfikację bitów konfiguracyjnych
procesora
14
Elektronika Praktyczna 7/2007
Rys. 9. Zakładka „Advanced” służąca do
728060089.130.png 728060089.131.png 728060089.133.png 728060089.134.png 728060089.135.png 728060089.136.png
Zgłoś jeśli naruszono regulamin