Professional Documents
Culture Documents
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
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:
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
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)
LED diode
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.
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.
Konvertor napona
Slika 2.7 ema UART noica za spajanje
Konvertor napona
10
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
1 3 3
2 1 1
SPROG2 SPROG1. Spaja RST na PORTE prema PB5 na PORTB. Socket nije u upotrebi u ovoj verziji STK500
12
ATmega103 ATmega128
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
13
Neka od podeavanja premosnica na STK500 moraju biti promijenjena kada se koristi visoko-naponsko programiranje. Slika 2.14 objanjava ova podeavanja premosnica (jumper-a).
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.
15
16
Slika 2.16 Poetno podeavanje premosnica (default) Tabela 2.4 Opis premosnica
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
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
18
Premosnica spojena
19
Premosnica spojena
RESET KRUG
20
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
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
22
23
Zaglavlje za proirenje 0
Noica 1
Prog Ctrl
Zaglavlje za proirenje 1
Noica 1
Prog Data
24
25
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
Programsko dugme
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.
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.
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).
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.
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
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.
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.
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
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.
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.
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.
16-bitno adresiranje podataka se sastoji od 16 LSBs od dvorijene insrukcije. Rd/RS govore o izvornim registrima. 40
Adresa operanta je rezultat sadraja Y- ili Z- registra dodanih adresi sadrane od 6 bita instrukcijeske rijei
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
X- ,Y-, ili Z-registar je dekrementovan prije operacije. Adresa operanta je dekrementiran sadraj X- ,Y-, ili Z-registar.
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
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..
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
Programsko izvravanje zapoinje od adrese sadrane u Z- registru (i.e., PC je voen sadrajem Z-registra)
44
45
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
46
Simbolika ADD ADC ADIW SUB RJMP IJMP EJMP JMP MOV MOVW LDI LDS LSL LSR ROL ROR
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
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)
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:
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
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
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:
S: V: N:
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
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
16-bit Opkod:
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
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)
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
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
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
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
; Vrati se subrutini
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
Sintaksa: (ii)
ROL Rd
Operandi: 0<=d<=31
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
C:
1 Zastavica prijenosa setovana Primjer: sec ; Setuj zastavicu prijenosa adc r0,r1 ; r0=r0+r1+1 Rijei: 1(2 bajta) Ciklusa: 1
Sintaksa: (ii)
ROL Rd
Operandi: 0<=d<=31
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)
viesrtuke neoznaene bajte sa 2. Zastavica priejnosa moe biti upotrebljena d zaokrui rezultat. Operacija:
Sintaksa: (ii)
ROR Rd
Operandi: 0<=d<=31
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)
62
; Resetuj r16 ; Setuj r17 ; Upii 0 u pot B ; eka(nita ne radi) ; Upii 1 u por B
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
65
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