You are on page 1of 68

ATMEL

Poglavlje 1
1.1 Sadraj opreme
STK500 startna oprema razvojne ploe Kablovi za STK500 -(2 komada) 10-ini kablovi za I/O portove i paralelni mod za programiranje -(1 komad) 6-ini kabal za unutar-sistemsko programiranje -(4 komada) 2-ini kabal za UART i DataFlash konekcije 9-noni RS-23 kabal Istosmijerna napojna jedinica Atmel CD-ROM sa tehnikim podacima i softverom AT90S8515-8PC mikrokontroler

Slika 1.1 STK500 oprema

1.2 Zahtjevi za sistemom


Minimalni hardverski i softverski zahtjevi su: 486 procesor (Pentium je preporuen) 16MB RAM-a 12 MB slobodnog prostora na hard disku (AVR Studio) Windows 95/98/2000/ME/NT 4.0 i novije verzije 115200 RS-232 port (komunikacijski port) 10-15 V istosmijerna napojna jedinica, 500 mA minimalno

1.3 Brzi start


STK500 startna oprema je isporuena sa AT90S8515-8PC mikrokontrolerom u socket-u oznaenim sa SCKT3000D3. Poetna podeavanja premosnice e dopustiti 2

mikrokontroleru da radi sa izvora clock-a i naponskog regulatora na STK500 ploi. Mikrokontroler je programiran sa testnim programom koji ukljuuje LED diode. Treba spojiti LED diode, prekidae, i napon na STK500 da bi se pokrenuo testni program u AT90S8515. Koristiti obezbijeene 10-none kablove da bi se spojilo zaglavlje oznaeno sa PORTB sa zaglavljem oznaenim sa LEDS, i spojiti zaglavlje oznaeno sa PORTD sa zaglavljem oznaenim sa SWITCHES. Spojevi su prikazani na slici:

Slika 1.2 Poetne postavke STK500

Spoljana 10-15V napojna jedinica je neophodna. Ulazni krug je punovalni ispravlja, i STK500 automatski manipulie i sa pozitivnim i negativnim centralnim konektorima. Ako je pozitivni centralni konektor koriten, moe biti nemogue da se iskljui STK500 poto prekida napona diskonektuje izlaz uzemljenja. U uvom sluaju uzemljenje moe biti dostavljeno preko oklopa RS-232 kabla ako je spojen ili preko alternativnih spojeva uzemljenja. Spojiti napojni kabal izmeu napojne jedinice i STK500. Dovesti 10-15 V istosmijernog napona. Prekida napona ukljuuje i iskljuuje napajanje za STK500. Kada je STK ukljuen LED dioda svijetli od crvene, preko ute pa do zelene boje. Zelena LED dioda pokazuje daje prisutan napon VCC. Program koji sada radi u AT90S8515 e reagirati na pritisak na prekidaima svijetljenjem dioda. Startna oprema moe biti konfigurisana za razliite izvore napona i clock-a.

10-15V DC

Konekcija prema raunaru (RS-232)

Slika 1.3 Konekcija prema STK500

Da bismo programirali AT90S8515, spojimo obezbijeeni 6-ini kabal izmeu ISP6PIN zaglavlja i SPROG3 cilja ISP zaglavlja kao to je prikazano na Slici 1.2. Spojimo serijski kabal sa konektorom oznaenim sa RS232 CTRL na razvojnoj ploi sa COM portom na PC-u, kao to je prikazano na Slici 1.3. Instalirati AVR Studio na PC. Kada je AVR Studio instaliran, program e automatski detektovati na koji je komunikacioni port spojen STK500.

Poglavlje 2
2.1 Opis hardvera

Zaglavlje za proirenje ploa Zaglavlja za I/O portove Socket za ciljani AVR Prekidai Zaglavlje za prekidae Zaglavlje za RS-232 interfejs Zaglavlje za DataFlash interfejs Opcije za podeavanje premosnica Dugme za resetovanje ureaja Prekida napajanja Konektor napajanja LED napajanja Zaglavlja za paralelno programiranje RS-232 port za programiranje Master MCU Statusna LED dioda RS-232 port za komunikaciju Socket za kristal Programsko dugme Zaglavlje za proirenje ploa Zaglavlja za ISP ureaje 10-nono ISP zaglavlje (samo za spoljane ureaje)

Zaglavlje za LED diode

LED diode

6-nono ISP zaglavlje Slika 2.1 STK500 komponente

2.2 Opis korisnikih LED dioda


STK500 startna oprema ukljuuje osam utih LED dioda i osam prekidaa. LED diode i prekidai su povezani da oiste od greke zaglavlja koja su odvojena od ostatka ploe. Oni mogu biti spojeni na AVR ureaje sa obezbijenim 10-inim kablom na zaglavlje s noicama AVR-ovog I/O port-a. Slika 2.2 pokazuje kako LED diode i prekidai mogu biti spojeni na zaglavlja I/O porta. Kablovi bi trebali biti direktno spojeni sa zaglavlja porta na zaglavlje LED diode ili prekidaa. Kabal se ne bi trebao uvrtati. Crvena ica na kablu ukazuje na noicu 1. Potvrdite da je ovo spojeno na noicu 1 na svakom od zaglavlja. Bilo koja zaglavlja I/O porta mogu biti spojena na LED diode i prekidae koristei 10ine kablove.

Slika 2.2 Spajanje LED dioda i prekidaa na zaglavlja I/O portova

2.3 Port konektori


Prilkjuak za zaglavlje I/O porta je objanjeno na Slici 2.3. Kvadratno obiljeje ukazuje na noicu(iglicu) 1.

Slika 2.3 Opti prikljuak za zaglavlje I/O port-a

Zaglavlje PORTE/AUX ima neke posebne oznake i funkcije u dodatku sa noicama PORTE-a. Prikljuak za ovo zaglavlje je prikazano na Slici 2.3.

Slika 2.3 Prikljuak za PORTE zaglavlje

Specijalne funkcije ovog zaglavlja su: PE0-PE2


Tabela 2.1 PORTE konekcija PE0 PE1 PE2 Atmega161 PE0/ICP/INT2 PE1/ALE PE2/OC1B AT90S4414/AT90s8515 ICP ALE OC1B

REF: Analogni referentni napon. Ova noica je povezana sa AREF noicom na ureajima koji imaju odvojen analognu referentnu noicu. XT1: XTAL 1 noica. Unutranji glavni clock signal prema svim socket-ima. Ako je XTAL1 premosnica otpojena, ova noica moe biti iskoritena kao unutranji clock signal. XT2: XTAL 2 noice. Ako je XTAL2 premosnica otpojena ovca noica moe biti iskoritena za spoljani kristal sa XT1 noicom.

Zaglavlja za LED diode i prekidae koriste iste prikljuke kao i zaglavlja za I/O portove. Prikljuak zaglavlja prekidaa je objanjen na Slici 2.4. Kvadratna oznaka ukazuje na noicu 1.

Slika 2.4 Prikljuak za zaglavlje prekidaa

Slika 2.5 Prikljuak za zaglavlje LED dioda

2.4 Opis korisnikog RS-232 interfejsa


STK500 ukljuuje dva RS-232 porta. Jedan RS-232 port je iskoriten za komunikaciju sa AVR Studiom. Drugi RS-232 moe biti iskoriten za komunikaciju izmeu ciljanog AVR mikrokontrolera u socket-u i serijskog porta PC-a spojenog na RS-232. Da bismo koristili RS-232, UART noice AVR moraju biti fiziki spojene na RS-232. Zaglavlje sa dvije noice oznaeno sa RS-232 SPARE moe biti iskoriteno za spajanje RS-232 konvertora na noice UART-a na ciljanom AVR mikrokontroleru u socket-u. Koristi se 2-ini kabal da bi se spojile UART noice na RS-232. Konekcija je prikazana na Slici 2.6. Blok ema RS-232 konekcije je prikazana na Slici 2.7:

Slika 2.6 Konekcija I/O portova za UART

Konvertor napona
Slika 2.7 ema UART noica za spajanje

2.5 Opis DataFlash noica


AT45D021 2-Mbit-ni DataFlash je ukljuen u STK500 za pohranjivanje podataka. DataFlash je visoko osjetljiva Flash memorija sa SPI serijskim interfejsom. Detaljnija tehnka dokumentacija se moe vidjeti na Atmel-ovom CD-ROM-u, u odjeljenju za Flash memoriju ili na Atmelovoj Web stranici. DataFlash moe biti spojen na I/O noice mikrokontrolerova socket-a. 4-nono zaglavlje oznaeno sa "DATAFLASH" moe biti iskoriteno za spajanje SPI interfejsa DataFlasha sa I/O noicama ciljanog mikrokontrolera u socket-u. 2-ini kablovi su ukljueni u STK500 za spajanje DataFlasha sa I/O noicama. Dobavljeni 10-ini kablovi mogu takoer biti koriteni ako je DataFlash konektovan na hardverski SPI interfejs na PORTB AVR mikrokontrolera. Spajanje I/O noica je prikazano Slici XX. Blok dijagram DataFlash konekcija je prikazan na slici 2.10 , za spajanje DataFlash-a na AVR hardverski SPI interfejs. Prikljuak SPI interfejsa je prikazan na Slici 2.8 i Slici 2.9.

Slika 2.8 PORTB SPI prikljuak (40 analognih dijelova)

Slika 2.9 PORTB SPI prikljuak (28 analognih dijelova)

Slika 2.10 Spajanje I/O noica sa DataFlashom za AT90S8515

Konvertor napona

Slika 2.11 ema DataFlash konekcija

10

2.6 Odjeljenje za socket-e


Programski modul se sastoji od osam socket-a. U ovim socket-ima, ciljani AVR ureaj moe biti ubaen za programiranje i za koritenje u aplikacijama. Napomena: Samo jedan AVR ureaj moe biti ubaen u socket-e. Za AVR Flash memoriju je garantovano da e biti ispravna sve do 1000 programiranja iako je njen ivotni vijek puno dui. Napomena: Kada se ubacuje ureaj u socket, primjetite orijentaciju ureaja. Urez na kratkoj strani dijela mora se podudarati sa urezom na socket-u. Ako je ureaj ubaen na pogrean nain moe otetiti dio i startnu opremu. Odjeljenje za socket je iskoriteno i za pokretanje aplikacija i za programiranje.

