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 sposob�w
pisania program�w
asemblerowych.
Wydaje nam si� to potrzebne, z procesora. Programik jest bardzo
zwłaszcza w przypadku nowych prosty, ale w zupełności wystar-
układ�w, 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 b�dzie wowe manipulacje danymi.
musiał si� nauczyĘ nowych pro- Wybierając odpowiednią opcj�
cesor�w, 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Ę zbi�r zawierający
mołna si� spodziewaĘ stosując dane do zapisu do pami�ci pro-
nowe układy. cesora. Zbi�r mołe mieĘ postaĘ
Na początku wr�cimy 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-
kt�ry 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 pami�ci układu AVR. warty zbi�r 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 rozkaz�w, spełnia ikon� dyskietki lub wybierając
takłe rol� interfejsu, za pomocą opcj� �Zapisz� menu �Plik�.
kt�rego ułytkownik mołe decydo- Polecenie �Program� uaktywnia
waĘ co i jak zapisaĘ lub odczytaĘ opcje związane bezpośrednio z pro-
z pami�ci programowanego proce- gramatorem. Pojawiające si� nowe
sora. Korzystając z informacji do- okienko udost�pnia szereg klawi-
st�pnych w pierwszej cz�ści arty- szy, kt�rych naciśni�cie rozpoczy-
kułu, kałdy mołe samodzielnie na zapis, weryfikacj� lub odczyt
stworzyĘ taki program. Dla pozo- danych z pami�ci programu (Flash)
stałych, kt�rzy nie chcą lub nie procesora lub z pami�ci 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- bit�w zabezpieczających przed od-
dows95. Na rys. 4 przedstawiono czytem danych z pami�ci, a kla-
ekran pracującego programu w try- wisz �Koniec� zamyka sesj� pro-
bie zapisu lub odczytu danych gramowania i pozwala powr�ciĘ
Elektronika Praktyczna 5/99
71
Programator procesorów AVR
interesujących nas plik�w. Mołna
tam znale�Ę zar�wno asemblery
jak i symulatory pozwalające za
pomocą komputera śledziĘ zacho-
wanie napisanego przez nas op-
rogramowania oraz podglądaĘ za-
wartośĘ rejestr�w i pami�ci pro-
cesora, co umołliwia wykrycie
bł�d�w. Dost�pne są takłe przy-
kładowe programy i procedury na-
pisane w j�zyku 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 j�zyka C,
kt�rego 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, kt�ry b�dzie programowa-
ny oraz portu COM1 lub COM2,
do kt�rego dołączona zostanie płyt-
ka programatora.
Zmuszenie procesora do wyko-
nania jakiejkolwiek sensownej pra-
cy polega na stworzeniu dla niego
programu, kt�rego kody zostaną
zapisane w pami�ci 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, kt�rzy kiedykolwiek mieli
do czynienia z programowaniem,
a powyłsze uwagi skierowane są
do nowicjuszy, kt�rzy dopiero od
niedawna interesują si� proceso-
rami i sterownikami jednoukłado-
wymi). W przypadku procesor�w
AVR program asemblera rozpo-
wszechniany jest nieodpłatnie
przez firm� ATMEL. Asembler
oraz kilka innych program�w na-
rz�dziowych i ciekawych przykła-
d�w oprogramowania dla proce-
sor�w AVR mołna znale�Ę na
stronie internetowej firmy pod
adresem www.atmel.com. Na tej
stronie kierując si� nast�pują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 rejestr�w i bit�w.
Np. jeden z rejestr�w sterujących
portem B procesora znajduje si�
pod fizycznym adresem 18h. Pi-
sząc program duło łatwiej zapa-
mi�taĘ 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 kt�rym znajduje
si� poddawany asemblacji plik
�r�dłowy. Mołna wykorzystaĘ go-
Rys. 6. Wyprowadzenia niektórych procesorów serii AVR.
towe pliki �r�dłowe podawane
st�pnych informacji wynika, łe ne. Program mołe odwoływaĘ si� w przykładach albo napisaĘ taki
kompilator dla sterownik�w AVR do etykiet, tak jak np. do kon- plik samodzielnie.
oferuje firma IAR, co jest wiado- kretnych adres�w w pami�ci pro- 3. Kałdy program powinien
mością dobrą i złą. Dobrą ponie- gramu. zawieraĘ na początku winietk�
wał narz�dzia tej firmy są pro- Nazwa etykiety zako�czona 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, zwi�zły
zazwyczaj są bardzo drogie i prak- umieszczanie dyrektyw czyli spe- opis jego funkcji, oznaczenie wer-
tycznie niedost�pne 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ład�w lującego. Nazwa dyrektywy po- przekonamy si� bardzo szybko,
w swoim własnym interesie b�dą przedzona jest bezpośrednio zna- gdy uzbiera nam si� kilka napi-
wspierali powstawanie taniego op- kiem kropki (.). Dalej, po co sanych wcześniej program�w
rogramowania narz�dziowego, za- najmniej jednej spacji za etykietą asemblerowych. Po pewnym cza-
ch�cając w ten spos�b do wyko- lub początkiem linii mołe poja- sie bardzo łatwo zapomnieĘ co
rzystywania w konstrukcjach elek- wiĘ si� instrukcja, kt�ra 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
r�w. na przez asembler na seri� kod�w zmian w stosunku do innych wer-
Fenomen popularności proce- sterujących działaniem procesora. sji. OPŁACA SI TAK�E ZAPISY-
sor�w '51 wiąłe si� gł�wnie z do- W linii programu mołe pojawiĘ WAĆ ROZBUDOWANE I DO-
st�pnoś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 poszczeg�lne cz�ści, zmien- stanie okienko komunikat�w za-
ły otworzyĘ nowy dokument po- ne itd. Im liczniejsze i dokładniej- ko�czonych informacją o braku
sługując si� w tym celu ikoną sze są komentarze, tym
pustej kartki albo wczytaĘ wcześ- mniej potem kłopot�w
niej napisany program, kt�ry 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 program�w kiem średnika (;) i mo-
i opierając si� na tych przykła- łe si� znale�Ę po co
dach napiszą sw�j własny, pier- najmniej jednej spacji
wszy program dla procesora AVR. za instrukcją lub zaj-
Generalnie dobrze jest pami�taĘ mowaĘ całą lini�.
o kilku, nast�pują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 element�w, kt�rych wą, plik definicji np.
połołenie w jej obr�bie nie jest .INCLUDE �1200def.-
oboj�tne. Na pierwszej pozycji inc�. Plik definicji jest
w nowej linii mogą znale�Ę si� plikiem tekstowym,
etykiety, czyli nazwy symbolicz- w kt�rym za pomocą
Rys. 7. Mapa pamięci procesorów AVR.
Elektronika Praktyczna 5/99
73
Programator procesorów AVR
bł�d�w. W przeciwnym razie typy procesor�w w obr�bie rodzi- niejszych informacji naleły za-
w okienku pojawią si� ostrzełenia ny mogą si� mi�dzy sobą znacz- wsze szukaĘ w dokumentacji tech-
wskazujące linie programu, w kt�- nie r�łniĘ, chociałby liczbą wy- nicznej dost�pnej chociałby na
rych wyst�pują 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� obud�w wybranych
nych przez program asemblera. neralnie jednak struktura wewn�- typ�w procesor�w. Dost�p do pro-
Dane przeznaczone dla naszego trzna wszystkich sterownik�w jest gramowalnych układ�w wewn�-
programatora powinny byĘ utwo- podobna. trznych procesora (np. licznik�w)
rzone w formacie Intela, a plik Jako przykład mołe posłułyĘ oraz port�w, za pomocą kt�rych
powinien mieĘ rozszerzenie HEX. schemat blokowy mikrokontrolera procesor komunikuje si� ze świa-
W programie dost�pny jest rozbu- AT90S2313 pokazany na rys. 5. tem zewn�trznym, realizowany jest
dowany plik pomocy dobrze opi- Centralne miejsce przypada jed- poprzez rejestry I/O. Ich adresy
sujący zar�wno składni� popra- nostce arytmetyczno-logicznej oraz adresy 32 rejestr�w uniwer-
wnie napisanego programu �r�d- ALU oraz zespołowi rejestr�w salnych znajdują si� we wsp�lnej
łowego jak i jego poszczeg�lne uniwersalnych. Instrukcje progra- przestrzeni adresowej wewn�trznej
elementy. mu w postaci 16-bitowej, podawa- pami�ci RAM procesora. Map�
Ostrzełenia wyświetlane przez ne są do ALU i rejestr�w uniwer- adres�w dla układu 90S2343 po-
program WAVRASM pozwalają salnych z pami�ci programu adre- kazano na rys. 7. W przypadku
wyeliminowaĘ bł�dy składni, prze- sowanej przez licznik Program innych procesor�w zmianie ulega
kr�cone nazwy rozkaz�w itp., na- Counter. Opr�cz tych element�w, tylko najwyłszy adres pami�ci
tomiast nie uchronią nas przed do wewn�trznej magistrali dołą- RAM, co wynika z jej rozmiar�w.
bł�dami w konstrukcji logicznej czone są bloki statycznej pami�ci Wyjątkiem jest tu układ 90S1200,
programu, kt�re sprawiają, łe za- (SRAM), pami�ci EEPROM, układ kt�ry opr�cz bloku rejestr�w uni-
programowany procesor nie dział watchdoga, interfejs SPI oraz ukła- wersalnych nie posiada wewn�tr-
tak, jak tego oczekujemy. To dy, kt�rych wyst�powanie zaleły znej pami�ci RAM.
najtrudniejsze do wychwycenia od konkretnego typu procesora: Pierwsze pr�by pisania progra-
bł�dy, bo nasze własne. Przy ich liczniki, interfejs szeregowy UART m�w dla procesor�w 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, kt�re na kom- liczba bufor�w port�w wejścia/ mi, kt�rzy takłe spr�bują wyko-
puterze PC �udają�, czyli symu- wyjścia. Praca wewn�trznych ukła- rzystaĘ w swoich urządzeniach te
lują spos�b działania zaprogramo- d�w sterownika AVR przebiega sterowniki. Ze wzgl�du na r�łni-
wanego procesora. Dzi�ki obser- w takt impuls�w ze stabilizowa- ce w wewn�trznej budowie r�ł-
wacji tego działania, wykonywa- nego kwarcem oscylatora, kt�ry nych typ�w procesor�w, nie za-
niu pojedynczych instrukcji, usta- w pewnych modelach mołe byĘ wsze ich listy rozkaz�w są iden-
wianiu pułapek i podglądaniu za- zastąpiony przez wewn�trzny ge- tyczne. Dotyczy to zwłaszcza in-
wartości symulowanych rejestr�w nerator o stałej cz�stotliwości strukcji skok�w i wywoła� pod-
procesora, duło łatwiej odkryĘ 1MHz, obywający si� bez zewn�- program�w. I tak np. w proceso-
w programie miejsca, kt�re go trznych element�w. rze 90S1200 brak jest rozkazu
prowadzą w przysłowiowe maliny Poniewał rodzina sterownik�w 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. r�wnania 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 uwzgl�dniaĘ członk�w wraz z zestawieniem ich rzony� instrukcją, kt�rej nie ro-
jego mołliwości wynikające z we- najwałniejszych z punktu widze- zumie zacznie działaĘ w spos�b
wn�trznej budowy. Poszczeg�lne 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- kt�ry w innym typie procesora
sory posiadają rozbudowany ze- jestru SPL nie wpiszemy odpo- wywołuje takie samo przerwanie,
staw rejestr�w og�lnego przezna- wiedniego adresu, pierwszy zapis to wektory przerwania w obu ty-
czenia. Istnieją jednak r�łnice na stosie spowoduje zniszczenie pach procesor�w nie muszą zna-
w sposobie ułycia rejestr�w nale- zawartości rejestr�w, na kt�ry SPL jdowaĘ si� pod tym samym ad-
łących do 1 i 2 poł�wki zestawu. b�dzie wskazywał. Trzeba o tym resem. Konstruktorzy układu zre-
Do rejestr�w R0-R15 nie mołna pami�taĘ i wpisaĘ do SPL adres zygnowali z zasady przypisania na
w spos�b bezpośredni zapisaĘ pami�ci RAM, w kt�rej umiesz- stałe tych samych adres�w 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 pami�taĘ.
wem kt�regoś z rejestr�w 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Ę nast�pują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świ�ciĘ troch�
; do rejestru R1 procesora. Jednak r�łne typy pro- miejsca na łamach naszego pisma.
Wszystkie procesory (z wyjąt- cesor�w z rodziny AVR cechują Przygotowywane są proste urzą-
kiem AT90S1200) posiadają stos, si� r�łną liczbą mołliwych prze- dzenia wykorzystujące ciekawe ce-
kt�ry mołe byĘ umieszczony rwa�, co wynika z ich budowy chy procesor�w, jakimi są szyb-
w dowolnym miejscu pami�ci i mołliwości. Jest to oczywiście kośĘ działania i mały pob�r mocy
RAM. W momencie włączenia za- zrozumiałe, bowiem procesor po- pozwalający na zasilanie układ�w
silania wska�nik stosu, czyli re- zbawiony np. portu szeregowego z baterii. Mamy nadziej�, łe takłe
jestr SPL, inicjowany jest wartoś- nie mołe wykonywaĘ procedury czytelnik�w EP zainteresuje ten
cią zero. Dop�ki nie korzystamy przerwania generowanej przez ten temat i spr�bują sami napisaĘ cie-
ze stosu (nie wywoływane są port. Jednak wyst�puje tu pewna kawe programy dla procesor�w
podprogramy i przerwania), to ta- niekonsekwencja. Nawet jełeli pro- AVR.
kie ustawienie wska�nika nie jest cesor b�dzie wyposałony w układ, Ryszard Szymaniak, AVT
Elektronika Praktyczna 5/99
75


Wyszukiwarka