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