Slika 2.12 Modul za programiranje

Dio ubaen u socket moe biti programiran u sistemu iz AVR Studija sa dva razliita metoda: 1. AVR In-System Programming (ISP)- unutar sistemsko programiranje koje radi sa dijelovima pod normalnim naponom. 2. Visoko-naponsko programiranje, gdje je napona napajanja uvijek 5 V etiri opte mree mogu biti spojene na odjeljenje za socket-e (VTARGET, RESET, XTAL1 i AREF). U nastavku je opisano kako se koriste oba metoda za programiranje. 2.6.1 ISP programiranje Unutar sistemsko pogramiranje koristi unutranji AVR SPI (Serijski Periferni Interfejs) da skine kod u Flash i EEPROM memoriju AVR-a. ISP programiranje zahtjeva samo tri signalne linije za programiranje i to: Vcc, GND, RESET. AVR moe biti programiran pri normalnom radnom naponu 2.7-6.0 V. Nisu potrebni signali visokokog napona. ISP programer moe programirati unutranji i Flash i 11

EEPROM. Takoer programira bite osiguraa za biranje clock opcija, startno vrijeme i unutranji "Brown Out" detektor (BOD) za veinu ureaja. Visoko-naponsk programiranje moe takoer programirati ureaje koji nisu podrani od strane ISP programiranja. Neki ureaji zahtijevaju visoko-naponsko programiranje za programiranje odreenih bita za osigurae. Zato to je programski interfejs smjeten na razliitim noicama od dijela do dijela, koriste se tri programska zagavlja da bi se sproveli programski signali do tanih noica.6-ini kabal je obezbijeen za spajanje ISP signala sa zaglavljima ISP ureaja. Sistem kodiranja bojama i brojani sistem se koriste da bi se objasnilo koje zalavlje ciljanog ISP ureaja se koristi za koji socket. Za vrijeme ISP programiranja, 6-ini kabal mora uvijek biti spojen sa zaglavljem oznaenim sa "ISP6PIN". Kada se programiraju dijelovi u plavim socket-ima, spojiti drugi dio kabla na plavo SPROG1 zaglavlje ISP-a. Kada se programiraju dijelovi u zelenom socket-u, koristi se zeleno SPROG2 ISP zaglavlje. I kada se programiraju dijelovi u crvenom socket-u koristi se crveno SPROG3 ISP zaglavlje. Tabela 2.2 prikazuje koji socket-iodgovaraju kojem AVR ureaju, i koje se SPROG ISP zaglavlje koristi za ISP programiranje. 6-ini kablovi bi trebali biti spojeni direktno sa ISP6PIN zaglavlja na odreeno SPROG ciljano ISP zaglavlje. Kabal ne bi trebalo uvrtati. Obojena ica kabla ukazuje na noicu 1. Utvrdite da je ovo spojeno na noicu 1 na svakom od zaglavlja. Kada se programiraju ureaji sa 8 noica, primijetimo slijedee: Noica 1 se koristi kao RESET. RESET signal koriten za vrijeme ISP programiranja prema tome nije spojen na noicu 1 na ovim socket-ima. Ovaj signal mora biti spojen stavljanjem ice izmeu RST i PORTE zaglavlja i PB5 na PORTB zaglavlju.
Tabela 2.2 AVR Socket-i AVR ureaji STK500 Socket AT90S1200 AT90S2313 AT90S2323 AT90S2343 ATtiny12 ATtiny22 ATtiny11 ATtiny28 AT90S4414 AT90S8515 ATmega161 AT90S4434 AT90S8535 ATmega16 ATmega163 ATmega323 AT90S2333 AT90S4433 ATmega8 ATtiny15 N/A SCKT3300D3 SCKT3400D1 Boja Crvena Plava Broj 3 1 SPROG3 SPROG1. spaja RST na PORTE prema PB5 na PORTB. Spaja XTI na PORTE prema PB3 (XTAL1 na 2323) na PORTB. Samo visoko-naponsko programiranje Samo visoko-naponsko programiranje SPROG3 SPROG3 ISP zaglavlje

SCKT3400D1 SCKT3500DSCKT3000D3 SCKT3100A3

Plava Nijedna Crvena Crvena

1 3 3

SCKT3200A2 SCKT3600A1 SCKT3700A1

Zelena Plava Plava

2 1 1

SPROG2 SPROG1. Spaja RST na PORTE prema PB5 na PORTB. Socket nije u upotrebi u ovoj verziji STK500

12

ATmega103 ATmega128

Koristi STK500 Top Modul

2.6.2 Visoko-naponsko programiranje


Za visoko-naponsko programiranje, programski napon od 12 V je doveden na RESET noicu AVR ureaja. Svi AVR ureaji mogu biti programirani sa visoko-naponskim programiranjem, i ureaj moe biti programiran za vrijeme montiranja u socket. Dva razliita metoda se koriste za visoko-naponsko programiranje: dijelovi sa 8 noica koriste serijski progrmaski interfejs, dok ostali dijelovi koriste paralelni programski interfejs. Programski signali su dovedeni do odreenih noica ciljanog ureaja koristei kablovi koji su doli uz STK500. Tabela 2.3 sumira metode programiranja i posebna razmatranja kad se koristi visokonaponsko programiranje.
Tabela 2.3 Podeavanja visoko-naponskog programiranja AVR ureaji STK500 Socket Boja Broj AT90S1200 SCKT3300D3 Crvena 3 AT90S2313 AT90S4414 SCKT3000D3 Crvena 3 AT90S8515 AT90S4434 SCKT3100A3 Crvena 3 AT90S8535 ATtiny28 SCKT3500DNijedna ATmega161 SCKT3000D3 Crvena 3 ATmega16 SCKT3100A3 Crvena 3 ATmega163 ATmega323 AT90S2333 SCKT3200A2 Zelena 2 AT90S4433 ATmega103 Koristi ATmega128 STK501 Top Module ATmega8 SCKT3200A2 Zelena 2 AT90S2323 AT90S2343 ATtiny11 ATtiny12 ATtiny22 ATtiny15 N/A SCKT3400D1 1 Metod visoko-naponskog programiranja Paralelno visoko-naponsko programiranje. Spojiti PROG CTRL zaglavlje sa PORTD i PROG DATA sa PORTB

Paralelno programiranje kao montirajte BSEL2 premosnicu Paralelno programiranje kao montirajte PJUMP premosnicu Paralelno programiranje kao montirajte BSEL2 premosnicu

iznad;

iznad; iznad;

Paralelno programiranje kao iznad; montirajte PJUMP premosnicu i montirati BSEL2 izlaz na PC Serijsko visoko-naponsko programiranje

SCKT3600A1 SCKT3700A1

Plava Plava

1 1

Socket nije u upotrebi u ovoj verziji STK500

2.6.2.1 Paralelno visoko-naponsko programiranje


Da bismo koristili visoko-naponsko programiranje, programirajui signali moraju biti dovedeni na AVR I/O noice. Dva 10-ina kabla koja su obezbijeena u STK500 mogu biti iskoritena za spajanje zaglavlja PROG DATA sa zaglavljem PORTB, i PROG CTRL zaglavlje sa PORTD zaglavljem kao to je prikazano na Slici 2.13.

13

Slika 2.13 Spajanje za paralelno visoko-naponsko programiranje

Neka od podeavanja premosnica na STK500 moraju biti promijenjena kada se koristi visoko-naponsko programiranje. Slika 2.14 objanjava ova podeavanja premosnica (jumper-a).

Premosnice moraju biti postavljene

Premosnica ovisna o ureaju (Vidjeti ispod)

Slika 2.14 Podeavanje premosnica za visoko-naponsko programiranje

14

Hardeversko podevanje za visoko-naponsko programiranje: 1. Iskljuiti prekida za napajanje 2. Podesiti ureaj da radi u svom socketu u skladu sa Tabelom 2.3 3. Spojiti zaglavlja PROGDATA i PORTB sa 10-inim kablom. 4. Spojiti zaglavlja PROGCTRL i PORTD sa 10-inim kablom. 5. Postaviti premosnicu OSCSEL na noice 1 i 2 da bi se odabrao sotverski kontrolisan sat. 6. Postaviti premosnicu XTAL1 da bi se doveo signal oscilatora na ureaj. 7. Postaviti premosnice VTARGET i RESET. 8. Kada se programiranju AT90S2333, AT90S4433, ili Atmega8, postaviti obje PJUMP premosnice. 2-ini kabal se moe koristiti umjesto premosnica. 9. Kada se programiraju Atmega16, Atmega163, Atmega161, Atmega128, ili Atmega323, postaviti premosnicu BSEL2. Kada se programira Atmega8, spojiti BSEL2 izlaz na PC2. 2-ini kabal moe biti iskoriten umjesto premosnica. 10. Otpojiti odabrani (ciljani) sistem. 11. Ukljuiti prekida za napajanje. 12. Osigurati da je VTARGET izmeu 4.5 i 5 V prije programiranja. Napomena: Odstraniti hardverska podeavanja za visoko-naponsko programiranje prije poetka debug-iranja.

2.6.2.2 Serijsko visoko-naponsko programiranje


AVR ureaji sa 8 noica imaju premalo noica da bi koristili paralelnu komunikaciju za vrijeme visoko-naponskog programiranja. Umjesto toga koriste serijsku komunikaciju. To znai da manje signala treba sprovesti. Hardversko podeavanje za visoko-naponsko programiranje je prikazano u nastvaku: 1. iskljuiti prekida za napajanje. 2. Podesiti ureaj da radi u svom socketu u skladu sa Tabelom 2.3 3. Postaviti premosnicu OSCSEL na noicu 1 i 2 da bi se odabrao sofverski kontrolisan sat. 4. Postaviti premosnicu XTAL1 da bi se doveo signal oscilatora do ureaja. 5. Postaviti premosnice VTARGET i RESET. 6. Koristiti jedan 2-ini kabal da se spoji PB3 noica (noica 4) na zaglavlju PORTB sa XT1 noicom (noica 7) na zaglavlju PORTE/AUX. Ovo e spojiti sistem sata (clock-a) sa AVR ureajem. 7. Koristiti drugi 2-ini kabal da se spoji PB5 noica (noica 6) na zaglavlju PORTB sa RST noicom (noica 4) na zaglavlju PORTE/AUX. Ovo e spojiti resetovanje sistema na AVR ureaj. 8. Ukljuite prekida za napajanje i spremni ste za programiranje.

