programator procesorów AVR 2


P R O J E K T Y Programator procesorów AVR
Programator procesorów
AVR, część 2
kit AVT-812
W drugiej czści artykułu
o programatorze AVR
postaramy si dostarczyĘ
nieco wiedzy o samych
procesorach, podzielimy si
takłe kilkoma praktycznymi
uwagami dotyczącymi ich
właściwości oraz sposobw
pisania programw
asemblerowych.
Wydaje nam si to potrzebne, z procesora. Programik jest bardzo
zwłaszcza w przypadku nowych prosty, ale w zupełności wystar-
układw, a takimi są na rynku cza do sterowania płytki progra-
procesory AVR. Kałdy zaintereso- matora oraz pozwala na podsta-
wany i tak samodzielnie bdzie wowe manipulacje danymi.
musiał si nauczyĘ nowych pro- Wybierając odpowiednią opcj
cesorw, warto jednak juł na w menu Plik albo wybierając
początku wiedzieĘ, czy wysiłek kursorem ikon zapisanej kartki
mołe si opłacaĘ i jakich korzyści mołna otworzyĘ zbir zawierający
mołna si spodziewaĘ stosując dane do zapisu do pamici pro-
nowe układy. cesora. Zbir mołe mieĘ postaĘ
Na początku wrcimy jeszcze INTEL HEX (format pliku gene-
do samego programatora. Jak zo- rowany przez program asemblera)
stało to powiedziane w pierwszej lub danych w postaci binarnej.
czści artykułu, programator ZawartośĘ odczytanego pliku
wspłpracuje z komputerem PC, mołna wyświetliĘ na ekranie wy-
ktry jest sterowany przez pro- bierając opcj Edycja lub klika-
gram nadzorujący proces zapisu jąc na ikon piszącej dłoni. Ot-
danych do pamici układu AVR. warty zbir mołna takłe zapisaĘ
Program ten steruje programa- na dysku lub dyskietce (tylko
torem za pomocą opisanych w formacie binarnym) klikając na
wcześniej 3 rozkazw, spełnia ikon dyskietki lub wybierając
takłe rol interfejsu, za pomocą opcj Zapisz menu Plik.
ktrego ułytkownik mołe decydo- Polecenie Program uaktywnia
waĘ co i jak zapisaĘ lub odczytaĘ opcje związane bezpośrednio z pro-
z pamici programowanego proce- gramatorem. Pojawiające si nowe
sora. Korzystając z informacji do- okienko udostpnia szereg klawi-
stpnych w pierwszej czści arty- szy, ktrych naciśnicie rozpoczy-
kułu, kałdy mołe samodzielnie na zapis, weryfikacj lub odczyt
stworzyĘ taki program. Dla pozo- danych z pamici programu (Flash)
stałych, ktrzy nie chcą lub nie procesora lub z pamici EEPROM.
mogą napisaĘ programu dla PC- Klawisz Blokada słuły do wy-
ta, przygotowaliśmy jego wersj dania polecenia zaprogramowania
działającą w środowisku Win- bitw zabezpieczających przed od-
dows95. Na rys. 4 przedstawiono czytem danych z pamici, a kla-
ekran pracującego programu w try- wisz Koniec zamyka sesj pro-
bie zapisu lub odczytu danych gramowania i pozwala powrciĘ
Elektronika Praktyczna 5/99
71
Programator procesorów AVR
interesujących nas plikw. Mołna
tam znaleĘ zarwno asemblery
jak i symulatory pozwalające za
pomocą komputera śledziĘ zacho-
wanie napisanego przez nas op-
rogramowania oraz podglądaĘ za-
wartośĘ rejestrw i pamici pro-
cesora, co umołliwia wykrycie
błdw. Dostpne są takłe przy-
kładowe programy i procedury na-
pisane w jzyku asemblera. Naj-
wałniejsze pliki to: ASM-
PACK.EXE, ASM.ZIP, ASTU-
DIO.EXE. Na stronie internetowej
mołna takłe znaleĘ dokładne
informacje techniczne związane
z konkretnym typem procesora.
Brak tam niestety najprostszego
chociałby kompilatora jzyka C,
ktrego ułycie stanowi dułe ułat-
wienie podczas pisania profesjo-
Rys. 4. Okno programu sterującego pracą programatora.
nalnego oprogramowania. Z do-
do edycji danych. Dwie rozwijane
listy słułą do wyboru typu pro-
cesora, ktry bdzie programowa-
ny oraz portu COM1 lub COM2,
do ktrego dołączona zostanie płyt-
ka programatora.
Zmuszenie procesora do wyko-
nania jakiejkolwiek sensownej pra-
cy polega na stworzeniu dla niego
programu, ktrego kody zostaną
zapisane w pamici Flash proce-
sora za pomocą naszego progra-
matora. W czasie pisania progra-
mu asemblerowego uływa si
nazw symbolicznych. Potem spe-
cjalny program przekształca pole-
cenia i nazwy symboliczne na
kody bezpośrednio przetwarzane
przez procesor. Program taki na-
zywany jest potocznie asemblerem
(wiedzą o tym doskonale Czytel-
nicy, ktrzy kiedykolwiek mieli
do czynienia z programowaniem,
a powyłsze uwagi skierowane są
do nowicjuszy, ktrzy dopiero od
niedawna interesują si proceso-
rami i sterownikami jednoukłado-
wymi). W przypadku procesorw
AVR program asemblera rozpo-
wszechniany jest nieodpłatnie
przez firm ATMEL. Asembler
oraz kilka innych programw na-
rzdziowych i ciekawych przykła-
dw oprogramowania dla proce-
sorw AVR mołna znaleĘ na
stronie internetowej firmy pod
adresem www.atmel.com. Na tej
stronie kierując si nastpującym
kluczem: PRODUCTS/AVR 8-bit
RISC/SOFTWARE, dotrzemy do
Rys. 5. Schemat blokowy procesora AT90S2313.
Elektronika Praktyczna 5/99
72
Programator procesorów AVR
dyrektywy .EQU przypisano okreś-
lone wartości liczbowe zarezerwo-
wanym nazwom rejestrw i bitw.
Np. jeden z rejestrw sterujących
portem B procesora znajduje si
pod fizycznym adresem 18h. Pi-
sząc program duło łatwiej zapa-
mitaĘ i odwoływaĘ si do jego
nazwy symbolicznej (w pliku de-
finicji określonej jako .EQU
PORTB =$18) nił do konkretnego
adresu. Plik definicji zawiera
wszystkie takie nazwy. Plik ten
powinien znaleĘ si w tym sa-
mym katalogu w ktrym znajduje
si poddawany asemblacji plik
rdłowy. Mołna wykorzystaĘ go-
Rys. 6. Wyprowadzenia niektórych procesorów serii AVR.
towe pliki rdłowe podawane
stpnych informacji wynika, łe ne. Program mołe odwoływaĘ si w przykładach albo napisaĘ taki
kompilator dla sterownikw AVR do etykiet, tak jak np. do kon- plik samodzielnie.
oferuje firma IAR, co jest wiado- kretnych adresw w pamici pro- 3. Kałdy program powinien
mością dobrą i złą. Dobrą ponie- gramu. zawieraĘ na początku winietk
wał narzdzia tej firmy są pro- Nazwa etykiety zakoczona jest wykonaną za pomocą linii komen-
fesjonalnie przygotowane i cieszą dwukropkiem (:). Na początku tarza. W winietce powinna zna-
si uznaniem, a złą, poniewał linii dopuszczalne jest takłe leĘ si nazwa programu, zwizły
zazwyczaj są bardzo drogie i prak- umieszczanie dyrektyw czyli spe- opis jego funkcji, oznaczenie wer-
tycznie niedostpne dla zwykłego cjalnych polece sterujących dzia- sji i ewentualnie inne uwagi.
śmiertelnika. Naleły mieĘ tylko łaniem samego programu asemb- O przydatności takiej winietki
nadziej, łe producenci układw lującego. Nazwa dyrektywy po- przekonamy si bardzo szybko,
w swoim własnym interesie bdą przedzona jest bezpośrednio zna- gdy uzbiera nam si kilka napi-
wspierali powstawanie taniego op- kiem kropki (.). Dalej, po co sanych wcześniej programw
rogramowania narzdziowego, za- najmniej jednej spacji za etykietą asemblerowych. Po pewnym cza-
chcając w ten sposb do wyko- lub początkiem linii mołe poja- sie bardzo łatwo zapomnieĘ co
rzystywania w konstrukcjach elek- wiĘ si instrukcja, ktra w trakcie właściwie dany program miał ro-
tronicznych właśnie ich proceso- asemblacji zostanie przetłumaczo- biĘ i jakich w nim dokonaliśmy
rw. na przez asembler na seri kodw zmian w stosunku do innych wer-
Fenomen popularności proce- sterujących działaniem procesora. sji. OPŁACA SI TAKE ZAPISY-
sorw '51 wiąłe si głwnie z do- W linii programu mołe pojawiĘ WAĆ ROZBUDOWANE I DO-
stpnością oprogramowania narz- si jeszcze komentarz, czyli tekst KŁADNE KOMENTARZE!
dziowego dla tego procesora. umieszczany przez programist. Po napisaniu programu naleły
Asembler o nazwie WAVRASM Komentarz słuły do przypomnie- dokonaĘ jego asemblacji uływając
pracuje w systemie Windows i je- nia w przyszłości, podczas prze- polecenia Assemble. W przypad-
go ułycie jest stosunkowo proste. glądania programu, jak funkcjonu- ku powodzenia wyświetlone zo-
Po uruchomieniu programu nale- ją jego poszczeglne czści, zmien- stanie okienko komunikatw za-
ły otworzyĘ nowy dokument po- ne itd. Im liczniejsze i dokładniej- koczonych informacją o braku
sługując si w tym celu ikoną sze są komentarze, tym
pustej kartki albo wczytaĘ wcześ- mniej potem kłopotw
niej napisany program, ktry b- ze zrozumieniem dzia-
dziemy chcieli zmieniĘ lub popra- łania własnego progra-
wiĘ. Początkujący zechcą si za- mu. Komentarz po-
pewne posłułyĘ dostarczonymi przedzony jest zna-
przez firm wzorami programw kiem średnika (;) i mo-
i opierając si na tych przykła- łe si znaleĘ po co
dach napiszą swj własny, pier- najmniej jednej spacji
wszy program dla procesora AVR. za instrukcją lub zaj-
Generalnie dobrze jest pamitaĘ mowaĘ całą lini.
o kilku, nastpujących zasadach: 2. Do programu po-
1. Kałda linia programu asem- winien zostaĘ dołączo-
blerowego mołe składaĘ si ny, specjalną dyrekty-
z pewnych elementw, ktrych wą, plik definicji np.
połołenie w jej obrbie nie jest .INCLUDE 1200def.-
obojtne. Na pierwszej pozycji inc. Plik definicji jest
w nowej linii mogą znaleĘ si plikiem tekstowym,
etykiety, czyli nazwy symbolicz- w ktrym za pomocą
Rys. 7. Mapa pamięci procesorów AVR.
Elektronika Praktyczna 5/99
73
Programator procesorów AVR
błdw. W przeciwnym razie typy procesorw w obrbie rodzi- niejszych informacji naleły za-
w okienku pojawią si ostrzełenia ny mogą si midzy sobą znacz- wsze szukaĘ w dokumentacji tech-
wskazujące linie programu, w kt- nie rłniĘ, chociałby liczbą wy- nicznej dostpnej chociałby na
rych wystpują błdy. prowadze, i nie zawsze program stronie internetowej producenta.
Polecenie Options pozwala napisany dla jednego procesora Na rys. 6 pokazano rozkład
ustaliĘ format danych generowa- da si uruchomiĘ na innym. Ge- wyprowadze obudw wybranych
nych przez program asemblera. neralnie jednak struktura wewn- typw procesorw. Dostp do pro-
Dane przeznaczone dla naszego trzna wszystkich sterownikw jest gramowalnych układw wewn-
programatora powinny byĘ utwo- podobna. trznych procesora (np. licznikw)
rzone w formacie Intela, a plik Jako przykład mołe posłułyĘ oraz portw, za pomocą ktrych
powinien mieĘ rozszerzenie HEX. schemat blokowy mikrokontrolera procesor komunikuje si ze świa-
W programie dostpny jest rozbu- AT90S2313 pokazany na rys. 5. tem zewntrznym, realizowany jest
dowany plik pomocy dobrze opi- Centralne miejsce przypada jed- poprzez rejestry I/O. Ich adresy
sujący zarwno składni popra- nostce arytmetyczno-logicznej oraz adresy 32 rejestrw uniwer-
wnie napisanego programu rd- ALU oraz zespołowi rejestrw salnych znajdują si we wsplnej
łowego jak i jego poszczeglne uniwersalnych. Instrukcje progra- przestrzeni adresowej wewntrznej
elementy. mu w postaci 16-bitowej, podawa- pamici RAM procesora. Map
Ostrzełenia wyświetlane przez ne są do ALU i rejestrw uniwer- adresw dla układu 90S2343 po-
program WAVRASM pozwalają salnych z pamici programu adre- kazano na rys. 7. W przypadku
wyeliminowaĘ błdy składni, prze- sowanej przez licznik Program innych procesorw zmianie ulega
krcone nazwy rozkazw itp., na- Counter. Oprcz tych elementw, tylko najwyłszy adres pamici
tomiast nie uchronią nas przed do wewntrznej magistrali dołą- RAM, co wynika z jej rozmiarw.
błdami w konstrukcji logicznej czone są bloki statycznej pamici Wyjątkiem jest tu układ 90S1200,
programu, ktre sprawiają, łe za- (SRAM), pamici EEPROM, układ ktry oprcz bloku rejestrw uni-
programowany procesor nie dział watchdoga, interfejs SPI oraz ukła- wersalnych nie posiada wewntr-
tak, jak tego oczekujemy. To dy, ktrych wystpowanie zaleły znej pamici RAM.
najtrudniejsze do wychwycenia od konkretnego typu procesora: Pierwsze prby pisania progra-
błdy, bo nasze własne. Przy ich liczniki, interfejs szeregowy UART mw dla procesorw AVR skła-
usuwaniu pomocne mogą okazaĘ (czyli RS232), blok przerwa itd. niają do podzielenia si kilkoma
si programy AVR SIMULATOR Od typu procesora zaleły takłe spostrzełeniami z tymi czytelnika-
lub AVR STUDIO, ktre na kom- liczba buforw portw wejścia/ mi, ktrzy takłe sprbują wyko-
puterze PC udają, czyli symu- wyjścia. Praca wewntrznych ukła- rzystaĘ w swoich urządzeniach te
lują sposb działania zaprogramo- dw sterownika AVR przebiega sterowniki. Ze wzgldu na rłni-
wanego procesora. Dziki obser- w takt impulsw ze stabilizowa- ce w wewntrznej budowie rł-
wacji tego działania, wykonywa- nego kwarcem oscylatora, ktry nych typw procesorw, nie za-
niu pojedynczych instrukcji, usta- w pewnych modelach mołe byĘ wsze ich listy rozkazw są iden-
wianiu pułapek i podglądaniu za- zastąpiony przez wewntrzny ge- tyczne. Dotyczy to zwłaszcza in-
wartości symulowanych rejestrw nerator o stałej czstotliwości strukcji skokw i wywoła pod-
procesora, duło łatwiej odkryĘ 1MHz, obywający si bez zewn- programw. I tak np. w proceso-
w programie miejsca, ktre go trznych elementw. rze 90S1200 brak jest rozkazu
prowadzą w przysłowiowe maliny Poniewał rodzina sterownikw IJMP, czyli skoku pośredniego,
nił tylko poprzez łmudne prze- AVR wciął si rozrasta, dla po- adresowanego rejestrem Z. Asem-
glądanie zapisanych linii kodu. rwnania przedstawiamy poniłej bler nie wykałe błdu składnio-
Kałdy program napisany dla list kilku reprezentatywnych jej wego natomiast procesor obda-
procesora AVR musi uwzgldniaĘ członkw wraz z zestawieniem ich rzony instrukcją, ktrej nie ro-
jego mołliwości wynikające z we- najwałniejszych z punktu widze- zumie zacznie działaĘ w sposb
wntrznej budowy. Poszczeglne nia ułytkownika cech. Dokład- trudny do przewidzenia.
Tab. 2. Zestawienie podstawowych właściwości wybranych procesorów AVR.
Oznaczenie procesora 90S2323 90S2343 90S1200 90S2313 90S4414 90S8515 ATmega603
Właściwość
pamięć programu (kB) 2 2 1 2 4 8 64
pamięć RAM (B) 128 128 - 128 256 512 4096
pamięć EEPROM (B) 128 128 64 128 256 512 2048
liczba linii wejścia/wyjścia 3 5 15 15 32 32 32+8 WY+8 WE
SPI tak tak tak tak tak tak tak
UART - - - tak tak tak tak
timer/licznik 1 1 1 2 2 2 3
wewnętrzny oscylator RC - tak tak - - - -
PWM - - - 1 2 2 2
zabezpieczenie przed odczytem tak tak tak tak tak tak tak
liczba wyprowadzeń 8 8 20 20 40 40 64
Elektronika Praktyczna 5/99
74
Programator procesorów AVR
Wszystkie prezentowane proce- problemem. Jednak jełeli do re- ktry w innym typie procesora
sory posiadają rozbudowany ze- jestru SPL nie wpiszemy odpo- wywołuje takie samo przerwanie,
staw rejestrw oglnego przezna- wiedniego adresu, pierwszy zapis to wektory przerwania w obu ty-
czenia. Istnieją jednak rłnice na stosie spowoduje zniszczenie pach procesorw nie muszą zna-
w sposobie ułycia rejestrw nale- zawartości rejestrw, na ktry SPL jdowaĘ si pod tym samym ad-
łących do 1 i 2 połwki zestawu. bdzie wskazywał. Trzeba o tym resem. Konstruktorzy układu zre-
Do rejestrw R0-R15 nie mołna pamitaĘ i wpisaĘ do SPL adres zygnowali z zasady przypisania na
w sposb bezpośredni zapisaĘ pamici RAM, w ktrej umiesz- stałe tych samych adresw tym
wartości stałej. eby to uczyniĘ czony zostanie stos. samym wektorom przerwa i na-
naleły posłułyĘ si pośrednict- Procesory AVR posiadają oczy- leły o tym pamitaĘ.
wem ktregoś z rejestrw z dru- wiście mołliwośĘ realizacji prze- Pojawiające si wątpliwości
giej czści zestawu. Mołe to wy- rwa programowych. Po zaistnie- związane ze sposobem działania
glądaĘ nastpująco: niu sytuacji wywołującej przerwa- programu i procesora najłatwiej
LDI R16,156 nie, licznik programu procesora rozwiaĘ posługując si symulato-
; wpisanie do rejestru ustawiony zostaje na wektor prze- rem i obserwując efekty działania
; pośredniczącego wartości 156 rwania wskazujący na podprogram programu.
MOV R1,R16 realizujący funkcje przerwania. W przyszłości procesorom AVR
; przepisanie wartości Wektory te umieszczone są na i układom z ich ułyciem zamie-
; z rejestru pośredniczącego początku przestrzeni adresowej rzamy jeszcze poświciĘ troch
; do rejestru R1 procesora. Jednak rłne typy pro- miejsca na łamach naszego pisma.
Wszystkie procesory (z wyjąt- cesorw z rodziny AVR cechują Przygotowywane są proste urzą-
kiem AT90S1200) posiadają stos, si rłną liczbą mołliwych prze- dzenia wykorzystujące ciekawe ce-
ktry mołe byĘ umieszczony rwa, co wynika z ich budowy chy procesorw, jakimi są szyb-
w dowolnym miejscu pamici i mołliwości. Jest to oczywiście kośĘ działania i mały pobr mocy
RAM. W momencie włączenia za- zrozumiałe, bowiem procesor po- pozwalający na zasilanie układw
silania wskanik stosu, czyli re- zbawiony np. portu szeregowego z baterii. Mamy nadziej, łe takłe
jestr SPL, inicjowany jest wartoś- nie mołe wykonywaĘ procedury czytelnikw EP zainteresuje ten
cią zero. Dopki nie korzystamy przerwania generowanej przez ten temat i sprbują sami napisaĘ cie-
ze stosu (nie wywoływane są port. Jednak wystpuje tu pewna kawe programy dla procesorw
podprogramy i przerwania), to ta- niekonsekwencja. Nawet jełeli pro- AVR.
kie ustawienie wskanika nie jest cesor bdzie wyposałony w układ, Ryszard Szymaniak, AVT
Elektronika Praktyczna 5/99
75


Wyszukiwarka