15

Slika 2.15 Spajanje za serijsko visoko-naponsko programiranje

2.7 Podeavanje premosnica (jumper-a)


Master mikrokontroler (MCU) i osam premosnica kontroliu hardverska podeavanja poetne opreme. Za vrijeme normalnog rada ove premosnice bi trebale biti postavljene na defaultne pozije. Da bi se konfigurisala poetna oprema za naprednije koritenje, premosnice se mogu ukloniti ili premjestiti na nove pozicije. Podeavanje premosnica i njihovo koritenje u objanjeni u nastavku. Poetno podeavanje premosnica (default) je prikazano na Slici 2.16.

16

Slika 2.16 Poetno podeavanje premosnica (default) Tabela 2.4 Opis premosnica

Premosnica (Jumper) VTARGET AREF RESET XTAL1 OSCSEL BSEL2 PJUMP

Opis poetnog podeavanja Dobavljanje VTARGET na ploi spojeno Referentni napon na ploi spojen Reset sistem na ploi spojen Clock sistem na ploi spojen Oscilator na ploi spojen Nije spojen. Koristi se za visoko-naponsko programiranje Atmega8, ATmega16, ATmega163, ATmega128 i ATmega323 Nije spojen. Koristi se za visoko-naponsko programiranje AT90S2333, AT90S4433 i ATmega8

2.7.1 VCC i VTARGET podeavanja

VTARGET kontrolira dovedeni napon soccket-u ciljanoa AVR mikrokontrolera. Moe biti kontrolisan ili iz AVR Studija ili doveden iz spoljanjeg izvora. Ako je VTARGET premosnica spojena, napon je spojen na plou. Napon na ploi se moe podeavati od 0-6 V iz AVR Studija. Uvijek prvo treba pogledati tehniku dokumentaciju AVR ureaja prije podeavanja VTARGET napona. Ako je VTARGET premosnica iskopana, napon VCC mora biti dobavljen iz vanjskog izvora na jednu od VTG noica na PORT zaglavlju. Slika XX objanjava VTARGET opcije premosnica. Kada se koristi vanjski izvor za VTARGET, korisnik mora kontrolisati da je napon VTARGET vei od AREF (analogni referentni napon). Uvijek treba spojiti zajedniko uzemljenje (GND) kada se koristi vanjski VTARGET napon.

17

Premosnica spojena

Napona na ploi VTARGET spojen (default) Premosnica nije spojena

Napona na ploi VTARGET nije spojen


Slika 17 Opcije premosnica VTARGET-a

2.7.2 Analogni referentni napon AREF


Analogni referentni napon (AREF) moe dostavljati referentni napon za ip A/D konvertora na AVR-u. Ako je AREF premosnica spojena, analogni referentni napon na ploi je spojen na AVR-ov AREF. Analogni referentni napon na ploi se moe podeavati iz AVR Studija od 0-6 V ali ne iznad VTARGET. Kada je AREF premosnica otpojena, AREF napon se moe dobaviti iz vanjskog izvora na AREF noicu PORTE/AUX zaglavlja. Slika 2.18 objanjava opcije AREF premosnice. Kada se koristi vanjski izvor za AREF, korisnik mora kontrolisati VTARGET na viem nivou od AREF. Ovo se moe lako kontrolisati itajui VTG vrijednost iz AVR Studija prije podeavanja AREF-a. AVR-ov AREF signal je takoer dostupan na PORTE zaglavlju; ova noica takoer moe biti iskoritena za vanjski AREF signal.

18

Premosnica spojena

Napona na ploi AREF spojen (default)

Premosnica nije spojena

Napona na ploi AREF nije spojen


Slika 2. 18 Opcije za AREF premosnicu

2.7.3 Reset podeavanja


RESET premosnica kontrolie RESET signal za STK500. Kada ISP programira ciljani ureaj u socket-u, master mikrokontroler programira AVR ureaj bez uplitanja sa aplikacijom. Kada je RESET premosnica spojena, master mikrokontroler kontrolira RESET signal AVR-a. Kada RESET premosnica nije spojena, RESET signal je otpojen. Ovo je korisno za prototip aplikacije sa vanjskim sistemom za resetovanje. RESET premosnica mora uvijek biti spojena pri visoko-naponskom programiranju AVR ureaja. Kada se koristi vanjski sistem za resetovanje, mora dozvoliti reset liniji da bude kontrolisana od strane reset sistema master mikrokontrolera za vrijeme programiranja. RESET dugme je otpojeno ako RESET premosnica nije spojena. Slika 2.19 objanjava opcije RESET premosnice. STK500 master mikrokontroler kontrolira RESET signal AVR-a. RESET signal je dostupan na zaglavlju PORTE/AUX; ova noica se takoer moe iskoristiti za vanjski RESET signal. Slika 2.20 prikazuje unutranje spajanje RESET signala. Napomena: Za vrijeme visoko-naponskog programiranja, STK500 promjenjuje 12 V na AVR-ovu RESET liniju. Prema tome, vanjki reset krug koji nije sposoban da ovo podenese mora biti otpojen prije visoko-naponskog programiranja AVR-a.

19

Premosnica spojena

RESET signal na ploi spojen (default)

Premosnica nije spojena

RESET signal na ploi nije spojen


Slika 2.19 Opcije RESET premosnice

RESET KRUG

Slika 2.20 Unutranje RESET spajanje

20

2.7.4 Podeavanje sata (clock), XTAL i OSCSEL


STK500 ukljuuje nekoliko clock opcija za ciljani AVR. Podeavanjem premosnica XTAL1 i OSCSEL kontrolira odabir clock-a. OSCSEL odreuje koji signal da vodi do XTAL1 noice na AVR-u. Kada je XTAL1 premosnica spojena, STK500 unutranji sistem clock-a je koriten kao glavni clock za AVR. Kada XTAL1 nije spojen, unutranji clock sistem je otpojen. Ovo dozvoljava vanjskom clock signalu ili kristalima da budu koriteni kao clock izvor za AVR. Slika 21 prikazuje opcije za XTAL1 premosnicu. Premosnica spojena

XTAL1 signal na ploi spojen (default) Premosnica nije spojena

XTAL1 signal na ploi nije spojen


Slika 21 Opcija XTAL1 premosnice

Kada XTAL1 premosnica nije postavljena, unutranji izvor clock-a ili kristala moe biti spojen na PORTE zaglavlje. Ovo je prikazano na Slici 2.23. Kada je XTAL1 premosnica spojena, STK500 unutranji sistem clock-a je koriten kao glavni clock na AVR-u. Unutranji sistem clock-a moe ili koristiti kristal u socket-u za kristal na ploi ili sofverski generisan clock iz master mikrokontrolera. Frekvencija sofverski generisanog clock-a moe se podeavato od 0 do 3.68 MHz. Default vrijednost je 3.68 MHz. Kada se koristi STK500 softverski generisan sistem clock-a kao glavni clock, osigurai AVR mikrokontrolera bi trebali konfigurisani za vanjski clock kao ivor clock-a. Ovo daje najkrae startno vrijeme za AVR mikrokontroler. Unutranji sistem clock-a je odabran sa OSCSEL premosnicom. Slika 2.22 prikazuje opcije za OSCSEL premosnicu. Kada se AVR programira u visoko-naponskom modu za programiranje, OSCSEL bi trebao biti spojen na noice 1 i 2 da bi se master mikrokontroleru dala kontrola nad clockom. 21

Premosnica spojena na noice 1i2

Sotverski clock signal na ploi spojen Premosnica spojena na noice 2 i 3

Kristal clock signal na ploi spojen Premosnica nije spojena

XTAL1 signal na ploi spojen


Slika 2.22 Opcije OSCSEL premosnice

Napomena: U realnim aplikacijama sa samo jednim AVR-om spojenim na kristal, neam potrebe za vanjskim krugom oscilatora. STK500 ima osam razliitih AVR socket-a spojenih na isti clock sistem. Duge signalne linije u ovom sistemu oteavanju rad kristala sa oscilatorima na ipu na AVR-u. Oscilator na STK500 je dizajniran da radi na svim naponima od 1.8 do 6.0 V.
Oscilator

Kovertor napona

Slika 2.23 XTAL1 i OSCSEL konekcije

22

2.7.5 BSEL2 premosnica


BSEL premosnica spaja Byte Select 2 signal za visoko-naonsko programiranje ATmega8, ATmega16, ATmega161, ATmega163, ATmega128, i ATmega323. BSEL2 premosnica bi trebala biti spojena samo za pri visoko-naponskom programiranju ATmega16, ATmega161, ATmega163, ATmega128, i ATmega323. Kada se koristi ATmega8, spojiti desnu BSEL2 noicu sa PC2. Kabal za PC2

Slika 2.24 BSEL2 konekcija za ATmega8

2.7.6 PJUMP premosnica


PJUMP premosnica vodi programsku noicu za AT90S233, AT90S4433, i ATmega8 do programskih noica kada se korsiti visoko-naponsko programiranje. PJUMP premosnice bi se trebale koristiti samo za visoko-naponsko programiranje na AT90S2333, AT90S4433, ili ATmega8. Za vrijeme debug-iranja (traenja greke), pri visokonaponskom programiranju drugih dijelova, i ISP programiranju, ove premosnice treba otpojiti. Ispravno postavljanje premosnica

Nespravno postavljanje premosnica


Slika 2.25 Postavljanje PJUMP premosnica

23

2.9 Konektori za proirenje


STK500 ima dva konektora za proirenje, po jedan na svakoj strani modula za programiranje. Svi AVR-ovi I/O portovi, programski signali i signali kontrole su dovedeni na konektore za proirenje. Konektori za proirenje dozvoljavaju lako pravljenje prototipa sa aplikacijama na STK500. Prikljuak za konektore za prikljuenje prikazani su na Slici 2.27 i Slici 2.28.

Zaglavlje za proirenje 0

Noica 1

Prog Ctrl

Zaglavlje za proirenje 1

Noica 1

Prog Data

Slika 2.26 Zaglavlja za proirenje

24

Slika 2.27 Prikljuak za konektor za proirenje 0

Slika 2.28 Prikljuak za konektor za proirenje 1

25

2.9.1 Opis signala


Signali AUXI0, AUXI1, AUXO0 i AUXO1 su namijenjeni za buduu upotrebu. Nemojte spajati ove signale na svoju aplikaciju. Signali DATA[7:0] i CT[7:1] se takoer mogu pronai na Prog Data i Prog Ctrl konektorima. BSEL signal je isti kao i onaj kod BSEL2 premosnice. SI, SO, SCK i CS siganli su spojeni na DataFlash. Ostali signali su jednaki onima kod PORT konektora koji su ve objanjeni.

2.10 Razno
STK500 ima dva dugmeta za resetovanje i tri led diode za posebne funkcije i indikaciju stanje. Slika 2.29 prikazuje smjetaj ovih funkcija. LED dioda napajanja socket-a RESET dugme LED dioda glavnog napajanja

Statusna LED dioda

Programsko dugme

Slika 2.29 Specijalne funkcije i statusne indikacije LED dioda

RESET dugme resetuje AVR ureaj. Master mikrokontroler nije kontrolisan od strane RESET dugmeta. Kada RESET premosnica nije spojena, RESET dugme je iskljueno. Programsko dugme Novije verzije AVR Studija mogu poboljati kvalitet (upgrade) master mikrokontrolera na STK500. AVR Studio e detektovati stare verzije softvera i napraviti update Flash programske memorije master mikrokontrolera. Da bi se ovo uradilo, korisnik je duan da pritisne PROGRAM dugme pri ukljuenju STK500. 26

LED dioda glavnog napajanja Crvena LED dioda napajanja je direktno spojena na glavni izvor napajanja i ona uvijek svijetli kada je dovedeno napajanje na STK500. LED dioda napajanja socket-a. Spojena je na VCC linije (VTG) na AVR ureaju u socket-u. Ova dioda e uvijek svijetliti kada je doveden napon na socket. Statusna LED dioda Programska dioda ima tri boje. Za vrijeme programiranja LED dioda je uta. Kada je AVR ureaj uspjeno programiran LED dioda je zelena. Ako programiranje ne uspije, LED dioda e pocrveniti.

27

Poglavlje 3
3.1 Koritenje AVR studija
U ovom dijelu bie prezentiran softver koji podrava STK500, takoer je dat i detaljan opis dostupnih opcija za programiranje. Softver upotrijebljen za komunikaciju sa STK500 razvojnom ploom je ukljuen u AVR studio, verzija 3.2 i vie. Pritiskom na AVR dugme na traci sa alatima AVR studija, pokrenut e se korisniki interfejs kao to je prikazano na Slici 3.1.

Slika 3.1 AVR studio sa STK500 korisnikim interfejsom

3.2 STK500 korisniki interfejs STK500 korisniki interfejs ukljuuje mone osobine za STK500 razvojnu plou. Dostupna podeavanja su podijeljena u est grupa, svaka se moe odabrati klikom na odgovarajui tab. Kako razliiti ureaji imaju razliite osobine, dostupne opcije i izbori e ovisiti o tome koji je ureaj odabran. Osobine koje nisu dostupne imaju sivu boju. 3.2.1 Podeavanje programa Poedeavanja programa su podijeljena u etiri razliite podgrupe. 3.2.1.1 Ureaj Ureaj se bira selektovanjem pravilnog ureaja iz padajueg menija. Ova grupa takoer ukljuuje dugme koja izvodi brisanje ipa na odabranom ureaju, briui i Flash i EEPROM memorije. 28

3.2.1.2 Mod za programiranje Ova grupa selektuje mod za programiranje. Za ureaje koji podravaju samo programiranje visokim naponom, ISP opcija e posiviti. Ako su oba moda dostupna, odabiremo mod klikom na taan metod. Biranje opcije Erase Device Before Programming e natjerati STK500 da izvede brisanje ipa prije programskog koda. Biranjem Verify Device After Programming e natjerati STK500 da izvede verifikaciju memorije poslije programiranja (i Flash i EEPROM). 3.1.2.3 Flash Ako je STK500 korisniki interfejs otvoren a da projekt nije unijet u AVR Studio, opcija Use Current Simulator/Emulator FLASH Memory e posiviti. Kada je projekat ova opcija dozvoljava programiranje sadraja flash memorije predstavljenog u ... Flash Memory pogledu u AVR Studiju. Za vie informacija o AVR Studiju pogledati u AVR Studio Help File. Ako nijedan projekt nije pokrenut, ili je izvorni kod smjeten u odvojenoj heksadecimalnoj datoteci, izaberite opciju Input HEX File. Traite tanu datoteku pritiskom na dugme, ili upisom tane adrese datoteke u dato polje. Izabrana datoteka mora biti u Intel-hex formatu, ili extended Intel-hex formatu.

Slika 3.2 Program

3.1.1.4 EEPROM Ako je STK500 korisniki interfejs otvoren a da projekt nije unijet u AVR Studio, opcija Use Current Simulator/Emulator FLASH Memory e posiviti.Kada je projekat 29

ova opcija dozvoljava programiranje sadraja EEPROM memorije predstavljenog u EEPROM Memory pogledu u AVR Studiju. Za vie informacija o AVR Studiju pogledati u AVR Studio Help File. Ako nijedan projekt nije pokrenut, ili je izvorni kod smjeten u odvojenoj heksadecimalnoj datoteci, izaberite opciju Input HEX File. Traite tanu datoteku pritiskom na dugme, ili upisom tane adrese datoteke u dato polje. Izabrana ... datoteka mora biti u Intel-hex formatu, ili extended Intel-hex formatu. 3.1.2 Fuses podeavanje U Fuses tabu dat je pregled dostupnih osiguraa. Neki osigurai su dostupni samo za vrijeme programiranja u Visoko-naponskom programiranju. Ovi e biti prikazani ali im se nee moi pristupiti ako se radi sa ISP modom programiranja. Pritisnite Read dugme, da proitate trenutne vrijednosti osiguraa, i Write dugme da bi upisali podeavanje osiguraa na ureaju. Biranjem neke od ovih check opcija indicira da bi ovaj osigura trebao biti ukljuen/programiran, to znai pisanje 0 na lokaciju osiguraa u stvarni ureaj. Primijetimo da izbrano podeavanje osiguraa nije ukljueno u brisanjem ureaja sa ciklusom brisanja ipa( npr. Pritiskom na Chip Erase dugme ili Program podeavanja).

Slika 3.3 Osigurai

30

3.1.3 Lockbits podeavanje Slino kao kod Fuses taba, Lockbits tab prikazuje koji modovi zakljuavanja su primjenjivi na odabrani ureaj. Svi biti za zakljuavanje su dostupni i za ISP i za visokonaponsko programiranje. Mod za zakljuavanje moe sadravati kombinaciju razliitih bita za zakljuavanje. Ovo je upravljano korisnikim interfejsom STK500 i tani biti za zakljuavanje su automatski programirani za odgovarajui mod za zakljuavanje. Kada se jednom nivo zatite moda za zakljuavanje ukljui, nije mogue smanjiti nivo zatite selektujui nii stepen zatite ili podeavajui razliit mod za zakljuavanje. Jedini nain da se ukloni bit programiranog zakljuavanja je da se izvede kompletno brisanje ipa, briui i programsku i podatkovnu memoriju. Postoji jedna iznimka: Ako odabrani ureaj ima programirani EESAVE osigura, sadraj EEPROM-a e biti zapamen i ako se izvede kompletno brisanje ipa.

Slika 3.4 LockBits

3.1.4 Advanced (Napredna) podeavanja Advanced tab je podijeljen u dvije podgrupe: 3.1.4.1 Bajti potpisa Pritiskom na tipku Read Signature, bajti potpisa su proitani sa odabranog ureaja. Bajti potpisa se ponaaju kao pokazatelj za dio. Nakon itanja potpisa, sotver e provjeriti da li je potpis taan u skladu sa odabranim ureajem. 31

Slika 3.5 Advanced

3.1.4.2 Bajt podeavanja oscilatora Bajt podeavanja oscilatora je zapisan na ureaj za vrijeme proizvodnje, i ne moe biti izbrisan ili promijenjen od strane korisnika. Bajt podeavanja je podeavajua vrijednost koja bi trebala biti zapisana u OSCCAL registar u skladu sa podeavanjem unutranjeg RC oscilatora. 3.1.4.3 Pisanje bajta za podeavanje oscilatora Pritiskom na tipku Read Cal. Byte, podeavajua vrijednost je proitana sa ureaja i prikazana je u Value text box-u. Primijetimo da bajt za podeavanje nije dostupan za vrijeme izvoenja programa, i mora biti zapisan u memorijsku lokaciju za vrijeme programiranja ako e biti koriten od strane programa. Ako je ova opcija posivila, odabrani ureaj nema podeavajui unutranji RC oscilator. 3.1.4.4 itanje bajta za podeavanje oscilatora Kako bajt za podeavanje nije direktno dostupan za vrijeme izvoenja programa, korisnik bi trebao zapisati bajt za podeavanje u poznatu lokaciju u Flash ili EEPROM memoriji. Ovo treba uraditi upisujui eljenu memorijsku adresu u polje Write address, i onda pritiskom na dugme Write to memory. Bajt za podeavanje je tada zapisan u memoriju prikazan sa Flash i EEPROM dugmadima.

32

3.1.5 Board podeavanje Board tab omoguava promjenu uslova rada na STK500 razvojnoj ploi. Slijedee osobine mogu biti promijenjene: VTARGET, AREF i frekvencija oscilatora. Interfejs je veoma prilagodljiv i mogue je postaviti uslove rada i iznad preporuenih specifikacija za dati ureaj. Ovo nije preporueno i moe otetiti odabrani ureaj. Preporueni uslovi rada za dati dio su dati u tehniim podacima ureaja.

Slika 3.6 Board

3.1.5.1 VTARGET VTARGET kontrolira radni napon odabrane ploe. Preko upotrebe text box-a, ovaj napon moe biti reguliran izmeu 0 i 6.0 V, sa inkrementom od 0.1 V. Pogledati u tehniku dokumentaciju ureaja da bi se pronaao odreeni opseg napona za odabrani ureaj. Oba napona se itaju pritiskom na dugme Read Voltages, i upisuje pritiskom na dugme Write Voltages. 3.1.5.2 AREF AREF kontrolira analogni referentni napon za ADC konvetor. Ovo podeavanje se samo odnosi na ureaje sa AD konvertorom. Nije mogue podesiti AREF na vei napon od VTARGET zbog toga to bi ovo trajno otetilo AVR.

33

3.1.5.3 Oscilator STK500 razvojna ploa koristi programabilni oscilatorski krug koji nudi irok opseg frekvencija za ciljani ureaj. Kako nije mogue generisati neogranien broj frekvencija, STK500 korisniki interfejs e izraunati najbliu vrijednost, vrijednosti koja je zapisana u text box oscilatora. Izraunata vrijednost je onda predstavljena u text box-u oscilatora, prepisujui na prethodno napisani broj. 3.1.6 Auto podeavanja Kada programiramo vie ureaja sa istim kodom, Auto tab nudi moan metod kojim se automatski ide kroz korisniki definisanu sekvencu komandi. Komande su izlistane u slijedu kako su izvrene (ako je tako odabrano). Da bi se ukljuila komanda, odreeni check box mora biti ukljuen. Npr. ako je samo ukljueno Program Flash, kada se pritisne Start dugme, Flash memorija e biti programirana sa heksadecimalnim fajlom odreenim u podeavanju Programa. Sve komande ovise i koriste podeavanja data u STK500 korisnikom interfejsu. Mogue je registrovati izvoenje komandi u tekstualnu datoteku biranjem Log to file check box-a.

Slika 3.7 Auto

34

3.1.6.1 Podeavanje sistema za auto programiranje Kliknite na check-box-ove za komande koje elite da se izvede STK500 korisniki interfejs. Kada su jednom konfigurisani, ista sekvenca programiranja je izvrena svaki put kada je pritisnuto Start dugme.Ovo smanjuje i rad a i mogunost greaka za vrijeme rada. 3.1.6.2 Uitavanje auto-programiranja u datoteku Klikom na Log to file check box, svi izlazi iz komandi su zapisani u tekstualnu datoteku. Odaberite ili kreirajte datoteku pritiskom na dugme Browse i pronaite lokaciju gdje bi datoteka trebala biti kreirana. Izlaz je usmjeren ka ovoj datoteci, i moe biti vien i editovan koritenjem tekst editora. 3.1.7 History prozor History prozor je smjeten na dnu STK500 pogleda. U ovom prozoru je prikazan dijalog izmeu AVR Studija i STK500. Za svaku novu komadu koja se izvede, stari dijalog je zamijenjen sa novim. 3.4 Komandna linija sofvera Verzija DOS komandne linije STK500 softvera je korisna za programiranje STK500 iz vanjskih editora, ili za upotrebu u proizvodnji. Jednostavna grupa datoteka moe biti napravljena za automatsko programiranje. Ukucajte STK500-? za pomo. Program vraa ERRORCODE 0 ako je operacija uspjena, i ERRORCODE 1 ako operacija nije uspjela. Naredbe komandne linije: [-d device name] [-m s|p] [-if infile] [-ie infile] [-of outfile] [-oe outfile] [-s] [-O] [-Sf addr] [-Seaddr] [-e] [-p f|e|b] [-r f|e|b] [-v f|e|b] [-l vrijednost] [-L vrijednost] [-y] [-f vrijednost] [-E vrijednost] [-F vrijednost] [-G vrijednost] [-q] [-x vrijednost] [-af start,stop] [-ae start,stop] [-c port] [-ut vrijednost] [-ua vrijednost] [-wt] [-wa] [-b h|s] [-! freq] [-t] [-g] [-z] [-h|?] d m if Ie of oe s O Sf Se Ime ureaja. Mora biti uneseno pri programirnju ureaja. Biranje moda za programiranje; serijski (s) ili paralelni/visoko-naponski (p). Serijski mod za programiranje je po default-u, i koristi iako ovaj parametar nije naveden Ime FLASH ulazne datoteke. Neophodno za programiranje ili verifikaciju FLASH memorije. Format datoteke je Intel Extended HEX. Ime EEPROM ulazne datoteke. Neophodno za progrmairanje ili verifikaciju EEPROM memorije. Format datoteke je Intel Extended HEX. Ime flash izlazne datoteke. Neophodmno za iitavanje FLASH memorije. Datoteka je formata Intel Extended HEX. Ime EEPROM izlazne datoteke. Neophodna je za itanje EEPROM memorije. Datoteka je formata Intel Extended HEX. ita bajt potpisa. ita bajta za podeavanje oscilatora. Pie bajt za podeavanje oscilatora u FLASH memoriju. addr je adresa bajta. Pie bajt za podeavanje oscilatora u EEPROM memoriju. addr je adresa bajta. 35

e p r v l L y f E F G q x af ae c ut ua wt wa b ! t g z h|?

Brie ureaj. Ako je primijenjeno sa drugim parametrima programiranja, ureaj e biti obrisan prije nego to bilo koji drugi program pone sa radom. Programski ureaj; FLASH (f), EEPROM (e) ili oba (b). Odgovarajue ulazne datoteke su neophodne. ita iz ureaja; FLASH (f), EEPROM (e) ili oba (b). Odgovarajue izlazne datoteke su neophodne. Verificira ureaj; FLASH (f), EEPROM (e) ili oba (b). Moe biti upotrijebljen sa -p ili da stoji sam. Odgovarajue ulazne datoteke su neophodne. Postavlja bit za zakljuavanje. vrijednost je osmobitna heksadecimalna vrijednost. Verificira bajt za zakljuavanje. vrijednost je osmobitna heksadecimalna vrijednost na osnovu koje vrimo verifikaciju. ita nazad bajt za zakljuavanje. Postavlja bajte osiguraa. vrijednost je 16-bitna heksadecimalna vrijednost. value koja opisuje podeavanja za gornji i donji osigura. Postavlja proireni bajt osiguraa. vrijednost je is an 8-bitna heksadecimalna. Vrijednost koja opisuje proirena podeavanja osiguraa. Verificira bajte osiguraa. vrijednost je 16-bitna heksadecimalna vrijednost na osnovu koje se vri verifikacija. Verificira proireni bajt osiguraa. vrijednost je 8-bitna heksadecimalna vrijednost koja opisuje proirena podeavanja osiguraa.. ita nazad bajte osiguraa. Popunjava neodreene lokacije sa vrijedenstima (0x00-0xff). Poetne postavke (defaultna) su takve da ne programira lokacije koje nisu specificirane u ulaznim datotekama. FLASH adresni opseg. Odreuje adresni opseg operacija. Po poetnim postavkama to su sve FLASH addrese. EEPROM adresni opseg. Odreuje adresni opseg operacija. Po poetnim postavkama to su sve EEPROM addrese. Bira komunikacijski port; com1 do com8. Ako je ovaj parametar isputen program e skenirate komunikacijske portove za STK500. Postavlja napon VTARGET u Voltima. vrijednost je realna vrijednost izmeu 0.0 i 6.0, koja opisuje novi napon. Postavlja podesivi napon AREF u Voltima. vrijednost je realna vrijednost izmeu 0.0 i 6.0, koja opisuje novi napon. Dobija trenutni napon datog ureaja VTARGET. Dobija trenutni podesivi napon AREF. Dobija pregled; hardverski pregled (h) I sofverski pregled (s). Podeava frekvenciju oscilatora; freq is the frequencija u Hz. Dobija frekvenciju oscilatora. Tihi rad. Pokazatelj nenapretka. Npr., ova opcija se koristi ako ne elimo da se u naoj datoteci za registrovcanje izbjegnu ne-ASCII kartakteri. Pomo (prolazi kroz sva ostala podeavanja)

36

Izbrii prije programiranja

Programiranje FLASH-a Ime heksadec. dat.

Biranje broja ureaja Serijski mod za programiranje Slika Primjer upotrebe Slika 3.8 Primjer upotrebe Verificiranje ureaja

37

Poglavlje 4
4.1 Unutar sistemsko programiranje izlaznog ciljanog sistema
STK500 moe biti koriten kao programer da programira AVR ureaje u drugim aplikacijama. Postoje dva razliita ISP konektora dostupna: verzija sa 6 i 10 noica. Obje su podrane od strane STK500.

Slika 4.1 ISP konektor sa 6 noica

Slika 4.2 ISP konektor sa 10 noica

Moemo izabrati da ureaj bude programiran na isti nain kao programiranjem na STK500. VCC ciljane aplikacije je detektovan od strane STK500 i signali su konvertovani u naponske nivoe pogodne za ciljani sistem. Napomena: Ako druga aplikacija ima svoju napojnu jedinicu prema VGT-u, premosnica na VTARGET mora biti uklonjena prije spajanja STK500 na drugu aplikaciju. STK500 moe biti oteen ukoliko se to ne uradi.

38

Poglavlje 5
5.1 Program i modeli adresiranja podataka (AVR STUDIO 4 Insrukcijiski set)
AVR poboljan RISC mikrokontroler podrava veoma mono i efikasno adresiranje programske memorije(Flash) i podatkovne memorije(SRAM, registara, I/O MEMORIJE, i proirene I/O memorije).Ovaj odjeeljak opisuje razliite modele adresiranja podrane od strane AVR arhitekture. U sledeim figurama OP znait e operacioni kod, dio instrukcijeske rijei. Da pojedenostavimo, nee sve figure prikazivati tacnu lokacju adresiranih bita. Generalno termini RAMEND i FLASHED su upoterebljeni da prikazu najvecu lokacju u podatkovnom i programskom mjestu, respektivno. Napomena: nisu svi naini adresiranja prikazani za ovaj ureaj.

5.1.1 Direktni registar, izdvojeni registar Rd


REGISTARSKA DATOTEKA

Slika. Direktno adresiranje jednostavnog registra

Operadnd je sardran u d registru d (Rd)


REGISTARSKA DATOTEKA

Slika . Direktno adresiranje dva registra

Operanti su sadrani u regisru r(Rr) i d(Rd). Rezultata je smjeten u registar d(Rd). 39

5.1.2 I/O Direktno adresiranje


I/O MEMORIJA

Slika . I/O direktno adresiranje

Adresa operanta se sastoji od 6 bita insrtrukcijske rijei. n je odredite ili izvorite adrese registra. Napomena: Neki kompleksni AVR mikrokontroleri imaju vie perifernih jedinica koja moe biti podrana sa 64 lokacije rezervisanih za I/O direktno adresiranje.

5.1.3 Direktno adresiranje podataka


PROSTOR ZA PODATKE

Slika . Direktno adresiranje podataka

16-bitno adresiranje podataka se sastoji od 16 LSBs od dvorijene insrukcije. Rd/RS govore o izvornim registrima. 40

5.1.4 Indirektno adresiranje podataka sa pomjerajem.


PROSTOR ZA PODATKE

Slika 5. Indirektno adresiranje podataka sa pomjerajem

Adresa operanta je rezultat sadraja Y- ili Z- registra dodanih adresi sadrane od 6 bita instrukcijeske rijei

5.1.5 Indirektno adresiranje podataka


PROSTOR ZA PODATKE

Slika 6. Indirektno adresiranje podataka

Adresa operanta je sadraja X-, Y- ili Z- registra. Kod Avr ureaja bez SRAMA-a, indirektno adresiranje podataka se zove registrarsko indirektno adresiranje. Registrarsko indirektno adresiranje je podskup indirektno adresiranje podataka sve dok podatak ualzi u prostor od 0 do 31 registarskog fajla.

41

5.1.6 Indirektno adresiranje podataka sa pre-dekrementom


PROSTOR ZA PODATKE

Slika 7. Indirektno adresiranje podataka a pre-dekrementom.

X- ,Y-, ili Z-registar je dekrementovan prije operacije. Adresa operanta je dekrementiran sadraj X- ,Y-, ili Z-registar.

5.1.7 Indirektno adresiranje podataka sa post-dekrementom


PROSTOR ZA PODATKE

Slika 8. Indirektno adresiranje podataka a post-dekrementom.

X- ,Y-, ili Z-registar je inkrementovan poslije operacije. Adresa operanta je sadraj X,Y-, ili Z-registra prije imkrementiranja.

42

5.1.8 Konstantno adresiranje programske memorije upotrebom LPM, ELPM, i SPM instrukcija.
PROSTOR ZA PODATKE

Slika 9. Konstantno adresiranje programske memorije

Adresa konstantnog bajta je odreena sadrajem Z-registra.15 MSBs oznaava adresu rijei. Za LPM, LSB oznapava nii bajt ako je resetovan (LSB=0) ili vii bajt ako je setovan (LSB=1). Za SPM, LSB bi trebao biti resetovan. Ako je upotrebljen ELPM, RAMPZ je upotrebljen da proiri Z-registar..

5.1.9 Programska memorija sa post-inkrementom upotrebom LPM Z+ i ELPM Z intrukcije


PROSTOR ZA PODATKE

Slika 10. Adresiranje programske memorije sa post-inkrementom

Adresa konstantnog bajta je odreena sadrajem Z-registra. 5 MSBs oznaava adresu rijei. LSB oznapava nii bajt ako je resetovan (LSB=0) ili vii bajt ako je setovan (LSB=1). Ako je upotrebljen ELPM Z , RAMPZ je upotrebljen da proiri Z-registar. 43

5.1.10 Direktno adresiranje programske memorije, JMP i CALL


PROSTOR ZA PODATKE

Slika 11. Direktno adresiranje programske memorije

Programsko izvravanje zapoinje neposredno u instrukcijskoj rijei.

5.1.11 Indirektno adresiranje programske memorije, IJMP i ICALL


PROSTOR ZA PODATKE

Slika 12. Indirektno adresiranje programske memorije

Programsko izvravanje zapoinje od adrese sadrane u Z- registru (i.e., PC je voen sadrajem Z-registra)

44

5.1.12 Relativno programsko adresiranje, RJMP i RCALL


PROSTOR ZA PODATKE

Slika 13.Relativno adresiranje programske memorije

Izvravanje programa zapoinje od adrese PC+k+1. Relativna adresa k je od -2048 do 2047.

45

Tabela 5.1 Pregled uslovnih grananja

Test Rd>Rr Rd Rr Rd=Rr Rd Rr Rd<Rr Rd>Rr Rd Rr Rd=Rr Rd Rr Rd<Rr prijenos Negativno Preliv nula

Formula Z (N V)=0 (N V)=0 Z=1 Z+(N V)=1 (N V)=1 C+Z=0 C=0 Z=1 C+Z=1 C=1 C=1 N=1 V=1 Z=1

Simbolika BRLT(1) BRGE BREQ BRGE(1) BRLT BRLO(1) BRSH/BRCC BREQ BRSH(1) BRLO/BRCS BRCS BRMI BRVS BREQ

Test Rd Rr Rd<Rr Rd Rr Rd>Rr Rd Rr Rd Rr Rd<Rr Rd Rr Rd>Rr Rd Rr Bezprenosa Pozitivno Bez preliva Nije nula

Formula Z+(N V)=1 (N V)=1 Z=0 Z (N V)=0 (N V)=0 C+Z=1 C=1 Z=0 C+Z=0 C=0 C=0 N=0 V=0 Z=0

Simbolika BRGE* BRLT BRNE BRLT* BRGE BRSH* BRLO/BRCS BRNE BRLO* BRSH/BRCC BRCC BRPL BRVC BRNE

Komentar oznaceno oznaceno oznaceno oznaceno oznaceno neoznaceno neoznaceno neoznaceno neoznaceno neoznaceno jednosatvno jednostavno jednostavno jednostavno

Napomena: Razmjena Rd i Rr u operaciji prije testa, i.e., Cp Rd, Rr->CP Rr,Rd

46

Tabela 5.2 Kompletan pregled instrukcijskog seta

Simbolika ADD ADC ADIW SUB RJMP IJMP EJMP JMP MOV MOVW LDI LDS LSL LSR ROL ROR

Operanti Rd,Rr Rd,Rr Rd,K Rd,Rr k

Opis Operacija Aritmetike i logike instrukcije Sabiranje bez prenosom Rd Rd+Rr Sabiranje sa prenosom Dodaj trenutno u rije Oduzimanje bez prenosa Rd Rd+Rr+C Rd+1:Rd Rd+1:Rd+K Rd Rd-Rr

Oznaka Z,C,N,V, S,H Z,C,N,V, S,H Z,C,N,V, S Z,C,N,V, S,H nijedna nijedna nijedna nijedna nijedna nijedna nijedna Nijedna Z,C,N,V, H Z,C,N,V Z,C,N,V, H Z,C,N,V

#clock 1 1 2(1) 1 2 2(1) 2(1) 3(1) 1 1(1) 1 2(1)(4) 1 1 1 1 1(1) 1 1 1

K Rd,Rr Rd,Rr Rd,Rr Rd,K Rd Rd Rd Rd

BREAK NOP SLEEP WDR

Instrukcije grananja Relativni skok PC PC+k+1 Indirektan skok ka (Z) PC(15:0) Z,PC(21:16 0 Proiren indir.skok ka (Z) PC k Skok PC k Instrukcije pomjeranja podataka Kopira sadraje regisrara Rd Rr Kopira registre kao par Rd+1:Rd Rd+1:Rd Trenutno punjenje Rd K Trenutno punjenje pr.pod. Rd (k) Bit i Bit-test instrukcije Logiki pomjeraj lijevo Rd(n),Rd(0) Rd(n+1) 0,C Rd(7) Logiki pomjeraj desno Rd(n+1),Rd(7) Rd(n) 0,C Rd(0) Rotiraj lijevo preko pren. Rd(0) C,Rd(n+1) Rd(n),C Rd(7) Rotiraj desno preko pren. Rd(7) C,Rd(n) Rd(n+1),C Rd(0) MCU kontrol instrukcije Prekid (Pogledati opis za BREAK) Bez operacjije Spavaj (Pogledati opis Za SLEEP) Reset (Pogledati opis za WDR)

nijedan nijedan nijedan nijedan

47

5.2 Primjer pojedinih insrukcija 5.2.1 Aritmetike i logike operacije ADC-Add with Carry(sabiranje sa prenosom) Opis:
Sabira sadraj dva registra i sadraja C, smjeta rezultat u odredite registra Rd. Operacija: (i) RdRd+Rr+C Sintaksa: (ii) 16-bit OP: Status registar(SREG) Bulova formula: ADC Rd,Rr Operandi: 0<=d<=31, 0<=r<=31 Programski broja: PCPC+1

H:

Rd 3 Rr 3 + Rr 3 R3 + R3 Rd3 Setuj ako je bio prenos od 3 bita, inae resetuj

S: V:
N:

N V, za oznaene testove
Rd 7 Rr 7 R7 + Rr 7 R7 Setuj ako su dva komplementa prepuna rezultatom iz operacije, inae resetuj. R7 Setuj ako je MSB setovan, ianae resetuj.
R 7 R 6 R5 R 4 R3 R 2 R1 R0 Setuj ako je rezultat $00, inae resetuj.

Z:

Rd 7 Rr 7 + Rr 7 R 7 + R 7 Rd 7 Setuj ako je bio carry od MSB, inae resetuj. R(Rezultat) izjednaava se sa Rd nakon operacije. Primjer: ; saberi R1:R0 do r3:R2 add r2, r0 ; dodaj nii bajt adc r3, r1 ; dodaj prenos veem bajtu C: Rijei: 1(2 bajta) Ciklusi: 1

48

5.2.2 ADD-Add without Carry(sabiranje bez penosa) Opis:


Sabira sadraj dva registra bez C sadraja i smjeta rezultat u odredite registra Rd Operacija: (ii) RdRd+Rr Sintaksa: (ii) 16-bit OP: Status registar(SREG) Bulova formula: ADD Rd,Rr Operandi: 0<=d<=31, 0<=r<=31 Programski broja: PCPC+1

H: S: V: N:

Rd 3 Rr 3 + Rr 3 R3 + R3 Rd3 Setuj ako je bio prenos od 3 bita, inae resetuj N V, za oznaene testove Rd 7 Rr 7 R7 + Rr 7 R7 Setuj ako su dva komplementa prepuna rezultatom iz operacije, inae resetuj. R7 Setuj ako je MSB setovan, ianae resetuj.

R 7 R 6 R5 R 4 R3 R 2 R1 R0 Setuj ako je rezultat $00, inae resetuj. C: Rd 7 Rr 7 + Rr 7 R 7 + R 7 Rd 7 Setuj ako je bio prijenos od MSB, inae resetuj. R(Rezultat) izjednaava se sa Rd nakon operacije. Primjer: Add r1, r2 ; saberi r2 sa r1 (r1=r1+r2) add r28, r28 ; saberi r28 samim sobom (r28=r28+r28) Z: Rijei: 1(2 bajta) Ciklusi: 1

49

5.2.3 ADIW-Add Immediate to Word(dodaj trenutno u rije) Opis:


Dodaj neposredno vrijednost (0-63) u registarski par i smjesti rezultaat u registarski par. Operacija: (iii) Rd+1:RdRd+1:Rd+K Sintaksa: (ii) 16-bit OP: Status registar(SREG) Bulova formula: ADIW Rd+1:Rd,K Operandi: Programski broja: d{24,26,28,30}, 0<=K<=63 PCPC+1

S: V: N:

N V, za oznaene testove Rdh7 R15 Setuj ako su dva komplementa prepuna rezultatom iz operacije, inae resetuj. R15 Setuj ako je MSB setovan, ianae resetuj. R15 R14 R13 R12 R11 R10 R9 R8 R 7 R 6 R5 R 4 R3 R 2 R1 R0 Setuj ako je rezultat $0000, inae resetuj.

Z:

R15 Rdh7 Setuj ako je bio carry od MSB, inae resetuj. R(Rezultat) izjednaava se sa Rdh:Rdl nakon operacije(Rdh7-Rdg0=R15-R8, Rdl7Rdl0=R7-R0) C: Primjer: adiw r25:24,1 adiw ZH:ZL,63 Rijei: 1(2 bajta) Ciklusi: 2 ; saberi1 sa r25:r24 ; saberi 63 sa Z-pokazivaem r(31:30)

50

5.2.4 AND-logiko I Opis: Izvrava logikoI izmeu sadraja registra Rd i registra Rr, i smjeta rezultata u sadraj registra Rd Sintaksa: Operandi: Programski broja: (ii) AND Rd,Rr 0<=d<=31, 0<=r<=31 PCPC+1
16-bit OP:

Status registar(SREG) Bulova formula:

S: V: N:

N V, za oznaene testove 0 ist. R7 Setuj ako je MSB setovan, ianae resetuj.

R 7 R 6 R5 R 4 R3 R 2 R1 R0 Setuj ako je rezultat $00, inae resetuj. R(Rezultat) izjednaava se sa Rd nakon operacije. Primjer: and r2,r3 ; Mnoi r2 sa r3, rezultat smjeta u r2 ldi r16,1 ; Postavi bit maske 0000 0001 u r16 and r2,r16 ; Izostavi bit 0 u r2 Rijei: 1(2 bajta) Ciklusa:1 Z:

51

5.3 Instrukcije grananja 5.3.1 JMP-Skok Opis:


Skok na adresu koja ne sdri 4M(rijei) programske memorije. Kao i kod RJMP. Ova instrukcija nije zastupljena u svim ureajima. Operacija: (iv) PCk Sintaksa: (ii) 32-bit OP: JMP k Operandi: 0<=k<=4M Programski broja: PC k Stek nepromjenjen

Status registar(SREG) Bulova formula:

Primjer: mov jmp .. farplc: nop Rijei: 2(4 bajta) Ciklusa:3 r1,r0 farplc ; Kopira r0 sa r1 ; Bezuslovno skok ; Odredite skoka(ne radi nita)

52

5.3.2 RJMP-Relativ jump(relativni skok) Opis:


Relativni skok sa adrese PC-2K+1 na adresu PC+2K(rijei). Za AVR mikrokontroler sa programskom memorijom ne prelazi 4K rijei(8K bajta) ova instrukcija moe adresirati cijelu memoriju sa svake memorijske lokacije. Operacija: (v) PCPC+k+1 Sintaksa: (ii) RJMP k Operandi: 2K<=k<=2K Programski broja: PCPC+k+1 Stek nepromjenjen

16-bit Opkod:

Status registar(SREG) Bulova formula:

Primjer: cpi brne tjmp error: add inc ok nop Rijei: 1(2 bajta) Ciklusa: 2 r16,$42 error ok r16,r17 r16 ; uporedi r16 sa $42 ; granaj ako je r16<> $42 ; bezuslovni skok ; saberi r17 sa r16 ; inkrementiraj r16 ; odredite za skok (ne radi nita)

53

5.3.3 BREQ- Skoi ako su isti Opis:


Uslovni relativni skok. Testira da li je zastavica Z=0 i relativno grana ako je Z setovan.Ako je instrukcija izvrena u meuvemenu poslije bilko koje instrukcije CP,CPI,SUB ili SUBI, skok e se pojaviti ako i samo ako je oznaene ili neoznaen broj prikazan u Rd bio jednak oznaenom ili neoznaenom broju u Rr.Ova instrukcija relativno grana sa PC u drugom smijeru(PC-63<=odredite<=PC+64). Parametar k se grana sa PS i prikazan u dvojnom komplementu.(Ekvivalentno sa instrukcijom BRBS 1,k). Operaciaj: (i) If Rd=Rr (Z=1) onda PC PC+1 Sintaksa: Operandi: Programski broja: (ii) BREQ k -64<=k<=+63 PCPC+k+1 PCPC +1,,ako nije taan uslov 16-bit OP:

Status registar(SREG) Bulova formula:

Primjer: cpi brnq ... equal: nop Rijei: 1(2 bajta) Ciklusa: 2 r1,r0 equal ; uporedi r1 sa r0 ; skoi ako su jednaki registri ; odredite za skok (ne radi nita)

5.3.4 BRCS-Granaj ako je prijenos setovan Opis:


Uslovni relativni skok. Testira zastavicu za prijenos (C) i relativno grana ka PC ako je C=1. Ova instrukcija relativno grana ka PC u drugom smijeru(PC 63<=odreditey<=PC+64).Parametar k je premaen ka PC i prikazan u dvojnom komplementu.(Ekvivalentno sa instrukcijom BRBS 0,k). Operaciaj: (i) If C=1 onda PC PC+k+1, jo PC PC+1 Sintaksa: Operandi: Programski broja: (ii) BRCS k -64<=k<=+63 PCPC+k+1 54

PCPC +1,,ako nije taan uslov 16-bit OP:

Status registar(SREG) Bulova formula:

Primjer: cpi brcs ... prijenos: Rijei: 1(2 bajta) Ciklusa: 2 r26,$56 carry nop ; uporedi r26 sa $56 ; Skoi ako su jednaki registri ; Odredite za skok (ne radi nita)

55

5.4 Instrukcije pomjeranja 5.4.1 MOVE-Copy Register( Registar za kopiranje) Opis:


Ova instrukcija vri kopiranje sadraja jednog registra u drugi.Izvorni registra Rr je nepromjenjen, dok je odredini registar Rd optereen kopiranjem sa Rr. Operacija: (i) Sintaksa: (ii) 16-bit OP: Status registar(SREG) Bulova formula: RdRr MOV Rd, Rr Operandi: 0<=d<=31, 0<=r<=31 Programski broja PCPC+1

Primjer: mov call ... Check: cpi ... ret Rijei: 1(2 bajta) Ciklusa: 2 r16,r0 check r16,$11 ; kopira r0 sa r16 ; pozovi podrutinu ; uporedi r16 sa $11 ; vrati se rutini

5.4.2 LDI-smjesti neposredno Opis:


Smjeta konstantno osmi bit direktno od registra 16 do 31. Operacija: (i) RdK Sintaksa: broja (ii) 16-bit OP: 56 Operandi: LDI Rd, K 16<=d<=31, 0<=K<=255 Programski PCPC+1

Status registar(SREG) Bulova formula:

Primjer: clr r31 ldi r30,$FO lpm Rijei: 1(2 bajta) Ciklusa: 1

; Postavi najvei bajt Z-ta na 0 ; Postavi najnii bajt Z-ta na $FO ; Smjetaj konstantno iz programa

5.4.3 POP-Pokupi registar sa steka Opis:


Ova instrukcija kuppi bajt registra Rd sa steka.Stek pokaziva se prvo inkrementira za 1 bajt prij eopreacije POP. Ova instrukcija nije dostupna u drugim ureajima. Operacija: (i) RdSTACK Sintaksa: (ii) 16-bit OP: Status registar(SREG) Bulova formula: POP Rd Operandi: 0<=d<=31 Programski broja PCPC+1 Stek: SPSP+1

Primjer: call ... routine:push push ... pop pop routine r14 r13 r13 r14 ; Poziv podrutini ; Sauvaj r14 na stek. ; Sauvaj r13 na stek ; Uniti r13 ; Uniti r14 57

ret Rijei: 1(2 bajta) Ciklusi:2

; Vrati se subrutini

5.4.4 PUSH-Stavi registar na stek Opis:


Ova instrukcija smjeta sadraj registra Rr na stek.Stek pokaziva se dekrementira poslije operacije PUSH. Operacija: (i) STACKRr Sintaksa: (ii) 16-bit OP: Status registar(SREG) Bulova formula: PUSH Rr Operandi: 0<=r<=31 Programski broja PCPC+1 Stek: SPSP-1

Primjer: routine ... routine:push r14 push r13 ... pop r13 pop r14 ret Rijei: 1(2 bajta) Ciklusi:2 call ; Poziv podrutini ; Sauvaj r14 na stek. ; Sauvaj r13 na stek ; Uniti r13 ; Uniti r14 ; Vrati se subrutini

58

5.5 Bit i bit-test instrukcije 5.5.1 LSL-Logiki pomjearaj lijevo Opis:


Pomjera sve bite regitra Rd jedno mjesto u lijevo. Bit 0 je ist. Bit 7 je dodan u zastavicu C status registra SREG. Ova operacija efektivno mnoi oznaene i neoznaene vrijedenosti sa 2. Operacija:

Sintaksa: (ii)

ROL Rd

Operandi: 0<=d<=31

Programski broja: PCPC+1

16-bitni OP(Kao i kod ADC Rd,Rr) Status registar(SREG) Bulova formula:

H: S: V: N:

Rd3 N V, za oznaene testove N C (Za N i C poslije pomjeraja) R7 Setuj ako je MSB setovan, ianae resetuj.

Z:

R 7 R 6 R5 R 4 R3 R 2 R1 R0 Setuj ako je rezultat $00, inae resetuj. C: Rd7 Setuj ako, prije pomjearaja, MSB ili Rd su bili setovani; resetuj u drugom sluaju R(Rezultat) izjednaava se sa Rd nakon operacije. Primjer: add r0,r4 ; Saberi r4 i r0 lsl r0 ; Pomnoi t0 sa 2 Rijei: 1(2 bajta) Ciklusi:1

59

5.5.2 SEC-Postavi zastavicu prijenosa Opis:


Postavlja zastavicu prijenosa (C) na 1 u SREG( status registar) Operacija: (ii) C1 Sintaksa: (ii) 16-bit OP: SEC Operandi: nijedna Programski broja PCPC+1

Status registar(SREG) Bulova formula:

C:

1 Zastavica prijenosa setovana Primjer: sec ; Setuj zastavicu prijenosa adc r0,r1 ; r0=r0+r1+1 Rijei: 1(2 bajta) Ciklusa: 1

5.5.3 ROL-rotiraj lijevo preko prijenosa Opis:


Pomjera sve bite registra Rd za jedno mjesto u lijevo.Zastavica C je pomjerena u bit 0 registra Rd. Bit 7 je pomjeren u c zastavicu. Ova operacija se kombinuje sa LSL, efektivno mnoei viestruke oznaene i neoznaene bajte sa 2. Operacija:

Sintaksa: (ii)

ROL Rd

Operandi: 0<=d<=31

Programski broja: PCPC+1 60

16-bitni OP(Kao i kod ADC Rd,Rr) Status registar(SREG) Bulova formula:

H: S: V: N:

Rd3 N V, za oznaene testove N C (Za N i C poslije pomjeraja) R7 Setuj ako je MSB setovan, ianae resetuj.

Z:

R 7 R 6 R5 R 4 R3 R 2 R1 R0 Setuj ako je rezultat $00, inae resetuj. C: Rd7 Setuj ako, prije pomjearaja, MSB ili Rd su bili setovani; resetuj u drugom sluaju R(Rezultat) izjednaava se sa Rd nakon operacije. Primjer: lsl r18 ; Pomnoi r19:r18 sa dva rol r19 ; r19:r18 je oznaen ili neoznaen dvo-bajtni cijeli br. brcs oneenc ; skoi ako je postavljen prijenos ... oneenc:nop ; Odredite skoka(nita ne radi)

Rijei: 1(2 bajta) Ciklusa: 2

5.5.4 ROR-rotiraj desno preko prijenosa Opis:


Pomjera sve bite registra Rd za jedno mjesto u desno.Zastavica C je pomjerena u bit 7 registra Rd. Bit 0 je pomjeren u c zastavicu. Ova operacija se kombinuje sa ASR, efektivno mnoei viestruke oznaene bajte sa 2. Konbinujui sa LSR efektivno dijeli 61

viesrtuke neoznaene bajte sa 2. Zastavica priejnosa moe biti upotrebljena d zaokrui rezultat. Operacija:

Sintaksa: (ii)

ROR Rd

Operandi: 0<=d<=31

Programski broja: PCPC+1

16-bitni OP(Kao i kod ADC Rd,Rr)

Status registar(SREG) Bulova formula:

S: V: N:

N V, za oznaene testove N C (Za N i C poslije pomjeraja) R7 Setuj ako je MSB setovan, ianae resetuj.

Z:

R 7 R 6 R5 R 4 R3 R 2 R1 R0 Setuj ako je rezultat $00, inae resetuj. C: Rd0 Setuj ako, prije pomjearaja, LSB ili Rd su bili setovani; resetuj u drugom sluaju R(Rezultat) izjednaava se sa Rd nakon operacije. Primjer: lsr r19 ; Podijeli r19:r18 sa dva ror r18 ; r19:r18 je neoznaen dvo-bajtni cijeli br. brcc zeroenc ; skoi ako je prijenos resetovan asr r17 ; Podijeli r17:r16 sa 2 ror r16 ; r17:r16 je oznaen dvo-bajtni cijeli broj brcc zeroenc2 ; Sloi ako je prijenos resetovan . .. Zeroenc1: nop ; Odredite skoka( nita ne radi)

Rijei: 1(2 bajta) Ciklusa:1

62

5.6 MCU kontrolne instrukcije 5.6.1 BREAK-Prekid Opis:


Oparacija BREAK je upotrebljena da oznai kraj debagiranja sistema,i naravno nije upotrebljena u softverskim amplikacijama. Kada je izvrena operacija BREAK, AVR CPU je postavljena u stopirani mod. Ovo daje mogunost debageru za pristup unutranjim resursima. Ako je bilo koji zakljuani bit setovan, ili bilo koji JTAGER ili OCDEN osigura neisproframian, CPU e tretirati BREAK instrukciju kao NOP i nee aktivirati stopirani mod. Ova instrukcija nije dostupna drugim urajima. Operacija (i) Sintaksa: (ii) 16-bitni OP Status registar(SREG) Bulova formula: On-chip debag sistem prekinut Operandi: BREAK nijedan

Programski broja: PCPC+1

Primjer: clr ser out nop out

r16 r17 $18,r16 $18,r17

; Resetuj r16 ; Setuj r17 ; Upii 0 u pot B ; eka(nita ne radi) ; Upii 1 u por B

Rijei: 1(2 bajta) Ciklusi:1

5.6.2 NOP-Nema opracije Opis:


Ova instrukcija jednostavno znai nema operacije Operacija 63

(i) Sintaksa: (ii) 16-bitni OP

nijedna BREAK Operandi: nijedan Programski broja: PCPC+1

Status registar(SREG) Bulova formula:

Rijei: 1(2 bajta) Ciklusi:1

5.6.3 SLEEP Opis:


Ova instrukcija postavlja strujno kolo u sleep mod definiran MCU kontrolnim registrom. Operacija (i) Prikazane u dokumentaciji specificiranih ureaja Sintaksa: Operandi: Programski broja: (ii) SLEEP nijedan PCPC+1 16-bitni OP Status registar(SREG) Bulova formula:

Primjer: mov r0,r11 ; Kopira r11 u r0 ldi r16, (1<<SE) ; Omogui sleep mod out MCUCR, r16 sleep ; Postavi MCU u sleep mod Rijei: 1(2 bajta) Ciklusi:1 64

5.6.4 WDR-Watschdog reset Opis:


Ova instrukcija reseteuje watschdog tajmer.Ona mora biti izvrena bez limitnog vremena datog sa WD predjelitelja. Operacija (i) Restartovan WD tajmer Sintaksa: Operandi: Programski broja: (ii) WDR nijedan PCPC+1 16-bitni OP

Status registar(SREG) Bulova formula:

Primjer: wdr Rijei: 1(2 bajta) Ciklusi:1 ; Resetuj watchdog tajmer

65

5.7 Realizacija jednog primjere upotrebe


;***** STK500 demontracija rada LED dioda i prekidaa .include "8515def.inc" .def Temp =r16 ; Privremeni registar .def Delay =r17 ; Varijabla kanjenja 1 .def Delay2 =r18 ; Varijabla kanjenja 2 ;***** Inicijalizacija RESET: ser Temp out DDRB,Temp ; Postavlja PORTB na izlaz ;**** Test input/output LOOP: out PORTB,temp ; Update LED dioda sbis PIND,0x00 ; If (Port D, pin0 == 0) inc Temp ; onda broji LED diode po jednu na dole sbis PIND,0x01 ; If (Port D, pin1 == 0) dec Temp ; onda broji LED diode za jednu na gore sbis PIND,0x02 ; If (Port D, pin2 == 0) ror Temp ; Rotira LED diode za jednu na desno sbis PIND,0x03 ; If (Port D, pin3 == 0) rol Temp ; Rotira LED diodu za jednu na lijevo sbis PIND,0x04 ; If (Port D, pin4 == 0) com Temp ; Invertuje sve LED diode sbis PIND,0x05 ; If (Port D, pin5 == 0) neg Temp ; Invertuje sve LED diode i dodaje 1 sbis PIND,0x06 ; If (Port D, pin6 == 0) swap Temp ; ;**** Sada malo priekati u sluaju spojenog hardvera da bi primijetili promjene na diodama DLY: dec Delay brne DLY dec Delay2 brne DLY rjmp LOOP ; Beskonana petlja

66

Zakljuak
Za izradu jedne Real Time aplikacije sa AVR ATMEL opremom, potrebno je prvenstveno konfigurisati datu opremu u skladu sa eljenim performansama, podesiti premosnice na ploi tako da nam daju optimalan rad ureaja, izvriti spajanja kablova sa odgovarajuim zaglavljima te izabrati nain na koji e ureaj biti programiran, da li da se radi o ISP programiranju, ili pak visoko-naponskom programiranju. Nakon tih operacija, pri prikljuenju opreme na PC, sam sofver, odnosno AVR Studio, e detektovati na koji je port prikljuen, a u sluaju da nije, od korisnika e traiti da sam odabere s kojim ureajem radi. U naem sluaju nismo imali pristup opremi te smo s toga izvili simuliranje rada, preko opcija koje su dostupne u sofveru. Mikrokontroler koji je koriten u ovom paketu (AT90S8515-8PC) se programira iz AVR Studija. Programiranje je mogue izvriti u mnemonikom kodu. Takoer, podrava i programiranje u C/C++ programskom jeziku. AVR Studio sadri irok spektar instrukcija, ime je omoeno pojednostavljeno programiranje eljenih aplikacija.

67

Literatura
1. AVR STK500 User guide; Atmel; 2006 2. AVR Studio; A Brief tutorial; University of Massachusetts; Jeremy Gummeson, Brendan Kemp, October 12, 2006 3. www.atmel.com

68

You might also like