127
UNIVERZITET U NIŠU ELEKTRONSKI FAKULTET Katedra za elektroniku PREDMET: Mikroprocesorski Sistemi Avgust 2008 Arhutektura MSP430 familije uređaja Mentor: Student: prof. dr Mile K. Stojčev Gligorijević Jelena 11418

Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

UNIVERZITET U NIŠU ELEKTRONSKI FAKULTET Katedra za elektroniku

PREDMET: Mikroprocesorski Sistemi Avgust 2008

Arhutektura MSP430 familije uređaja

Mentor: Student:

prof. dr Mile K. Stojčev Gligorijević Jelena 11418

Page 2: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

2

Sadržaj Rečnik koriš ćenih skraćenica...............................................................................................5

1. Uvod.....................................................................................................................................6 1.1 Procesori kod embedded sistema .......................................................................6 1.1.1 Mikrokontroleri...............................................................................................6 1.1.2 RISC procesori................................................................................................6 1.1.3 Digitalni Signal Procesori (DSP)..................................................................7 1.1.4 Multimedija procesori.....................................................................................7 1.1.5 Aplikaciono Specifični Procesori (ASIP)....................................................8 1.1.6 Druge klase procesora.....................................................................................9

1.2 Mikrokontroleri vs mikroprocesori ...................................................................9 1.3 Mikrokontroleri: tipovi arhitektura i blok šema ...........................................11

2 MSP430 Familija........................................................................................................14 2.1Karakteristike i mogućnosti.................................................................................14 2.2 Ključne karakteristike sistema...........................................................................14 2.3 MSP430 Familija uređaja....................................................................................15

3 Opšti osvrt na arhitekturu familije MSP430................................................16 3.1 CPU...........................................................................................................................16

3.1.1 PC (Program Counter)...................................................................................17 3.1.2 SP (Stack Pointer).........................................................................................17 3.1.3 Status Register (SR).......................................................................................18

3.1.4 Generator Konstanti CG1 i CG2 Registri...................................................20 3.2 Adresni režimi rada...............................................................................................21 3.2.1 Registarski režim rada ..................................................................................21 3.2.2 Indeksni režim rada........................................................................................22 3.2.3 Simbolički režim rada....................................................................................23 3.2.4 Apsolutni režim rada......................................................................................24 3.2.5 Indirektni režim rada......................................................................................25 3.2.6 Indirektni režim rada sa autoinkrementiranjem.........................................26 3.2.7 Neposredni režim rada...................................................................................27 3.2.8 Taktni ciklusi, obim instrukcije...................................................................28 3.3 Pregled skupa instrukcija....................................................................................29 3.3.1 Instrukcije sa dva operanda..........................................................................29 3.3.2 Jednooperandske instrukcije........................................................................30 3.3.3 Instrukcije uslovnog grananja.....................................................................30 3.3.4 Kratka forma pseudo instrukcija.................................................................31 3.3.5 Ostale instrukcije...........................................................................................33 4 Organizacija memorije............................................................................................33 4.1 Podaci u memoriji.................................................................................................35 4.2 Organizacija ROM memorije............................................................................35 4.2.1 Obrada ROM tabela......................................................................................36 4.2.2 Obrada grana i poziva...................................................................................36 4.3 Organizacija RAM-a i periferija.......................................................................36 4.3.1 RAM................................................................................................................37

Page 3: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

3

4.3.2 Periferni moduli – Dodela adresa...................................................................39 4.3.3 Periferni moduli – Registri specijalne namene (SFR).................................41 5 Upravljanje operacijama............................................................................................42 5.1 Sistemski reset i inicijalizacija..............................................................................42 5.2 Opšta struktura prekida.........................................................................................43 5.3 Upravljanje prekidima ............................................................................................44 5.3.1 Bitovi koji upravljaju prekidom i registri specijalne namene SFR ...........46 5.3.2 Spoljašnji prekidi .............................................................................................49 5.4 Načini rada ..................................................................................................................51 5.5 Načini Rada Male_Potrošnje..................................................................................52 5.5.1 Načini rada male_potrošnje_0 i 1, LPM0 i LPM1........................................53 5.5.2 Načini rada male_potrošnje_2 i 3, LPM2 i LPM3........................................54 5.5.3 Način rada male_potrošnje_4, LPM4.............................................................54 5.6 Osnovna podešavanja za aplikacije male potrošnje..........................................54

6 Periferije...............................................................................................................................55 6.1 Konfiguracija digitalnih Ulaza-Izlaza ..................................................................55 6.1.1 Osnovni port P0..................................................................................................55 6.1.1.1 Upravljački registri porta P0...............................................................56 6.1.1.2 Struktura porta P0.................................................................................58 6.1.1.3 Prekidne upravljačke funkcije porta P0.............................................60 6.1.2 Portovi opšte namene P1, P2 ...........................................................................61 6.1.2.1 Upravljački registri portova P1 i P2 ...................................................61 6.1.2.2 Struktura portova P1 i P2......................................................................63 6.1.2.3 Prekidne upravljačke funkcije portova P1 i P2..................................64 6.1.3 Portovi opšte namene P3 i P4............................................................................64 6.1.3.1 Upravljački registri portova P3 i P4 ...................................................65 6.1.3.2 Struktura portova P3 i P4......................................................................66 6.2 Univerzalni Tajmer/Port modul.............................................................................67 6.2.1 Operacije Tajmer/Port modula.........................................................................68 6.2.1.1 8-mo bitni brojač TPCNT1 Tajmer/Port-a........................................69 6.2.1.2 8-mo bitni brojač TPCNT2 Tajmer/Port-a........................................69 6.2.1.3 16-to bitni brojač Tajmer/Port-a..........................................................69 6.2.2 Registri Tajmer/Port-a........................................................................................71 6.3. Tajmer_A...................................................................................................................73 6.3.1 Rad Tajmera_A..................................................................................................73 6.3.1.1 Rad Tajmera...........................................................................................75 6.3.2 Registri Tajmera_A............................................................................................81 6.3.2.1 Upravljački registar TACTL Tajmera_A...........................................81 6.3.2.2 Upravljački Registar CCTL za zahvatanje/kompariranje................83 6.3.2.3 Registri vektora prekida Tajmera_A..................................................85 6.4 LCD (Liquid Crystal Display).................................................................................87 6.4.1 Osnove LCD-a..................................................................................................87 6.4.2 LCD Kontroler/Drajver....................................................................................92 6.4.2.1 Funkcije LCD Kontroler/Drajver-a....................................................94 6.4.2.2 LCD registar za upravljanje i izbor režima rada..............................96 6.4.2.3 LCD displej memorija..........................................................................98 6.4.2 Primer korišćenja kombinovanog režima rada, LCD i Port režima.........104

Page 4: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

4

6.5 A/D konvertor..........................................................................................................105 6.5.1 Opšti pregled....................................................................................................105 6.5.2 Analogno-Digitalne operacije........................................................................107 6.5.2.1 A/D Konverzija ...................................................................................107 6.5.2.2 A/D prekidi...........................................................................................109 6.5.2.3 A/D opsezi ...........................................................................................109 6.5.2.4 A/D strujni izvor..................................................................................110 6.5.2.5 Analogni Ulazi I Multiplekser...........................................................111 6.5.2.6 A/D Umasivanje i Značaj šuma........................................................112 6.5.2.7 Ulazni I Izlazni Pinovi A/D Konvertor ..........................................113 6.5.3 Upravljački registri ADC-a............................................................................114

6.6 Univerzalni sinhroni-asinhroni prijemnik/predajnik USART (Universal Synchronous Asynchronous Receive/Transmit)............................120 6.6.1 USART periferni interfejs, UART režim rada...............................................120

6.6.1.1 Format asinhrone komunikacije..........................................................121

6.6.1.2 Dozvola prijema podataka preko USART modula..........................121

6.6.1.3 Dozvola prenosa podataka preko USART modula...........................122

6.6.2 Periferni interfejs USART, SPI režim rada....................................................122 6.6.2.1 Izvođenje sinhrone komunikacije........................................................123

Literatura ....................................................................................................................................126

Biografija .....................................................................................................................................127

Page 5: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

5

Rečnik koriš ćenih skraćenica

ASIP Application specific instruction set processors-Aplikaciono specifični procesori

DSP Digital signal processing-Digitalni signal procesori CISC Complex instruction set computer RISC Reduced instruction set computing CPU Central Processing Unit-Centralna Procesorska Jedinica VLIW Very Long Instruction Word FFT Fast Fourier transform SIMD Single Instruction, Multiple Data ILP Instruction-level parallelism ASIC Application-specific integrated circuit UART Universal asynchronous receiver/transmitter VLSI Very-large-scale integration DMA Direct memory access LCD Liquid-crystal display ROM Read-only memory RAM Random access memory PWM Pulse Width Modulation ALU Arithmetic logic unit PC Program Counter- Programski Brojač SP Stack Pointer- Pokazivač magacina SR Status Register- Statusni Registar CG Constant Generator- Generator Konstanti MAB Memory Address Bus MDB Memory Data Bus LSB Least Significant Byte-Bajt najmanje težine MSB Most Significant Byte-Bajt najveće težine SAR Successive approximation register SOC Start-of-Conversion PCB Printed circuit board

Page 6: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

6

1 Uvod

1.1 Procesori kod embedded sistema

Procesore koji se koriste kod embedded sistema često nazivamo embedded procesori. Izbor pogodnog procesora koji se integriše u embedded sistem uglavnom zavisi od domena aplikacije tog sistema. Neke od aplikacija su artmetičko-intenzivne, druge su upravljačko-intenzivne, treće su kritične za masovnu primenu sa tačke gledišta cene ili potrošnje energije, i td. Imajući ovo u vidu, da bi se ostvario efikasan proizvod (dizajn), u zavisnosti od tipa aplikacije, neophodno je koristiti različite klase embedded procesora, čije se arhitekture medjusobno razlikuju. Klase procesora koji se koriste kod embedded sistema su: 1. Mikrokontroleri 2. RISC procesori 3. Digitalni Signal Procesori (DSP) 4. Multimedija procesori 5. Aplikaciono Specifični Procesori (ASIP) 6. Kombinovani tipovi 1.1.1 Mikrokontroleri

Mikrokontroleri su relativno spori ali sa aspekta iskorišćenja silicijuma po površini-veoma-efikasni procesori, uglavnom namenjeni za upravljačko-intenzivne aplikacije. Karakteriše ih mikroprogramska CISC bazirana arhitektura, što znači da je broj taktnih intervala za izvršenje različitih tipova instrukcija u velikoj meri promenljiv. Moć izračunavanja kao i broj memorijskih resursa je veoma ograničen, a obim reči staze-podataka relativno mali (obično 8 ili 16 bitova). Sa druge strane, kompleksnost skupa instrukcija pruža odgovarajući programski interfejs, uključujući instrukcije za množenje i deljenje kao i veći broj memorijsko adresnih načina rada. Kao rezultat se dobija veoma kompaktan kôd (programi su relativno mali).

S obzirom da su mikrokontroleri namenjeni za upravljačko-orijentisani aplikacioni domen, oni poseduju bogat skup instrukcija za manipulisanje podacima na nivou-bita, kao i periferijskim komponentama kakvi su tajmeri ili serijski U/I portovi. Veoma često jednostavni procesori koji su se ranije koristili kao CPU-ovi u računarskim sistemima (kakvi su, recimo procesori iz familije Intel 8051, Motorola 6502, 6811, i dr., koji su bili popularni kao CPU-ovi u kućnim računarima) danas se ponovo koriste u nešto izmenjenoj formi kao mikrokontroleri kod embedded sistema. 1.1.2 RISC procesori

RISC procesori su evoluirali od CISC arhitektura kao rezultat zapažanja da se kompleksne instrukcije kod praktičnih aplikacija izvršavaju veoma retko. Nasuprot CISC procesorima, RISC procesori poseduju veoma mali (ograničeni) skup instrukcija, koje se mogu izvršavati velikom brzinom. S obzirom da su sve instrukcije RISC-a istog obima i da za izvršenje zahtevaju isti broj taktnih intervala, izvršenje instrukcija se može

Page 7: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

7

učiniti protočnim čime se postiže veća propusnost u odnosu na mehanizam karakterističan za čisto sekvencijalno izvršenje. Druge osobine RISC-ova su te da su oni arhitekture tipa LOAD/STORE, i da koriste veliki broj registara-opšte-namene sa ciljem da se u programu smanji broj obraćanja memoriji. U suštini, pažljiva dodela programsko-promenljivih registara predstavlja jedan od najvažnijih optimizacionih zadataka koje obavlja kompilator kod RISC-ova. Ipak, za fiksnu aplikaciju, obično, obim kôda (programa) RISC-a je veći od obima kôda CISC-a. Tipični predstavnici RISC procesora koji se koriste kod embedded aplikacija su ARM RISC core familija, Mips RISC familija, i dr. Recimo ARM7 core je 32-bitni RISC procesor, čiji instrukcioni format može da komutira izmedju dužina od 16 ili 32 bita. Arhitektura ARM-a je specijalno projektovana za nisku potrošnju (low-power consumption), obično reda 100 mW, što čini da ARM bude pogodan za ugradnju u prenosnim sistemima koji se napajaju baterijski. 1.1.3 Digitalni Signal Procesori (DSP) DSP-ovi su uglavnom projektovani za aritmetičko-intenzivne signal-procesne aplikacije. Saglasno tome, njihovi skupovi instrukcija su prilagodjeni za brzo izvršenje algoritama tipa digitalno filtriranje, FFT, i dr. Ove operacije su podržane od strane specijalnih hardverskih komponenata, kakvi su hardverski množači i namenske jedinice za generisanje adresa. Sa ciljem da obezbede efikasno signal procesiranje, DSP-ovi obično podržavaju odredjeni stepen ILP-a, tj. odredjene kombinacije instrukcija se mogu, u svakom instrukcionom ciklusu, paralelno izvršavati.

Druga tipična karakteristika DSP-ova su registri-specijane-namene, tj. namenski akumulator registar i dr. Nasuprot registrima-opšte-namene kod RISC-ova, korišćenje registara specijane-namene, kod DSP-ova, zavisi od konteksta instrukcije: Instrukcije moraju čitati svoje operande iz odredjenih registara, a takodje i upisivati rezultate u odredjene registre. To dovodi do manjih komunikacionih kašnjenja u stazama-podataka (tj. brži rad) i zahteva manji broj bitova za kodiranje instrukcije.

Pored toga, DSP-ovi mogu da rade u specijanim aritmetičkim režimima rada. Tako na primer, u režimu rada zasićenje (saturation mode), pozitivni rezultati izračunavanja koji premašuju obim reči koji se može zapamtiti u registru ne generišu premašaj, tj. ne konvertuju brojnu maksimalnu pozitivnu izračunatu vrednost u domen negativni broj, kakav je slučaj kod manipulisanja sa brojevima u prezentaciji dvojičnog komplementa. U konkretnom slučaju sve vredosti koje premašuju najveću vrednost koju možemo predstaviti se konvertuju u najveći broj koji se može predstaviti. Zbog neregularnosti arhitekture procesora, u odnosu na druge klase procesora, realizacija kompajlera za DSP-ove predstavlja težak zadatak, posebno ako se želi generisati efikasan kôd.

Najpoznatiji proizvodjač DSP-ova je firma Texas Instruments (TI), koja nudi širok spektar DSP-ova za različite domene aplikacija, kakvi su audio ili video signal procesiranje. Druge kompanije koje proizvode DSP-ove su Motorola, Analog Devices, i NEC. 1.1.4 Multimedija procesori

Multimedija procesori predstavljaju relativno novi proizvodi na polju tržišta procesora, a po svojoj arhitekturi najbliži su RISC-ovima i DSP-ovima. Ipak su ovi procesori namenjeni za korišćenje kod multimedija aplikacija, koje se pre svega odnose na procesiranje audio signala, procesiranje signala (statičkih) slika, kao i procesiranje video signala (dinamičkih slika).

Page 8: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

8

Arhitekture multimedija procesora su obično VLIW tipa. Različite FU-ove mogu paralelno da rade, a upravljaju se od strane polja specijalnih upravljačkih bitova koji su sastavni delovi instrukcija. Nasuprot superskalarnim procesorima, samo je kompilator odgovoran za eksploataciju potencijalnog paralelizma u okviru mašinskog programa.

Multimedija procesori, kao VLIW mašine, karakterišu se visokim stepenom ILP-a, pa se zbog toga potencijalno karakterišu visokim performansama. U principu, multimedija arhitekture su znatno regularnije u poredjenju sa DSP-ovima. Tako na primer, postoje registri-opšte-namene isto kao i kod RISC-ova. S obzirom da su RISC mašine kao i registri-opšte-namene dobro poznati koncepti kod konstrukcije kompilatora, najveći broj postojećih kompilatorskih tehnika se može veoma uspešno iskoristiti (reused) i kod multimedija procesora. Sa druge strane, postoje osobine koje nisu svojstvene za druge klase procesora. To se pre svega odnosi na uslovne (Conditional) instrukcije koje se pre svega koriste za brzo izvršenje if-then-else iskaza, kao i SIMD instrukcije koje su pre svega namenjene za boljeiskorišćenje resursa kod manipulisanja podacima čiji je obim reči manji od obima reči sa kojima uobičajeno manipuliše mašina.

Primeri multimedija procesora su TI 6201 (izvršava do 8 paralelnih instrukcija po ciklusu) i Philips Trimedia TM 1000 (izvršava do 5 paralelnih instrukcija po ciklusu). Polje istraživanja u ovoj oblasti je široko, posebno u domenu kreiranja efikasnih kompajlera. 1.1.5 Aplikaciono-specifični-procesori (ASIP)

Sve klase procesora o kojima smo prethodno govoili su domen-specifični. Njihove arhitekture su prilagodjene za odredjeni domen-aplikacije, ali ne i za samu aplikaciju. Nasuprot tome ASIP (application specific instruction set processors) predstavljaju kompromis izmedju domen-specifičnih procesora i ne-progaramabilnih ASIC kola.

ASIP-ovi su programibilni, ali se oni uglavnom koriste samo za uzak opseg aplikacija. Ponekad se ASIP-ovi mogu parametrizirati: U konkretnom slučaju to znači da je osnovna arhitektura ASIP-a fiksna, ali se arhitektura, za datu aplikaciju, može prilagoditi putem postavljanja (definisanja) odredjenog broja različitih parametara. Tako na primer, obim reči se može prilagoditi na željenu preciznost, zatim se u zavisnosti od potreba obim RF polja može menjati, a takodje se može izabrati i broj specijalnih hardverskih komponenata koje treba ugraditi, tj. recimo, hardver koji podržava LOOP iskaze se može ili ne mora ugraditi. S obzirom da su ovi parametri u najvećem broju slučajeva ortogonalni, moguće je realizovati , pomoću jedinstvenog ASIP-a veliki broj različitih konfiguracija. Saglasno prethodnom, ASIP-ovi su veoma efikasni, ali je za njihov rad potreban veliki broj različitih kompajlera.

Sa ciljem da se izbegnu teškoće koje realno postoje zbog velikog broja različitih kompajlera, koriste se retargetable kompajleri, koji su u stanju da generišu kôd za bilo koju ASIP konfiguraciju.

Pored izvornog kôda koga treba kompajlirati, retargetable kompajleri čitaju model ciljnog procesora kao ulaz. Ipak tehnika retargetabilnost (preusmeravanje-cilju) nije laka za implementaciju, jer utiče na kvalitet kôda. Ova oblast istraživanja je danas u intenzivnom razvoju.

Primer parametrizirajućeg ASIP-a je AMS Gepard DSP core, čiji su parametri sledeći: obim reči od 8 do 64 bita, obim programske adrese od 8 do 19 bitova, broj akumulatora od 2 do 4, i broj indeksnih registara od 8 do 16.

Page 9: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

9

1.1.6 Druge klase procesora Napomenimo takodje da procesori koji se ugradjuju u embedded sistemima, u najvećem broju slučajeva, ne pripadaju striktno samo jednoj od pomenutih klasa. Tako na primer, postoje novi mikrokontroleri RISC tipa, zatim RISC procesori koji veoma brzo izvršavaju DSP-ove instrukcije, a postoje i neki komercijalni DSP-ovi koji se mogu u ograničenij meri koristiti kao ASIP-ovi. Različite klase procesora postavljaju brojne i raznorodne zahteve za korišćenjem različitih tehnika kompajliranja.

1.2 Mikrokontroleri vs mikroprocesori

Bez sumnje najvažniji faktor koji je imao dominantni uticaj na masovno korišćenje računara u industriji predstavlja razvoj mikroprocesora. Mikroprocesor je u suštini računar na čipu.

Da bi obavili koristan zadatak, sistemi zasnovani na mikroprocesorima prve generacije zahtevali su ugradnju velikog broja dodatnih komponenata (oscilatore, adresne lečeve, lečeve za podatke i druga LSI kola relativno male složenosti). Kasnije, napredak na polju VLSI tehnologije doveo je do proizvodnje mikroračunarskih sistema kod kojih su sva neophodna kola bila ugradjena (embedded) u relativno mali broj pratećih integrisanih kola (tipično su to bili integrisane CPU jedinice relativno velike složenosti, kontroleri prekida, DMA kontroleri, tajmeri, UART-i, programibilni paralelni periferni interfejsi (PIA), i dr.). Kao plod dalje integracije nastaju jedno-čipni mikrokontroleri koji u sebi imaju ugradjeno analogni i digitalni ulazno-izlazni podsistem, tajmere i brojače, LCD drajvere i druge logike.Time su ova kola, takoreči bez dodatnog hardvera, sada bila u stanju da obavljaju relativno složene upravljačke funkcije koje se odnose na rad sistema u realnom vremenu. Primeri ovakvih tipova mikrokontrolera su Intel 8051 i 8096, Motorola MCH 68HC11, Microchip PIC 18F1x20, i dr. Ovi čipovi su pre svega razvijeni za potrebe automobilske industrije, procesne industrije, elektromedicine, telekomunikacija, robe široke potrošnje, i td.

Mikrokontrolere delimo na 4-, 8-, 16-, i 32-bitne. Ilustracije radi, 4-bitni mikrokontroleri uglavnom se koriste u automatima za igru, 8-bitni kao programatori u veš mašinama, 16-bitne srećemo u sistemima za upravljanje klimom u kolima, a 32-bitni se primenjuju da obave složene telekomunikacione funkcije u mobilnim bežičnim uredjajima. Osnovne karakteristika mikrokontrolera su:

1. usadjeni (built-in) ROM- najčešće kapaciteta 4 kB na samom čipu u kome se čuva upravljački program,

2. usadjeni RAM- najčešće kapaciteta 128 B, koji se koristi za čuvanje privremeno promenljivih,

3. CPU koji je, zbog efikasnijeg korišćenja ograničene programske memorije, u stanju da izvršava instrukcije koje manipulišu sa jediničnim bitovima,

4. veliki broj mikrokontrolera ima usadjeno koprocesor Boole-ovog tipa. Ovaj koprocesor zajedno sa CPU-om ima mogućnost da pojednostavljeno implementira Boole-ove izraze koji se veoma često javljaju u upravljačkim aplikacijama,

5. mikrokontroleri imaju usadjene ulazno-izlazne portove koji se koriste za efikasno upravljanje, kao i jednostavnu i laku interakciju sa spoljnim uredjajima.

Page 10: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

10

U daljem tekstu ukazaćemo na osnovne karakteristike mikrokontrolera bez ulaženja u detalje koji se odnose na specifičnosti njihovih realizacija. Šta su mikrokontroleri?

Svi današnji računari su realizovani od istih gradivnih blokova. To su centralni procesor ili CPU, memorijski podsistem, ulazno-izlazni podsistem, generatora taktne pobude, i sistemska magistrala koja medjusobno povezuje pomenute gradivne blokove. Sistemska magistrala se sastoji od adresne magistrale, magistrale podataka, i upravljačke magistrale.

Najveći broj standardnih računara, kakav je na primer PC mašina, se smešta u jedistveno kučište. Periferije kakvi su štampač, displej, skener, tastatura, miš, i druge se povezuju na računarski sistem preko konektora koji su montirani na kučištu. Druge sistemske komponente kakvi su diskovi, memorije proširenja, mrežne kartice i dr., su locirane u samom kučištu ili pak na osnovnoj ploči (motherboard) računara.

Mikroprocesor je integrisano kolo ili čip lociran na osnovnoj ploči koje u suštini predstavlja CPU računarskog sistema. Uglavnom svet PC mašina je taj koji je bio glavni pokretač razvoja sistema baziranih na mikroprocesorima. Imajući u vidu ovakve zahteve za mikroprocesore kažemo da su u novije vreme postali relativno specijalozovane komponente, posebno pogodne (prilagodjene) za veoma brzo manipulisanje podacima.

No kod odredjenih aplikacija veoma često je neophodno ugraditi odredjeni iznos lokalnog procesiranja na licu mesta procesa. Tako na primer, automat za izdavanje karata na autobuskim stanicama treba da ima odredjeni nivo autonomnosti u radu (pameti) tako da za unete podatke preko lokalne tastature sam izračuna cenu karte i izda je. Zbog ovakvog načina rada računarske mašine opšte namene ne predstavljaju dobro rešenje (izbor) za ovakav tip aplikacije, prvenstveno zbog velikog gabarita (dimenzije) mašine, a takodje i zbog visoke cene. Upravo su ovo idealne aplikacije za mikrokontrolere.

Nasuprot mikroprocesorima, mikrokontroleri su više orijentisani ka postizanju superiornijih performansi kod aplikacija namemjenih upravljanju, bezbednosti i pouzdanosti u radu. Imajući u vidu da je cena uredjaja baziranih na mikrokontrolerima od izuzetne važnosti za krajnjeg korisnika, mikrokontroleri su integrisali na čipu veliki broj standardnih periferala, kontrolere raznih tipova uredjaja, kao i memoriju. Na osnovu prethodnog mogli bi da kažemo sledeće: Mikrokontroler je računar na čipu. On sadrži skoro sve osnovne gradivne blokove računarskog sistema (CPU, ROM, RAM, U/I periferije tipa AD i DA konvertore, serijske komunikacione interfejse (UART), paralelne interfejs portove (PIA), tajmere/brojače, LCD drajvere, i dr.) koje se mogu integrisati na jedinstvenom čipu. Danas su mikrokontroleri najviše prodavan tip procesora. Ne bez razloga projektanti sistema relativno male složenosti kažu da su to čipovi upravo projektovani po njihovoj meri, tj. čipove o kojima sanjaju.

Nasuprot mikroprocesorima, cena mikrokontrolera je veoma niska (do nekoliko dolara u odnosu na cenu od stotinu dolara kakva je cena mikroprocesora). Za odredjene aplikacije niska cena mikrokontrolera je idealno rešenje. Taktna frekvencija na kojoj rade, obim adresibilne memorije, i obim podataka sa kojima manipulišu varira od jednog mikrokontrolera do drugog, šta više i kod jednog istog proizvodjača, tako da je posao projektanta da izabere najbolji mikrokontroler za datu aplikaciju.

Drugi važan razlog korišćenja mikrokontrolera, u odnosu na PC mašinu, predstavlja njegova kompaktnost koja se može iskazati konstatacijom: Računar na jednom čipu. Svi mikrokontroleri imaju usadjenu memoriju na čipu kao i veći broj ulazno-izlaznih interfejs linija. Veliki broj mikrokontrolera poseduje AD i DA konvertore, impulsno-širinski modulisane (PWM) generatore, sofisticirani sistem prekida, veći broj seriskih i paralelnih ulazno-izlaznih portova, fleksibilni sistem tajmer-brojač dogadjaja, LCD drajver, i dr.

Page 11: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

11

Mikrokontroleri se danas koriste u embedded sistemima za upravljanje raznim funkcijama koje sistem treba da obavi. Na primer, u današnjim automobilima ugradjuje se veliki broj (reda 100) mikrokontrolera koji se koriste za upravljanje radom kočionog sistema, ubrizgavanjem goriva, klima sistemom za grejanje-hladjenje, prikazom informacije na pokaznoj tabli, i td. Drugim rečima, jedno-čipni računar omogućava projektantima da ugrade računar u bilo kom uredjaju koji postavlja makar i minimalne zahteve za odredjenim iznosom izračunavanja.

Mikrokontroleri se veoma često koriste i u situacijama kada treba da se veoma brzo reaguje na spoljne signale- posebno ako se takvi sistemi koriste za rad u realnom vremenu- pa zbog toga koriste procesiranje bazirano na obradu prekida. Mikrokontroleri mogu takodje da rade po nadzorom operativnih sistema za rad u realnom vremenu (RTOS) čiji je obim manji, pri čemu ovakvi sistemi bolje reaguju (za kreće vreme) na odzive sistema koji se odnose na rad u realnom vremenu, nego što je to slučaj sa operativnim sistemima opšte namene koji se instaliraju na večim mašinama kakve su recimo PC mašine.

1.3 Mikrokontroleri: tipovi arhitektura i blok šema Arhitekture mikrokontrolera se mogu podeliti na sledeća dva tipa:

1. Harvard tip - karakteriše se razdvojenim memorijama za program i podatke. Svaki tip memorije ima svoj sopstveni fizički adresni prostor i koristi sopstvenu internu adresnu magistralu. Prednost ove arhitekture je ta što se pristup programskoj memoriji i memoriji za podatke ostvaruje konkurentno. Ovakvim pristupom se skraćuje ukupno vreme izvršenja programa. Proizvodjači mikrokontrolera Microchip, Zilog, National Semiconductor i Cypress zasnivaju svoje proizvode na Harvard arhitekturi, mada postoje neke neznatne ali važne razlike u pristupima kako ove kompanije implementiraju arhitekturu. Arhitekture ovih mikrokontrolera su tipične za RISC pristup.

2. Princeton tip (tzv. von Neumann) - programska memorija i memorija za podatke dele isti adresni prostor. To znači da se instrukcioni kôd može izvršavati kako iz programske tako i iz memorije za podatke. Poznati proizvodjači ovih tipova mikrokontrolera su Intel, Atmel, Motorola i dr. Ključna osobina ovih proizvoda je povećan broj instrukcija i adresnih načina rada koji u kombinaciji sa relokatibilnim softverskim magacinom (stack) omogućavaju efikasno korišćenje programskog jezika visokog nivoa C. Arhitekture ovih mikrokontrolera su tipične za CISC pristup.

Mikrokontroleri i digitalni signal procesori (DSP) su poznati tipovi aplikaciono integrisanih procesora (ASIP). U suštini mikrokontroler je mikroprocesor koji je optimiziran za embedded upravljačke aplikacije. Kod ovakvih aplikacija se obično nadgledaju (monitorišu) i postavljaju brojni jedno-bitni upravljački (control) signali, a pri tome se ne obavlja neko intenzivno izračunavanje nad podacima. Zbog ovoga mikrokontroleri imaju jednostavne staze podataka (datapaths) koje su prilagodjene za brzo izvršenje operacija na nivou-bita (bit manipulation) kao i operacija čitanja i upis sadržaja bitova sa spoljnih pinova čipa.

Pored jednostavne CPU, na istom čipu, mikrokontroleri imaju inkorporirano nekoliko periferalnih komponenata tipične za upravljačke aplikacije, kakve su serijske komunikacione periferije, tajmere/brojače dogadjaja, PWM generatore, AD i DA konvertore, i dr. Pored ostalog programska memorija i memorija za podatke su takodje inkorporirane na samom čipu.

Page 12: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

12

Inkorporiranjem periferala i memorije na istom integrisanom kolu smanjuje se broj dodatnih integrisanih kola koje treba ugraditi u sistem, što rezultira kompaktijoj implementaciji i globalno posmatrano smanjenoj potrošnji, tj rešenje postaje tipa low-power.

Činjenica da se programskim putem može direktno pristupati spoljnim pinovima čipa omogućava da program može lako da monitoriše stanje senzora, postavlja u definisano stanje aktuatore, i vrši prenos podataka ka/iz drugih uredjaja. Veliki broj proizvodjača naziva mikrokontrolere embedded procesore. Razlika izmedju embedded procesora i mikrokontrolera često nije jasna, mada se u stručnoj literaturi termin embedded procesor najčešće koristi za veće (32-bitne) procesore, a termin mikrokontroler za manje (4-, 8-, i 16-bitne) procesore. Opšti blok dijagram mikrokontrolera je prikazan na slici 1.1.

Slika 1.1: Struktura mikrokontrolera

Blok dijagram mikrokontrolera prikazan je na slici 1.2. Mikrokontroler je u suštini

pravi ''mali računar'' na čipu, koji sadrzi sve gradivne blokove CPU-a (ALU, PC, SP, registre i dr.), ali takodje i RAM, ROM, paralelne i serijske U/I portove, generatore takta i dr. Kao i mikroprocesor, i mikrokontroler je uredjaj opšte namene, koji pribavlja podatke, obavlja ograničenu obradu nad tim podacima, i upravlja svojim okruženjem na osnovu rezultata izračunavanja.

Mikrokontroler u toku svog rada koristi fiksni program koji je smešten u ROM-u i koji se ne menja u toku životnog veka sistema.

Page 13: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

13

Slika 1.2 Blok dijagram mikrokontrolera

Mikrokontroler koristi ograničen skup jedno- ili dvo-bajtnih instrukcija koje se koriste

za pribavljanje programa i podataka iz interne memorije. Veliki broj ulazno-izlaznih pinova mikrokontrolera se može koristiti za više namena, što se softverski definiše. Mikrokontroler komunicira sa spoljnim svetom (pribavlja i predaje podatke) preko svojih pinova, pri čemu je arihitektura i skup instrukcija projektovan za manipulisanje sa podacima obima bajt ili bit.

Page 14: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

14

2 MSP430 Familija

U ovom odeljku biće razmotrene karakteristike kontrolera MSP430 familije, koji imaju specifičnu podršku za kontrolu analognih procesa. Svi kontroleri iz ove familije su softverski kompatibilni, dopuštaju jednostavne izmene kontrolera iz MSP430 familije, a pritom se zadržava osnovna softverska baza, primenjene dizajnerske veštine i razvojni alati.

2.1 Karakteristike i mogućnosti

Navešćemo neke od osnovnih karakteristika familije MSP430: • Koristi 64K bajta za adresiranje ROM-a, RAM-a, EERAM-a i periferija. Za naredne

generacije kontrolera iz ove familije se planira 1M bajt. • Nema ograničenje prekida i potprogramskih nivoa zbog procesiranja magacina. • Samo tri formata istrukcija. Stroga ortogonalnost bez izuzetaka. • Koristi 1 reč/instrukcija ukoliko je moguće. • Sedam načina adresiranja izvorišta. • Četiri načina adresiranja odredišta. • Spoljašnji pinovi za prekide: postojeći Ulazno-Izlazni pinovi se mogu koristiti za

prekide. • Prekidi imaju dodeljene prioritete: istovremena pojava prekida se razrešava na

principu prioriteta. • Periferije imaju lokalnu memoriju: registri su u modulima - ne koriste RAM. • USART se nalazi na čipu: odvojeni prekidi za slanje i primanje. • Tajmer sa prekidima za brojanje događaja, generisanje vremena, PWM,... • Watchdog • 12- bitni ADC sa 16 ulaza. • EPROM verzija (One Time Programmable-memorija koja može samo jednom da se

isprogramira) • LCD drajver • Stabilna frekvencija procesora obezbeđena korišćenjem PLL-a i kristala frekvencije

32,768 Hz • Jednostavan razvoj programa zbog ortogonalne strukture: sve instrukcije podržavaju

sve adresne režime • Radi se na razvoju C-kompajlera • Koncept modularnog projektovanja: moduli su striktno memorijski mapirani

2.2 Ključne karakteristike sistema

• Mikropotrošnja struje: CPUOff i OscOff režimi rada • Kompletna funkcionalnost ispunjena na 2.5V • Gradivni blokovi sistema: LCD, A/D konvertor, Ulazno-Izlazni portovi, UART,

Watchdog, Tajmer, EEPROM itd. su integrisani na čipu • Jednostavna upotreba sistema

Efikasan instrukcijski set omogućava brzi razvoj softvera • Program može da se pokrene iz RAM-a

Page 15: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

15

Programi učitani u RAM preko UART-a mogu da se izvršavaju u realnom vremenu

• Kombinovanje ROM/RAM je moguće u osnovnom adresnom opsegu od 64 k bajta • Mogucnost programiranja na (HLL) višim programskim jezicima

12 registara opšte namene Instrukcije koriste magacin Veliki prostor za ROM i RAM Ortogonalni skup instrukcija Tabelarno orjetisana obrada koristeći indeksne režime rada

• Brza konverzija podataka iz heksadecimalnog brojni sistem u decimalni brojni sistem pomoću specijalnih instrukcija DADD

• Koriste se samo instrukcije za obraćanje ROM-u, pristup RAM-u, manipulisanje podacima, Ulazno-Izlaznim portovima i drugim periferijama.

• Mogućnosti CPU-a daleko prevazilaze zahteve inteligentnih senzorskih signalnih sistema. Sposobnost rada u realnom vremenu pruža mogućnost upotrebe i u ostalim sistemima male snage, uključujući upotrebu drugih periferija kao npr. DTM primopredajnik za žičani prenos.

2.3 MSP430 Familija uređaja

• MSP430 familija uređaja se označava na sledeći način:

• Razvojni alati uključujući i softverski sumulator DT430, asembler i linker ASM430/LNK430, C kompajler (pod razvojem) CS430/CW430, emulator ICE430. Svi razvojni alati su zasnovani na PC tehnici i koriste sve prednosti grafičkog okruženja, kompatibilne sa SAA standardom.

MSP430CxxxQFN

šifra pakovanja 1 ili 2 karaktera

temperaturni opseg, 1 karakter

I: -40˚C - 85˚C

A: -40 C - 125 C

jedinstven broj za svaki procesor iz familije ili softverski broj, 3 karaktera

memorijski kod: C: CMOS, ROM verzija

P: OTP,

E: EPROM

Page 16: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

16

3 Opšti osvrt na arhitekturu familije MSP430 Mikroračunarski sistemi bazirani na MSP430 sastoje se od:

• Centralna Procesorska Jedinica (CPU) • Programska memorija (ROM ili EPROM) • Memorija podataka (RAM ili EEPROM) • Upravljanje operacijama • Periferni moduli • Oscilator i množač frekvencije.

Arhitektura MSP430 familije mikrokontrolera je zasnovana na arhitekturi memorija ka

memoriji, uobičajni adresni prostor za sve funkcionalne blokove, i ograničen instrukcijski set prikladan svim funkcionalnim blokovima.

Slika 3.1: Konfiguracija MSP430 sistema

3.1 CPU

Centralna procesorska jedinica objedinjuje transparenti instrukcijski skup i ortogonalni dizajn. Sastoji se od šesnaestobitne ALU, 16 registara i instrukcione upravljačke logike. Četiri registara se koriste za specijalne namene, to su PC (Program Counter), SP(Stack Pointer), SR (Status Register) i CG2 (Constant Generator). Svi registri, izuzev R3/CG2 i dela R2/CG1, se koriste kao registri opšte namene, tj. omogućavaju kompletan instrukcijski set.

Kompletan skup CPU registara je prikazan na slici 3.2 :

Page 17: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

17

R0 Programski brojač (PC-Program Counter) R1 Pokazivač magacina (SP-Stack Pointer)

Status registar (SR-Status Register) R2

Generator konstanti (CG1-Constant Generator) R3 Generator konstanti (CG2-Constant Generator) R4 Radni register R4 (Working Register) R5 Radni register R5 (Working Register) : :

: :

R13 Radni register R13 (Working Register) R14 Radni register R14 (Working Register) R15 Radni register R15 (Working Register)

Slika 3.2: Skup registara

3.1.1 PC (Programski Brojač)

Šesnaestobitni Programski brojač PC (PC/R0) ukazuje na narednu instrukciju koja treba da se izvrši. Svaka instrukcija koristi paran broj bajtova (2, 4, 6 bajtova). Na slici 3.3 je prikazan PC:

Slika 3.3: 16-bitni programski brojač

Programski brojać PC se dva puta inkrementira tokom pribavljanja svake instrukcije.

Ovim postupkom PC ukazuje na sledeću instrukciju tokom izvršenja tekuće instrukcije, što omogućava dva načina adresiranja (neposredno i simboličko) koji koriste 1 reč informacija po instrukciji.

3.1.2 SP (Pokazivač magacina)

Pokazivač magacina SP je postavljen na istu adresu sve dok se pristupa podacima iz magacina tokom obrade zahteva za prekid. CPU koristi SP za pamćenje povratne adrese poziva potprograma i prekida. SP koristi pre-dekrementni i post-inkrementni način rada. Prednost ovih načina rada se ogleda u tome što su podaci sa vrha magacina (TOS) dostupni. Pokazivač magacina mogu da koriste i programeri (pomoću naredbi PUSH i POP) ali ne treba zaboraviti da ga koristi i CPU. Na slici 3.4 je prikazan SP:

Slika 3.4: Pokazivač magacina (SP)

Page 18: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

18

Napomena: Pokazivač magacina koristi registre opšte namene Registri opšte namene od R4 do R15 mogu da se koriste kao SW-pokazivači magacina Smeštanje stavke u SW-magacin obima reči kontroliše Rn: DECD Rn ; Dvostruka dekrementacija SW-SP Rn MOV item,0(Rn) ; Smeštanje stavke u SW-magacin Isčitavanje stavke iz SW-magacina: MOV @Rn+,item ; Isčitavanje stavke iz SW-magacina Smeštanje stavke u SW-magacin obima bajt kontroliše Rm: DEC Rm ; Dekrementiranje SW-SP Rm MOV.B item,0(Rm) ; Smeštanje stavke u SW-magacin Isčitavanje stavke iz SW-magacina obima bajt: MOV .B @Rn+,item ; Isčitavanje stavke iz SW-magacina

3.1.3 Statusni Registar (SR)

Šesnaestobitni status registar (SR/R2) , se koristi kao izvorišni ili odredišni registar kod registarskog načina adresiranja sa instrukcijom veličine reči. Preostale kombinacije adresnih režima rada se koriste da podrže rad sa generatorom konstantni.

Status Registar SR čine sledeći bitovi: · V Marker prekoračenja · SCG1 Kontrolni bit 1 sistemskog taktnog generatora · SCG0 Kontrolni bit 0 sistemskog taktnog generatora · OscOff Off bit kristal oscilatora · CPUOff Off bit CPU-a · GIE Osnovni marker dozvole prekida rada · N Marker negativnog rezultata · Z Marker nule · C Marker prenosa

Slika 3.5: Status registar SR

Opis statusnih bitova: Bit prekoračenja (V ) : Postavlja se u slučaju kada rezultat aritmetičkih operacija prekorači definisani opseg promenljivih. Važi za oba formata podataka, i za word i za bajt.

Page 19: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

19

ADD(.B), ADDC(.B) : Postavlja se u sledećim slučajevima: pozitivan + pozitivan = negativan negativan + negativan = pozitivan u ostalim slučajevima nije postavljen SUB(.B), SUBC(.B),CMP(.B): Postavlja se u sledećim slučajevima: pozitivan - negativan = negativan negativan - pozitivan = pozitivan u ostalim slučajevima nije postavljen SCG1, SCG0: Ovi bitovi definišu 4 aktivna stanja sistemskog taktnog generatora i njihov uticaj na sistem. Oscilator OFF: Kada se ovaj bit postavi, kristalni oscilator ulazi u stanje Off, sve aktivnosti prestaju osim sadržaja RAM-a, porta i registara koji ostaju zapamćeni. Izlazak iz ovog stanja je moguć jedino preko dozvole spoljašnjih prekida kada je GIE postavljen, a takođe i iz NMI-a. Ovaj bit ne bi trebalo da se postavlja bez istovremenog postavljanja CPU Off bita. CPU OFF : Kada se ovaj bit postavi CPU ulazi u stanje Off: sve aktivnosti prestaju osim RAM-a, porta i registara i periferija (osnovni tajmer, UART...) koji ostaju aktivni. Buđenje iz ovog stanja je moguće preko svih dozvoljenih prekida GIE: Kada je postavljen, ovaj bit omogućava upravljanje svim prekidima, a kada se ovaj bit resetuje upravljanje prekidima nije dozvoljeno. GIE bit brišu prekidi, a pomoću RETI instrukcije se ponovo postavlja. Ovaj bit takođe mogu da promene odgovarajuće instrukcije. Marker negativnog rezultata(N): Ovaj marker se postavlja kada je rezultat određene operacije negativan. Operacije na nivou reči: Marker negativnog rezultata se postavlja na poziciji 15. Operacije na nivou bajta: Marker negativnog rezultata se postavlja na poziciji 7. Marker nule (Z) : Ovaj marker se postavlja ako je rezultat određene operacije nula, u suprotnom se restuje. Marker prenosa (C): Ovaj bit se postavlja ako pri računskoj operaciji imamo prenos, u suprotnom se resetuje.

Page 20: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

20

Napomena: Statusni bitovi V, N, Z i C Statusni bitovi V,N,Z i C se modifikuju jedino odgovarajućim instrukcijama

3.1.4 Generator Konstanti CG1 i CG2 Registri

Najčešće korišćene konstante u programima generišu registri generatora konstanti R2 (CG1) i R3(CG2) , bez zahteva za dodatnim šesnaestobitnim rečima programskog kôda. Konstante se selektuju pomoću adresnih bitova (As), kao što je prikazano u sledećoj tabeli:

Registar As Konstanta Napomena R2 00 - Registarski režim rada R2 01 (0) Apsolutni režim adresiranja R2 10 00004h +4, manipulisanje sa bitovima R2 11 00008h +8, manipulisanje sa bitovima R3 00 00000h 0, manipulisanje sa rečima R3 01 00001h +1 R3 10 00002h +2, manipulisanje sa bitovima R3 11 FFh, FFFFh, FFFFFh -1, manipulisanje sa rečima

Prednosti generatora konstanti: • Ne koriste se specijalne instrukcije • Ne koriste se dodatne kôdne reči za sedam najčešće korišćenih konstanti • Kraće vreme izvršenja instrukcija: direktan pristup bez korišćenja MDB Asembler automatski koristi registre R2 i R3 generatora konstanti ako je jedna od šest

konstanti specificirana kao neposredni izvorni operand. Registar SR/R2, kao izvorišni ili odredišni operand, može jedino da se koristi u registarskom režimu rada. Preostale kombinacije adresnih bitova As se koriste u apsolutnom načinu adresiranja i procesiranju kod manipulacije sa bitovima bez opsluživanja op kôda. Registri R2 i R3 koji se koriste pri manipulisanju sa konstantama ne mogu eksplicitno da se adresiraju, oni se koriste kao izvorišni registri.

Registri generatora konstanti omogućavaju emulaciju nekoliko drugih instrukcija. Na primer jednooperandska instrukcija:

CLR dst

se emulira pomoću instrukcije sa 2 operanda istog obima: MOV R3, dst ili ekvivalentno MOV #0, dst gde #0 asembler zamenjuje sa R3 i As=00 :

Page 21: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

21

3.2 Adresni režimi rada

MSP430 arhitektura ima sedam načina za adresiranje izvorisnih operanada i četiri za adresiranje odredišnih operanada koji adresiraju kompletni adresni prostor. Tabela 3.1 prikazuje postavljanje bitova As i Ad i odgovarajući način adresiranja. Tabela 3.1

As/Ad

Adresni režimi rada

Sintaksa

Opis

00/0 Registarski Način Adresiranja

Rn Sadržaj registra su operandi

01/1

Indeksni način

adresiranja

X(Rn)

(Rn + X) ukazuje na operand. X se smešta na narednu programsku memorijsku lokaciju

01/1

Simbolički način adresiranja

ADDR

(PC + X) ukazuje na operand. X se smešta na narednu programsku memorijsku lokaciju. Koristi se indeksni način adresiranja X(PC)

01/1,

Apsolutni način

adresiranja

&ADDR

Reč koja sledi iza op kôda instrukcije predstavlja apsolutna adresa

10/- Indirektni način adresiranja

@Rn Rn se koristi kao pokazivač na operand

11/-

Indirektni način adresiranja sa

autoinkrementiranjem

@Rn+

Rn se koristi kao pokazivač na operand. Nakon pristupa operandu sadržaj Rn se inkrementira

11/-

Neposredni način adresiranja

#N

Reč koja sledi iza op kôda instrukcije sadrži neposrednu konstantu N. Nakon izvršenja instrukcije sadržaj PC-a se inkrementira.

U narednim poglavljima dat je opis svih sedam načina adresiranja kroz primere.

3.2.1 Registarski Način Adresiranja Asemblerski kôd Sadržaj ROM-a

Obim: 1 ili 2 reči Efekat instrukcije: Kopira se sadržaj R10 u R11. R10 ne menja vrednost Komentar: Važi za izvorne i odredišne operande Primer: MOV R10, R11

Page 22: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

22

Pre Posle

3.2.2 Indeksni način adresiranja Asemblerski kôd Sadržaj ROM-a

Obim: 2 ili 3 reči Efekat instrukcije: Kopira se sadržaj adrese izvorišnog operanda(sadržaj R5+2 registra ) na adresu odredišnog operanda (sadržaj R6+6 registra ). Sadržaj registara R5 i R6 se ne menja. U indeksnom načinu adresiranja PC se automatski inkrementira tako da program nastavlja izvršavanje sledeće instrukcije. Komentar: Važi za izvorne i odredišne operande. Primer: MOV 2(R5),6(R6):

Page 23: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

23

Pre: Posle

3.2.3 Simbolički način adresiranja Asemblerski kôd Sadržaj ROM-a

Obim: 2 ili 3 reči Efekat instrukcije: Kopiraju se konstante sa adrese izvorišnog operanda EDE (sadržaj iz PC+X) na adresu odredišnog operanda TONI (sadržaj iz PC+Y). Asembler računa i automatski ubacuje X i Y ofsete. U simboličkim načinu adresiranja PC je automatski inkrementiran tako da program nastavlja sa izvršavanjem sa sledećom instrukcijom. Komentar: Važi za izvorne i odredišne operande. Primer: MOV EDE,TONI ;adresa izvornog operanda EDE=0F016h, ;adresa odredišnog operanda TONI=01114h

Page 24: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

24

Pre: Posle:

3.2.4 Apsolutni način adresiranja Asemblerski kôd Sadržaj ROM-a

Obim: 2 ili 3 reči Efekat instrukcije: Kopira se sadržaj sa adrese izvornog operanda EDE na adresu odredišnog operanda TONI. U simboličkim načinu adresiranja PC je automatski inkrementiran tako da program nastavlja sa izvršavanjem sa sledećom instrukcijom. Komentar: Važi za izvorišne i odredišne operande. Primer: MOV &EDE,&TONI ;adresa izvornog operanda EDE=0F016h, ;adresa odredišnog operanda TONI=01114h

Page 25: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

25

Pre: Posle:

3.2.5 Indirektni način adresiranja Asemblerski kôd Sadržaj ROM-a

Obim: 1 ili 2 reči Efekat instrukcije: Kopira se sadržaj adrese izvorišnog operanda (sadržaj R10 registra) na adresu odredišnog operanda (sadržaj R11 registra). Sadržaj registara se ne menaja. Komentar: Važi jedino za izvorne operande. Zamena za odredišne operande je 0(Rd). Primer: MOV.B @R10,0(R11)

Page 26: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

26

Pre: Posle:

3.2.6 Indirektni način adresiranja sa autoinkrementiranjem Asemblerski kôd Sadržaj ROM-a

Obim: 1 ili 2 reči Efekat instrukcije: Kopira se sadržaj adrese izvorišnog operanda (sadržaj R10 registra) na adresu odredišnog operanda (sadržaj R11 registra). Registar R10 se inkrementira sa 1 (bajt instrukcija) ili sa 2 (word instrukcija). Komentar: Važi jedino za izvorišne operande. Zamena za odredišne operande je 0(Rd) i instrukcija INCD Rd. Primer: MOV @R10+,0(R11) Pre: Posle:

Page 27: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

27

3.2.7 Neposredni način adresiranja Asemblerski kôd Sadržaj ROM-a

Obim: 2 ili 3 reči 1 reč manje ukoliko se koriste konstante registara CG1 i CG2. Efekat instrukcije: Kopira se konstanta 45 koja se nalazi u reči na adresu odredišnog operanda TONI. Komentar: Važi jedino za izvorišne operande. Primer: MOV #45,TONI Pre: Posle:

Page 28: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

28

3.2.8 Taktni ciklus, obim instrukcijje

Brzina izvršavanja operacija u centralnoj procesorskoj jedinici (CPU) ne zavisi od tipa instrukcije. Brzina zavisi od formata instrukcije i načina adresiranja. Broj taktnih ciklusa se odnosi na unutrašnju frekvenciju oscilatora. Instrukcije I formata

Instrukcije II formata

Page 29: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

29

Instrukcije III formata Jxx – instrukcijama su potrebni isti taktni ciklusi, nezavisno od uspešnosti Jump-a Taktni Ciklus: 2 ciklusa Obim instrukcije: 1 reč Ostale Instrukcije ili Operacije RETI Taktni Ciklus: 5 ciklusa Obim instrukcije: 1 reč Prekid Taktni Ciklus: 6 ciklusa WDT reset Taktni Ciklus: 4 ciklusa Reset (RST/NMI) Taktni Ciklus: 4 ciklusa

3.3 Pregled skupa instrukcija

Sledi kratak pregled skupa instrukcija: Efekat instrukcija na sadržaj markera statusnog registra (SR): * Ima efekat na status bit - Nema efekat na status bit 0 Status bit se briše 1 Status bit se postavlja Izvorni i odredišni deo instrukcije se definišu sa po dva polja (adresni načini su dati u prethodnom poglavlju): src Izvorni operand definišu polja As i S-reg dst Odredišni operand definišu polja As i D-reg As Polje As koje specificira adresni način rada se koristi kao izvorište D-reg Se koristi za specifikaciju odredišta B/W Definiše da li operacija manipuliše sa bajt ili reč: 0: za operacije tipa reč i 1: za operacije tipa bajt 3.3.1 Instrukcije sa dva operanda

Slika 3.6: Format instrukcija sa dva operanda

Page 30: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

30

V N Z C MOV src,dst src → dst - - - - ADD src,dst src + dst → dst * * * *

ADDC src,dst src + dst + C → dst * * * * SUB src,dst dst + .not.src + 1 → dst * * * *

SUBC src,dst dst + .not.src + C → dst * * * * CMP src,dst dst - src * * * *

DADD src,dst src + dst + C → dst (dec) * * * * AND src,dst src .and. dst → dst 0 * * * BIT src,dst src .and. dst 0 * * * BIC src,dst .not.src .and. dst → dst - - - - BIS src,dst src .or. dst → dst - - - - XOR src,dst src .xor. dst → dst * * * *

3.3.2 Jednooperandske instrukcije

Slika 3.7: Format jednooperandske instrukcije

V N Z C

RRC dst C -> MSB -> ........LSB -> C * * * * RRA dst MSB -> MSB ->...LSB -> C 0 * * *

PUSH src SP - 2 -> SP, src -> @SP - - - - SWPB dst zamena bajtova - - - - CALL dst SP - 2 -> SP

PC+2 -> stack, dst -> PC - - - -

RETI dst TOS -> SR, SP <- SP + 2 TOS -> PC, SP <- SP + 2

x x x x

SXT dst Bit7 -> Bit8 ........ Bit15 0 * * *

Za CALL instrukciju koristi sve načine adresiranja. U slučaju da koristimo

Simboličko, Neposredno, Apsolutno ili Indeksno adresiranje, adresna informacija instrukcije se čuva u narednoj reči. 3.3.3 Instrukcije uslovnog grananja Uslovni skokovi omogućavaju grananje programa u skladu sa sadržajem programskog brojača (PC). Mogući opseg je od -512 do +511 reči u skladu sa stanjem programskog brojača kod Jump instrukcije. 10-to bitni ofset programskog brojača se tretira kao ozanačena 10-to bitna vrednost koja se duplira i dodaje programskom brojaču. Instrukcije uslovnog granjanja nemaju uticaja na statusne bitove. Instrukcioni kôd se pribavlja i PC se inkrementira po formuli:

PCnew = PCold + 2 + PCoffset * 2

Slika 3.8: Format instrukcije uslovnog grananja

Page 31: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

31

JEQ/JZ Lokacija grananja skok na liniju ako je marker nule (Z) postavljen

JNE/JNZ Lokacija grananja skok na liniju ako je marker nule (Z) resetovan

JC Lokacija grananja skok na liniju ako je marker prenosa (C) postavljen

JNC Lokacija grananja skok na liniju ako je marker prenosa (C) resetovan

JN Lokacija grananja skok na liniju ako je marker negativnog rezultata (N) postavljen

JGE Lokacija grananja skok na liniju ako je (N.XOR.V) = 0 JL Lokacija grananja skok na liniju ako je (N.XOR.V) = 1 JMP Lokacija grananja bezuslovni skok na liniju

3.3.4 Kratka forma pseudo-instrukcija

Osnovne instrukcije zajedno sa generatorom konstanti formiraju pseudo-instrukcije. Statusni bitovi se postavljaju u skladu sa rezultatom osnovnih instrukcija.

Page 32: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

32

Mnemonik Opis Statusni bitovi

Emulacija

V N Z C Aritmetičke instrukcije

ADC[.W] dst dodaje prenos odredišnom operandu * * * * ADDC #0,dst ADC.B dst dodaje prenos odredišnom operandu * * * * ADDC.B #0,dst DADC[.W] dst dodaje decimalni prenos na

odredište * * * * DADD #0,dst

DADC.B dst dodaje decimalni prenos na odredište

* * * * DADD.B #0,dst

DEC[.W] dst dekrementuje odredište * * * * SUB #1,dst DEC.B dst dekrementuje odredište * * * * SUB.B #1,dst DECD[.W] dst dekrementiranje za 2 * * * * SUB #2,dst DECD.B dst dekrementiranje za 2 * * * * SUB.B #2,dst INC[.W] dst inkrementuje odredišni operand * * * * ADD #1,dst INC.B dst inkrementuje odredišni operand * * * * ADD.B #1,dst INCD[.W] dst inkrementiranje za 2 * * * * ADD #2,dst INCD.B dst inkrementiranje za 2 * * * * ADD.B #2,dst SBC[.W] dst oduzima prenos od odredišta * * * * SUBC #0,dst SBC.B dst oduzima prenos od odredišta * * * * SUBC.B #0,dst Logičke instrukcije

INV[.W] dst inverzija odredišnog operanda * * * * XOR #0FFFFh,dst

INV.B dst inverzija odredišnog operanda * * * * XOR.B #0FFFFh,dst

RLA[.W] dst rotira levo aritmetički * * * * ADD dst,dst RLA.B dst rotira levo aritmetički * * * * ADD.B dst,dst RLC[.W] dst rotiranje ulevo preko markera za

prenos * * * * ADDC dst,dst

RLC.B dst rotiranje ulevo preko markera za prenos

* * * * ADDC.B dst,dst

Instrukcije podataka (najčešće u upotrebi)

CLR[.W] resetuje odredišni operand - - - - MOV #0,dst CLR.B resetuje odredišni operand - - - - MOV.B #0,dst CLRC resetuje marker prenosa - - - 0 BIC #1,SR CLRN resetuje marker rezultata - 0 - - BIC #4,SR CLRZ resetuje marker nule - - 0 - BIC #2,SR POP dst stavka iz magacina - - - - MOV @SP+,dst SETC postavlja marker prenosa - - - 1 BIS #1,SR SETN postavlja marker negativnog rezultata - 1 - - BIS #4,SR SETZ postavlja marker nule - - 1 - BIS #2,SR TST[.W] dst testira destinaciju 0 * * * CMP #0,dst TST.B dst testira destinaciju 0 * * * CMP.B #0,dst Instrukcije toka programa

BR dst grana se na... - - - - MOV dst,PC DINT zabrana prekida - - - - BIC #8,SR EINT dozvola prekida - - - - BIS #8,SR NOP operacija bez efekta - - - - MOV #0h,#0h RET povratak iz potprograma - - - - MOV @SP+,PC

Page 33: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

33

3.3.5 Ostale instrukcije

Ni jedna instrukcija ne može da se pribavi bez operanada kao što je CPUOff i drugih. Ove funkcije se uključuju i isključuju postavljanjem ili brisanjem funkcijskih bitova u statusnom registru ili odgovarajućem ulazno-izlaznom registru. Ostale se emuliraju intrukcijama sa dva operanda.

4 Organizacija memorije

Memorija kod MSP430 familije mikrokontrolera je konfigurisana na principu „von-Neumann“ arhitekture. Sastoji se iz programske memorije (ROM, EPROM, RAM) i memorije podataka (RAM, EEPROM, ROM) koje su na jednom adresnom prostoru i koriste jedinstvenu adresnu i magistralu podataka. Sve fizički odvojene memorijske lokacije, delovi unutrašnje memorije (ROM, RAM, SFR i periferni moduli) i spoljašnja memorija su preslikani u zajednički memorijski prostor. U „small memory model“ je moguće koristiti 64 kB memorijskog prostora, dok u „large memory model“ može da se iskoristi 1 MB. „Small memory model“ koristi linearni adresni prostor, dok je u „large memory model“ adresni prostor raspoređen tako da je 16 segmenata po 64 kB za pristup kôdu i 16 po 64 kB za pristup podacima.

Slika 4.1: Celokupni adresni prostor

Page 34: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

34

Konfiguracija „small memory model“ i magistrale podataka je data na slici 4.2:

Slika 4.2: Memorijska mapa osnovnog adresnog prostora

Magistrala podataka je 16- bitna ili 8- bitna. Ovi moduli kojima se pristupa pomoću

instrukcija na nivou reči su uvek 16- bitni, dok su svi ostali 8-bitni, i njima se pristupa pomoću instrukcija na nivou bajta. Programskoj memoriji (ROM) i memoriji podataka (RAM) bi se trebalo pristupati pomoću instrukcija na nivou reči ili bajta. Delovi perifernih modula su realizovani kao 16-bitni ili 8-bitni moduli. Pristupa im se pomoću odgovarajućih instrukcija. Mnogi periferni moduli su sa centralnom procesorskom jedinicom povezani preko 8-bitne magistrale (MDB), sa 5 bitova najmanje težine MAB-a (Memory Address Bus), 2 ME (Module Enable) signala, 2 control/request linije prekida i signal koji je uključen. Ovim modulima se uvek pristupa pomoću instrukcija na nivou bajta, dok se ostalim 16-bitnim perifernim modulima povezani sa 16-bitnom MDB pristupa instrukcijama na nivou reči.

Page 35: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

35

Slika 4.3: Veze CPU-a i ostalih modula

4.1 Podaci u memoriji

Bajtovi se nalaze na parnim ili neparnim adresama. Reči se smeštaju na parnim memorijskim lokacijama u skladu sa svakom adresom. Niži bajt je na parnoj adresi a viši na sledećoj neparnoj adresi.

Slika 4.4: Bit, bajt i reč u memoriji organizovanoj na principu bajta

4.2 Organizacija ROM memorije

ROM ima maksimalnu veličinu 64 kB. Adresni prostor dele registri specijalne namene, registri perifernih modula, memorija podataka i programska memorija. Registri specijalne namene i periferni moduli su locirani u adresnom opsegu počevši od 0 pa sve do 01FFh . Preostali adresni prostor od 0200h do 0FFFFh dele memorija podataka i programska memorija.

Page 36: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

36

Početna adresa pri bilo kojoj veličini ROM-a je uvek 0FFFEh. Tabela vektora prekida takođe startuje sa najvišim prioritetom na najvišoj ROM adresi obima reči. Programski brojač, a samim tim i tok instrukcija imaju smer od viših ka nižim adresama. Programski brojač se može uvećati za 2, 4 ili 6 u zavisnosti od toga koji se način adresiranja koristi.

Slika 4.5: Organizacija ROM-a

Vektori prekida i power-up vektor su locirani u ROM-u počevši od adrese 0FFFEh.

Vektori sadrže 16-bitne adrese odgovarajuće prekidne instrukcione sekvence. 4.2.1 Obrada ROM tabela Kod MSP430 arhitekture moguće je pamćenje tabela velikog obima u ROM prostotru.

Za pristup ovim tabelama mogu da se koriste sve instrukcije na nivou reči kao i sve instrukcije na nivou bajta. Ovo nam omogućava različite pogodnosti koje se odnose na fleksibilnost i uštedu prilikom programiranja ROM-a.

4.2.2 Obrada grananja i poziva

Obrada grananja i poziva potprograma je moguća korišćenjem standardnih instrukcija. Instrukcije CALL i BR koriste iste načine adresiranja kao i ostale instrukcije.

Za obradu grana i poziva pogodno je koristiti indirektno-indirektno adresiranje. Korišćenje ovakve programske tehnike dopušta razlike u programskoj strukturi 8-mo i 16-to bitnih kontrolera. Korišćenjem softverskog upravljanja stanjima, umesto „Flag“ tipa upravljanja programskim tokom možemo lakše da upravljamo rutinama. Obrada grananja i poziva potprograma važi u okviru segmenta kôda od 64 kB.

4.3 Organizacija RAM-a i periferija

Podacima obima reči ili bajt u RAM memoriji se pristupa pomoću odgovarajućih instrukcijskih sufiksa. Periferni moduli se nalaze na dva različita adresna prostora.

Page 37: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

37

• registri specijalne namene su obima bajt i zauzimaju adresni prostor od 0h do 0Fh.

• periferni moduli obima bajt zauzimaju adresni prostor od 010h do 0FFh • periferni moduli obima reč zauzimaju adresni prostor od 100h do 01FFh

4.3.1 RAM

RAM može da se koristi i za programsku memoriju i za memoriju podataka. Pristup programskoj memoriji je uvek preko adrese obima bajta.

Sufiks instrukcionog mnemonika definiše pristup podacima na osnovu toga da li su podaci obima bajt ili reč.

Primer: ADD.B &TCDATA,TCSUM_L ;Bajt pristup ADDC.B TCSUM_H Bajt pristup ADD R5,SUM_A ≡ ADD.W R5,SUM_A; ;Word pristup ADDC SUM_B ≡ ADDC.W SUM_A ;Word pristup Reč se sastoji od dva bajta, bajta višeg prioriteta (od 15 bita do bita 8) i bajta nižeg

prioriteta (od bita 7 do bita 0)

Slika 4.6: Operacije obima bajt i reč

Sve operacije koje koriste magacin i programski brojač su operacije obima bajt i

koriste susedne memorijske adrese. Operacije tipa reč-reč i bajt-bajt se izvode potpuno korektno i za rezultate operacije i

status bit informaciju.

Page 38: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

38

Word-word operacija: Bajt-bajt operacija:

Registar-Bajt operacija: Bajt-Registar operacija:

Napomena: Word- Bajt operacija Memorija podataka ne podržava ni Word- Bajt ni Bajt-Word operacije. Svaka registar- bajt i bajt- registar operacija se izvršava kao operacija obima bajt.

Page 39: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

39

4.3.2 Periferalni moduli- Dodela adresa

Svim perifernim modulima se pristupa i upravlja pomoću softvera. Sve instrukcije se koriste za operacije tipa podatraka. Zato što postoje moduli koji koriste MDB obima reči i modula koji koriste samo osam bitova najmanje težine, adresni prostor od 0100 do 01FFh je rezervisan za module obima reči, a adresni prostor od 0D00h do 0FFh je rezervisan za module obima bajt. Perifernim modulima, smeštenim u adresnom prostoru obima reči, treba da se pristupa pomoću instrukcija obima reči (npr. MOV R5, &WDTCTL). Perifernim modulima koji su smešteni u adresnom prostoru obima bajt treba da se prisutpa pomoću instrukcija obima bajt (MOV.B≠1,&TCCTL).

Adresiranje oba ova memorijska prostora se izvodi apsolutnim načinom adresiranja ili preko 16-to bitnih radnih registara koristeći indeksni, indirektni ili indirektni autoinkrementni način adresiranja.

Slika 4.7: Primer organizacije ROM/ periferije

Word moduli

Word moduli su periferije koje su sastavni deo 16-to bitne MDB. Pristup word modulima je uvek u formatu reči. Periferni adresni prostor podataka je

organizovan u 16 polja, gde svako polje predstavlja osam reči.

Page 40: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

40

Slika 4.8: Raspored adresa perifernih fajlova – Moduli obima reči

Bajt moduli

Bajt moduli su periferije koje su sastavni deo redukovane (8LSB) MDB. Pristup bajt modulima je uvek u bajt formatu. Hardver perifernih bajt modula koristi (LowByte) bit najmanje težine prilikom operacija upisa.

Bajt instrukcije se koriste na bajt modulima bez ikakvih ograničenja. Pri čitanju podataka perifernih bajt modula pomoću instrukcija obima reči rezultira nepredviđenim podatkom na Highbyte, bitu najveće težine. Podaci obima reči su upisani u bajt modulu tako što je upisan LowByte u registar odgovarajuće periferije a pri tome se ignoriše Highbyte. Adresni prostor perifernog fajla se sastoji od 16 polja.

Slika 4.9: Raspored adresa perifernih fajlova - Moduli obima bajta

Page 41: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

41

4.3.3 Periferni Moduli – Registri Specijalne Namene SFR

Konfiguracija sistema i delovanje pojedinih perifernih modula u radnim režimima procesora se uglavnom definišu u registrima specijalne namene.

Registri specijalne namene se nalaze u nižem adresnom opsegu i realizovani su u bajt formatu. Ovim registrima se pristupa pomoću instrukcija pobima bajta. Čak i kada određeni bitovi regisata specijalne funkcije dele isti adresni prostor oni mogu biti fizički implementirani unutar odgovarajućeg modula.

Slika 4.10: Adresni prostor registra specijalne namene SFR

Različite komponente MSP430 familije mikrokontrolera sadrže registar specijalne namene sa ispravnom logikom i funkcijom unutar pojedinih modula.

Svakom modulu može pojedinačno biti omogućen pristup prekidnoj funkciji i operaciji. Potpuno softversko upravljanje ovih konfigurisanih bitova omogućava aplikacijama da reaguju na zahteve sistema za dozvolu maskiranja prekida.

Na ukupnu potrošnju energije sistema ima uticaj broj uključenih modula i njihove funkcije. Isključivanje modula iz trenutnog radnog režima smanjuje potrošnju energije dok ostali delovi kontrolera ostaju u potpunosti aktivni. Jedino ROM i RAM ne mogu da se isključe. Procesorsko jezgro može da se prebaci u isključeni režim rada - CPU off mod – kod koga su sve unutrašnje funkcije isključene: aktivnosti CPU-a i magistrale su stopirane.

Page 42: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

42

5 Upravljanje operacijama 5.1 Sistemski reset i inicijalizacija Mikrokontroleri iz familije MSP430 imaju četiri moguća izvora reseta:

1. Nakon uključenja sistema napajanja 2. Postavljanjem na niski nivo signala na pinu /RST NMI, 3. Programiranjem time-out-a watchdog tajmera i 4. Detektovanjem greške pri unošenju sigurnosne šifre tokom inicijalizacije WDTCTL

registra.

Slika 5.1: Funkcije sistemskog reseta

Napomena: * znači da su bitovi ili signali deo perifernih modula watchdog tajmera.

Nakon pojave reseta, program testira markere, prema izvoru reseta. Program indetifikuje izvor reseta i preduzima odgovarajuću akciju. Uključenjem sistema napajanja aktivira se hardverska sekvenca za inicijalizaciju:

• Svi pinovi se postavljaju kao ulazni • Svi markeri su resetovani • Vektor adrese sa lokacije 0FFFEh se smešta u programski brojač (PC).

CPU startuje sa adrese koja se nalazi u power-up clear (PUC) vektoru. • Statusni registar (SR) se resetuje • Svi registri se inicijalizuju od strane programa (npr. pokazivač magacina, RAM, ...)

osim programskog brojača i statusnog registra. • Digitalno kontrolisani oscilator startuje sa najnižom frekvencijom • Nakon startovanja oscilatora, frekvencija se podešava do željene vrednosti.

Page 43: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

43

5.2 Opšta struktura prekida Postoji tri tipa prekida:

• sistemski reset • nemaskirani prekid • maskirani prekid

Izvori koji dovode do sistemskog reseta su: • Uključenje sistema na napajanje

• Postavljanje ulaza NMIRST/+ na nizak nivo (ako se selektuje reset režim rada) • Prekoračenje watchdog tajmera (ako se selektuje watchdog režim rada) • Greška pri unošenju sigurnosne šifre watchdog tajmera • (upisivanje u WDTCTL registar sa pogrešnom sigurnosnom šifrom)

Nemaskirani prekid generiše:

• Usponska ivica na NMIRST/+ pinu (ako se selektuje NMI režim rada) • Prekid rada oscilatora

Izvori koji dovode do maskiranih prekida su: • Prekoračenje watchdog tajmera (ako se selektuje tajmer režim rada) • Ostali moduli koji generišu zahtev za prekid

Šema prioriteta prekida MSP430 komponenata data je na slici 5.2.

Prioritet prekida se definiše fizičkim rasporedom povezivanja modula tako da najveći prioritet ima modul koji je najbliži CPU/NMIRS.

Slika 5.2: Šema prioriteta prekida

Page 44: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

44

Slika 5.3: Selekcija Reset/NMI režima rada Može se selektovati ili Reset ili NMI, pošto se koristi isti ulazni pin.

5.3 Upravljanje prekidima Programabilna struktura prekida MSP430 komponenata, omogućava fleksibilnu spoljašnju i on-chip konfiguraciju prekida koja ispunjava i real-time zahteve. Prekidi mogu nastati u određenim uslovima rada procesora, kao što su prekoračenje watchdog-a, spoljašnji ili događaji na perifernim modulima. Dozvola prekida svakog izvora prekida se postavlja pojedinačno pomoću bita dozvole prekida (interrupt enable bit). Pomoću bita dozvole svih prekida (general interrupt enable bit GIE) koji se nalazi u statusnom registru, mogu se onemogućiti svi prekidi. Uvek kada imamo zahtev za prekidom i ako su postavljeni bit dozvole svih prekida i odgovarajući bit dozvole prekida tada se servisna rutina prekida izvršava na sledeći način:

1. CPU aktivan: izvršenje tekuće instrukcije mora da se završi. CPU stopiran: prekidaju se režimi rada sa malom potrošnjom. 2. Programski brojač koji ukazuje na sledeću instrukciju je smešten u magacin. 3. Status registar je smešten u magacin. 4. Ako se setuje više prekida koji čekaju na izvršenje, opslužiće se prekid sa

najvećim prioritetom.

Page 45: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

45

5. Marker odgovarajućeg zahteva za prekid se automatski resetuje. Istovremena pojava više markera opslužuje se softverski. 6. Bit dozvole svih prekida (general interrupt enable bit) GIE se resetuje; CPUOff

bit, OscOff bit i SCG1* bit se brišu; statusni bitovi V, N, Z i C se resetuju. 7. Sadržaj odgovarajućeg vektora prekida se smešta u programski brojač. Programski

brojač nastavlja sa opsluživanjem prekidne rutine sa te adrese. Napomena: * SCG1 ostaje nepromenjen, FLL upravljačka petlja ostaje u prethodnom stanju.

Slika 5.4: Pokazivač magacina pre i posle prekida

Od prihvatanja zahteva za prekid pa do početka izvršenja prve instrukcije

odgovarajuće servisne rutine prolazi šest taktnih ciklusa. Prekidna rutina se završava instrukcijom:

RETI koja obavlja sledeće:

• Statusni registar se izbavlja sa vrha magacina pri čemu se inkrementira pokazivač magacina (SP). Prekinuti program ima isti status kao pre prekida uključujući OscOff, CPUOff i GIE bitove.

• Programski brojač se izbavlja sa vrha magacina.

Slika 5.5: Pokazivač magacina po povratku iz prekida

Page 46: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

46

Povratak iz prekidne rutine sa RETI instrukcijom traje pet taktnih intervala. Do gnežđenja prekida dolazi ako se GIE bit postavlja u okviru tekuće prekidne rutine.

Bit dozvole svih prekida GIE je deo statusnog registra SR/R2 koji pripada CPU-a, što je dato na slici 5.6:

Slika 5.6: Status registar SR

Svi markeri dozvole prekida se nalaze unutar dve adrese registra specijalne namene (special function register) SFR. 5.3.1 Bitovi koji upravljaju prekidom i registri sp ecijalne namene SFR

Većina bitova koji upravljaju prekidima, markeri prekida i bitovi dozvole prekida rada se čuvaju na nekoliko adresa u registrima specijalne namene SFR-u. Registri specijalne namene SFR imaju bajt format i locirani su u nižem adresnom opsegu. Registrima specijalne namene se može pristupiti samo instrukcijama koje su obima bajta.

Page 47: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

47

Tabela 5.1: Dozvola prekida 1 i 2 Pozicija

bita Skraćeno

obeležavanje Inicijalno stanje*

Komentar

IE1.0 WDTIE resetovan signal dozvole watchdog tajmera nije aktivan ako je selektovan režim rada

watchdog IE1.1 OFIE resetovan dozvola prekida od oscilatora IE1.2 P0IE.0 resetovan dodeljen pinu 0 U/I porta P0 (P0.0) IE1.3 P0IE.1 resetovan dodeljen pinu 1U/I porta P0 (P0.1) ili 8-mo

bitnom Tajmer/Brojaču IE1.4 resetovan rezervisan, još nedefinisan IE1.5 resetovan rezervisan, još nedefinisan IE1.6 resetovan rezervisan, još nedefinisan IE1.7 resetovan rezervisan, još nedefinisan IE2.0 URXIE resetovan dozvola prijema podataka od strane USART-a IE2.1 UTXRIE resetovan dozvola predaje podataka preko USART-a IE2.2 ADIE / TPIE resetovan Dozvola rada ADC-a ili Tajmer/Port-a

(važi za konfiguraciju ‘310)

* inicijalno stanje je logičko stanje posle PUC.

Pozicija bita

Skraćeno obeležavanje

Inicijalno stanje

Komentar

IE2.3 TPIE resetovan Dozvola rada Tajmer/Port-a (važi za konfiguraciju ‘320,’330)

IE2.4 resetovan rezervisan, još nedefinisan IE2.5 resetovan rezervisan, još nedefinisan IE2.6 resetovan rezervisan, još nedefinisan IE2.7 BTIE resetovan signal dozvole osnovnog tajmera

Page 48: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

48

Tabela 5.2: Markeri registara prekida 1 i 2 Pozicija

bita Skraćeno

obeležavanje Inicijalno

stanje Komentar

IFG1.0 WDTIFG nepromenjen ili

resetovan

postavlja se pri prekoračenju ili kada se javi greška pri unošenju sigurnosne šifre;

Resetovan nakon uključenja sistema napajanja ili

nakon pojave reseta na RST/NMI -pinu

IFG1.1 OFIFG postavljen postavlja se marker pri prekidu rada oscilatora IFG1.2 P0IFG.0 resetovan dodeljen pinu 0 U/I porta P0 (P0.0) IFG1.3 P0IFG.1 resetovan dodeljen pinu 1U/I porta P0 (P0.1) ili 8-mo

bitnom Tajmer/Brojaču IFG1.4 NMIIFG resetovan Signal koji se dovodi na RST/NMI-pinu

generiše zahtev za prekid IFG1.5 rezervisan, još nedefinisan IFG1.6 rezervisan, još nedefinisan IFG1.7 rezervisan, još nedefinisan IFG2.0 URXIFG marker prijema podataka od strane USART-a IFG2.1 UTXIFG predajnik podataka preko USART-a IFG2.2 ADIFG resetovan Ovaj marker se postavlja na kraju A/D

konverzije IFG2.3 rezervisan, još nedefinisan IFG2.4 rezervisan, još nedefinisan IFG2.5 rezervisan, još nedefinisan IFG2.6 rezervisan, još nedefinisan IFG2.7 BTIFG nepromenjen marker osnovnog tajmera Tabela 5.3: Dozvola modula 1 i 2 Pozicija

bita Skraćeno

obeležavanje Inicijalno

stanje Komentar

ME1.0 rezervisan, još nedefinisan ME1.1 rezervisan, još nedefinisan ME1.2 rezervisan, još nedefinisan ME1.3 rezervisan, još nedefinisan ME1.4 rezervisan, još nedefinisan ME1.5 rezervisan, još nedefinisan ME1.6 rezervisan, još nedefinisan ME1.7 rezervisan, još nedefinisan ME2.0 URXE dozvola prijema podataka od strane USART-a ME2.1 UTXE dozvola prenosa podataka preko USART-a ME2.2 rezervisan, još nedefinisan ME2.3 rezervisan, još nedefinisan ME2.4 rezervisan, još nedefinisan ME2.5 rezervisan, još nedefinisan ME2.6 rezervisan, još nedefinisan ME2.7 rezervisan, još nedefinisan

Page 49: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

49

Adrese vektora prekida

Vektor prekida i power-up početna adresa se čuvaju u ROM-u i nalaze se na adresi 0FFFFh - 0FFE0h . Vektor čini 16-to bitnu adresu koja ukazuje na lokaciju instrukcije prekidnog programa. Prekidni vektor je prikazan po rastućem prioritetu u Tabeli 5.4: Tabela 5.4: Izvori prekida, markeri i vektori Izvor prekida Marker prekida Sistem prekida Adresa

obima reč Prioritet

Power-up ext. Reset Watchdog

WDTIFG

resetovan

0FFFEh 15, najvišeg prioriteta

NMI prekid rada oscilatora

NMIIFG OFIFG *

ne može se maskirati (zabraniti)

0FFFCh 14

dodeljen U/I port

P0IFG.0 može se maskirati 0FFFAh 13

dodeljen U/I port

P0IFG.1 može se maskirati 0FFF8h 12

može se maskirati 0FFF6h 11 Watchdog

tajmer WDTIFG može se maskirati 0FFF4h 10

Tajmer_A CCIFG0 može se maskirati 0FFF2h 9 Tajmer_A TAIFG ** može se maskirati 0FFF0h 8 Prijem sa USART-a

URXIFG može se maskirati 0FFEEh 7

Prenos preko USART-a

UTXIFG može se maskirati 0FFECh 6

ADC, Tajmer/Port

ADCIFG može se maskirati 0FFEAh 5

Tajmer/Port može se maskirati 0FFE8h 4 Port P2 P2IFG.07 *,** može se maskirati 0FFE6h 3 Port P1 P1IFG.07 *,** može se maskirati 0FFE4h 2 Osnovni Tajmer

BTIFG može se maskirati 0FFE2h 1

Port P0

P0IFG.27 *,**

može se maskirati

0FFE0h

0, najmanjeg prioriteta

*) više izvora markera **) preliminarana definicija 5.3.2 Spoljašnji prekidi Svih osam bitova ulaznih portova P0, P1 i P2 se mogu prihvatati tokom obrade prekida spoljašnjih događaja. Svi U/I bitovi su nezavisno programabilni.

Page 50: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

50

Port P0 Port P0 ima šest registara koji se koriste za upravljanje U/I pinovima:

• Ulazni registar • Izlazni registar • Registar za smer • Markeri prekida: registar ima šest markera koji označavaju da li

se U/I pinovi koriste kao ulazi prekida. Bit = 0: tekuće ne postoji prekid koji se obrađuje Bit = 1: prekid se obrađuje Postavljanjem bita na 0 resetuje se marker prekida Postavljanjem bita na 1 posta postavlja se marker prekida Uređaj nastavlja sa radom na isti način kao da je nastao prekid.

o Selekcija ivičnog okidanja zahteva za prekid ovaj registar ima po jedan bit koji određuje način

iniciranja prekida u zavisnosti od tipa ivice signala Bit = 0: marker prekida se postavlja sa rastućom ivicom Bit = 1: marker prekida se postavlja sa opadajućom ivicom

• Dozvola prekida: ovaj registar ima šest bitova za U/I pinove od P0.2 do P0.7 pomoću kojih se brani i dozvoljava prekid Bit = 0: zahtev za prekidom se ne dozvoljava Bit = 1: zahtev za prekidom se dozvoljava

Portovi P1 i P2 Portovi P1 i P2 su identični. Posebni vektori se alociraju u module portova P1 i P2. Pinovi P1.0 to P0.7 i P2.0 to P2.7 se koriste kao mogući izvori prekida. Pri nastanku prekida, vektor koji se nalazi na odgovarajućoj memorijskoj lokaciji se učitava u Programski brojač. Portovi P1 i P2 imaju sedam registara koji se koriste za upravljanje U/I pinovima.

• Ulazni registar • Izlazni registar • Registar za pravac • Markeri prekida: registar ima šest markera koji označavaju da li

se U/I pinovi koriste kao ulazi prekida. Bit = 0: tekuće ne postoji prekid koji se obrađuje Bit = 1: prekid se obrađuje Postavljanjem bita na 0 resetuje se marker prekida Postavljanjem bita na 1 postavlja se marker prekida. Uređaj nastavlja sa radom na isti način kao da je nastao prekidni događaj.

• Selekcija ivičnog okidanja zahteva za prekid ovaj registar ima po jedan bit koji određuje način iniciranja prekida u zavisnosti od tipa ivice signala

Bit = 0: marker prekida se postavlja sa rastućom ivicom Bit = 1: marker prekida se postavlja sa opadajućom ivicom

Page 51: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

51

• Dozvola prekida: ovaj registar ima šest bitova za U/I pinove od P0.2 do

P0.7 pomoću kojih se brani i dozvoljava prekid Bit = 0: zahtev za prekidom se ne dozvoljava Bit = 1: zahtev za prekidom se dozvoljava

• Registar selekcije funkcije

5.4 Načini rada

Familija mikrokontrolera MSP430 koristi nekoliko načina rada. Pri pojavi prekida sistem se budi iz bilo kog od ovih načina rada i pomoću RETI instrukcije se vraća u onaj način rada u kome se nalazio pre nastanka prekida. Sistemi sa mikro potrošnjom projektovani u CMOS tehnologiji zadovoljavaju sledeće zahteve:

• veća brzina i veća propusna moć kod prenosa podataka • minimizacija potrošnje • ograničenje aktivnog načina rada na minimalno moguće

Slika 5.7: Šest načina rada koji se softverski regulišu

Page 52: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

52

1) Aktivni na čin rada AM U ovom režimu rada moguće je koristiti različite kombinacije rada aktivnih perifernih modula 2) Način rada male_potrošnje_0 LPM0 Kada je selektovan ovaj režim, CPUOff bit CPU-a je u stanju Off, rad perifernih uređaja se ne brani. Signali ACLK i MCLK su aktivni. Kolo za upravljanje oscilatora je aktivno. @ SCG1=0, SCG0=0, OSCOff=0, CPUOff=1 3) Način rada male_potrošnje_1 LPM1 Kada je selektovan ovaj režim, CPUOff bit CPU-a je u stanju Off, rad perifernih uređaja se ne brani. Signali ACLK i MCLK su aktivni. @ SCG1=0, SCG0=1, OSCOff=0, CPUOff=1 4) Način rada male_potrošnje_2 LPM2 Kada je selektovan ovaj režim, CPUOff bit CPU-a je u stanju Off, rad perifernih uređaja se ne brani. Kolo za upravljanje oscilatora nije aktivno. Signal ACLK je aktivan. @ SCG1=0, SCG0=1, OSCOff=0, CPUOff=1 5) Način rada male_potrošnje_3 LPM3 Kada je selektovan ovaj režim, CPUOff bit CPU-a je u stanju Off, rad perifernih uređaja se ne brani. Kolo za upravljanje oscilatora i signal MCLK nisu aktivni. DC generator od DCO (-> MCLK generator) je isključen. Signal ACLK je aktivan. @ SCG1=1, SCG0=1, OSCOff=0, CPUOff=1 6) Način rada male_potrošnje_4 LPM4 Kada je selektovan ovaj režim, CPUOff bit CPU-a je u stanju Off, rad perifernih uređaja se ne brani. Kolo za upravljanje oscilatora nije aktivno. DC generator od DCO (-> MCLK generator) je isključen. Signal ACLK nije aktivan. Kristal oscilator je stopiran. @ SCG1=X, SCG0=X, OSCOff=1, CPUOff=1

5.5 Načini Rada Male_Potrošnje Bitovi dozvole rada U/I modula u registru specijalne namene (SFR) daju dozvolu za ostvarivanje određenog načia rada. Korisnički program definiše stanja perifernih modula sa aspekta da li su aktivni ili ne. Jedini aktivni delovi modula su oni koji određuju da li modul treba da ostane u određenom stanju ili preda zahtev za prekid CPU-u.( npr. Spoljašnji hardverski prekid) Postoji pet mogućih načina rada sa smanjenjem potrošnje: CPUoff način rada (LPM0) i četiri režima rada koji generišu rad sistemskog takt generatora. Oni se aktiviraju postavljanjem jednog ili većeg broja bitova kakvi su: CPUoff, SCG1, SCG0,OscOff, koji su sastavni deo statusnog registra.

Page 53: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

53

Iniciranje prekidne rutine: Prekidna rutina se inicira i izvršava ako se javi zahtev za prekid, pa se nakon toga:

o Stanja SR-a, i PC-a se pamte u magacinu o Zatim se bitovi koji upravljaju načinima rada, OscOff, SCG1 i CPUoff,

automatski resetuju. Povratak iz prekida: Dva različita povratka iz uslužne rutine prekida su:

o Povratak sa postavljanjem bitova načina rada mikro potrošnje. Kada se izvrši povratak iz prekida, PC ukazuje na narednu instrukciju, koja se ne izvršava sve dok prethodni način rada mikro potrošnje ne zaustavi sve CPU aktivnosti.

o Povratak nakon prekida načina rada mikro potrošnje. Kada se izvrši povratak iz prekida, program nastavlja sa adrese koja sledi nakon instrukcije koja postavlja OscOff ili CPUoff bit u SR-u.

5.5.1 Načini rada male_potrošnje_0 i 1, LPM0 i LPM1

Načini rada male potrošnje 0 i 1, se biraju postavljanjem odgovarajućeg bita CPUoff u SR-u. Odmah nakon postavljanja odgovarajućeg bita, CPU zaustavlja rad i zaustavljaju se uobičajne operacije sistemskog jezgra. CPU je zaustavljen sve dok ne naiđe zahtev za prekid ili reset. Sve aktivnosti interne magistrale se zaustavljaju. Sistemski taktni generator nastavlja rad, a taktni signali MCLK i ACLK su aktivni i zavise od stanja bitova SCG0 i SCG1 i OscOff u SR-u. Bit SCG1 određuje da MCLK bude N*ACLK. Određeni periferni uređaji se aktiviraju davanjem dozvole i dovođenjem taktnog signala MCLK i ACLK. Svi pinovi U/I portova i RAM registri ostaju nepromenjeni. Buđenje je moguće bilo kojim dozvoljenim prekidom. ; ======= Glavni program nastavlja prelaskom na CPUoff način rada================ ; BIS #18h,SR ;Unosom LPM0 + dozvola rada osnovnog bita prekida GIE. ;PC se inkrementira tokom izvršenja ove instrukcije ; i ukazuje na narednu instrukciju.

................ ;Program nastavlja od ovog mesta ako je CPUoff bit ; resetovan ;tokom servisne rutine prekida.

; ======= Servisna rutina prekida========================================== ................ ................ RETI ;RETI vraća CPU u prethodno stanje

;Ovo je moguće jer se svi upravljački registri: ;GIE, CPUoff, OscOff, SCG1 i SCG0 nalaze u SR-u koji ;se vraća u prethodno stanje nakon povratka iz prekida.

Page 54: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

54

5.5.2 Načini rada male_potrošnje_2 i 3, LPM2 i LPM3 Načini rada male potrošnje 2 i 3, se biraju postavljanjem odgovarajućih bitova CPUoff i SCG1 u SR-u. Odmah nakon postavljanja odgovarajućeg bita, CPU i MCLK se zaustavljaju sve dok ne naiđe zahtev za prekid ili reset. Sve aktivnosti interne magistrale se zaustavljaju. Bit SCG1 određuje da MCLK bude N*ACLK.. Određeni periferni uređaji se aktiviraju davanjem dozvole i dovođenjem taktnog signala ACLK. Periferni uređaji tada rade sa neaktivnim MCLK signalom Svi pinovi U/I portova i RAM registri ne menjaju stanje. Buđenje je moguće ako se prekidi iniciraju od strane nezavisnih izvora sistemskog takta (MCLK). 5.5.3 Način rada male_potrošnje_4, LPM4 Sve aktivnosti prestaju; jedino sadržaj RAM-a, portova i registara se zadržava. Buđenje je moguće jedino dozvoljenim spoljašnjim prekidima.

Pre aktiviranja LPM4 načina rada, program se izvršava prema unapred određenim pravilima. Prema uslovima okruženja definiše se koja tekuća vrednost frekventnog generatora može biti zadržana ili korigovana. Korekcija može biti izvršena ako ambijentalni uslovi drastično povećavaju sistemsku frekvenciju. U toku taktovanja, petlja može da izgubi kontrolu i premaši frekvenciju tako da perioda postane mala, nedovoljna da održi zatvorenu petlju u datom opsegu rada.

Sledeći primer pokazuje način rada male_potrošnje_4 (OscOff):

BIS #B8h,SR ;Unosom LPM4 + dozvola rada osnovnog bita prekida ;GIE.

;CPU mora biti isključen pomoću LPM-a ;Nakon toga operacije DCO-a su dozvoljene.

;Kada tokom prekidne rutine LPM4 dođe do prekida, ;DCO operacije čekaju na izvršenje

................ ;Program nastavlja od ovog mesta ako je CPUoff bit ;resetovan tokom servisne rutine prekida.

;U ostalim slučajevima ostaje u OscOff načinu rada.

5.6 Osnovna podešavanja za aplikacije male potrošnje Ukazaćemo na osnovne principe rada koji su sa aspekta aplikacija tipa mikropotrošnje najvažniji: * Neiskorišćeni FETI ulazi se spajaju na napon napajanja * Analogi generator u LCD+ modulu se isključuje * Pinovi JTAG-a TMS, TCK i TDI se ne povezuju na napon napajanja. * Ulazi CMOS kola se postavljaju na definisano stanje * Bira se najniža moguća radna frekvenciju za jezgro i periferije * Omogućimo najslabiju pobudu na osetljaj ako se koristi LCD ili ga isključimo * Dozvoljavaju se prekidi nakon čega počinje izvršenje programa

Page 55: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

55

6 Periferije

Periferni moduli su povezani sa centralnom procesorskom jedinicom preko MAB-a, MDB-a i uslužne rutine za obradu prekida i linija za inicijaliziranje zahteva za prekid. Kod većine periferija MAB je petobitna magistrala, dok je MDB osmobitna ili šesnaestobitna magistrala. Moduli sa osmobitnom magistralom su povezani sa šesnaestobitnom centralnom procesorskom jedinicom preko magistrale konverzije. Kod razmene podataka sa ovim modulima koriste se instrukcije sa podatkom obima bajt. Operacije osmobitnih periferija definišu se pomoću opisanih pravila.

Slika 6.1: Veza modula/periferija

6.1 Konfiguracija digitalnih Ulaza-Izlaza

6.1.1 Osnovni port P0

Na nivou ovog porta funkcija pojedinog pina se može programski definisati, a takođe i svaki pin može da generiše zahtev za prekid. Za upravljanje radom ulazno-izlaznih pinova koriste se šest registara.

Osnovni modul-registri su locirani u okviru nižeg dela adresnog prostora koji je dodeljen periferijama pri čemu se modulima operiše podacima obima bajt. Registru se pristupa instrukcijom obima bajt koristeći apsolutni adresni režim.

Page 56: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

56

Slika 6.1.1: Konfiguracija porta P0

6.1.1.1 Upravljački registri porta P 0

Port P0 je povezan sa jezgrom procesora pomoću 8-bitne magistrale MDB i MAB magistrale. Pristup se vrši pomoću instrukcija obima bajt. Korišćenjem 6 upravljačkih registara ostvaruje se maksimalna fleksibilnost u radu sa digitalnim ulaz-izlaz-ima.

• svi pojedinačni ulazno-izlazni bitovi se nezavisno programiraju • moguća je bilo kakva kombinacija ulaznih, izlaznih i stanja prekida • prihvatanje zahteva za prekid spoljašnjih uređaja se u potpunosti

primenjuje za svih 8 bitova porta P0 6 registara su:

Registar Skraćeno obeležavanje

Tip pristupa registru

Adresa Početno stanje

Ulazni registar P0IN Čitanje 010h ----- Izlazni registar P0OUT Čitanje/Upis 011h nepromenjen Registar za smer P0DIR Čitanje/ Upis 012h resetovan Marker prekida P0IFG Čitanje/ Upis 013h resetovan Dozvola prekida na ivicu P0IES Čitanje/ Upis 014h nepromenjen Dozvola prekida rada P0IE Čitanje/ Upis 015h resetovan

Svi ovi registri su 8-mo bitni osim registara IE1 i IFG1 koji imaju još po dva bita. Ova

dva bita pripadaju registru specijalne funkcije SFR.

Page 57: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

57

Ulazni registar P0in

Ulazni registar se može jedino čitati (read-only), a očitana vrednost odgovara stanju na

U/I pinovima. Položaj pinova je definisan ulazom. Napomena: Upis podataka u registar P0in koji se može samo čitati (read-only) dovodi do uvećanja potrošnje u toku faze pisanja.

Izlazni registar P0out

Izlazni registar ukazuje na informaciju izlaznog bafera. To je osmobitni registar koji

čuva informacije o ulazno-izlaznim pinovima ako se port koristi kao izlazni. Izlazni bafer je moguće modifikovati pomoću svih instrukcija koje mogu pristupiti tom odredištu. Kada se čita, sadržaj izlaznog bafera se čita nezavisno od smera prenosa podataka. Promena smera ne menja sadržaj izlaznog bafera. Registar za pravac P0dir

Ovaj registar čine 8 nezavisnih bitova koji definišu smer prenosa podataka na U/I

pinu. Svi bitovi se resetuju pomoću PUC-a: Bit = 0: U/I pin se postavlja kao ulazni Bit = 1: U/I pin se postavlja kao izazni

Markeri prekida POIFG

Ovaj registar sadrži 6 markera koji sadrže informacije da li je prekid na odgovarajućem U/I pinu u toku ili ne:

Bit=0: Zahtev za prekid ne postoji Bit=1: Zahtev za prekid je iniciran na U/I pinu. Manipulacijom sadržaja registara P1OUT i P1DIR kao i registrima P2OUT i P2DIR moguće je setovati bitove registara P1IFG ili P2IFG. Resetovanje se postiže upisivanjem nule u marker prekida. Dozvola prekida rada na ivicu POIES

Ovaj registar sadrži bit za svaki U/I pin koji određuje koja promena aktivira marker prekida. Svih osam bitova koji odgovaraju pinovima od P0.7 do P0.0 se čuvaju u ovom registru. Bitovi imaju sledeće značenje: Bit=0: Marker prekida se setuje sa rastućom ivicom zahteva za prekid Bit=1: Marker prekida se setuje sa opadajućom ivicom zahteva za prekid

Page 58: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

58

Dozvola prekida rada POIE

Ovaj registar sadrži 6 bitova kojima se dozvoljava prekid. Dva bita dozvole prekida rada P0.0 i P0.1 se čuvaju u registru specijalne funkcije IE1.2 i IE1.3. Šest bitova koji odgovaraju pinovima od P0.7 do P0.2 se čuvaju u registru POIE.

Bitovi imaju sledeće značenje: Bit=0: Zahtev za prekid nije dozvoljen Bit=1: Zahtev za prekid je dozvoljen

6.1.1.2 Struktura porta P0 Port P0, i bitovi P0.3 do P0.7

Port P0 čine 5 izlaznih bitova označenih kao P0DIR, P0OUT, P0IFG, P0IE, P0IES i jedan ulazni pin P0IN koji se može samo čitati (read only). Logika koja je povezana na izlazne pinove je identična za sve.

Slika 6.1.2: Logička šema bitova od P0.7 do P0.3

Kao što se vidi sa slike marker prekida može da se postavi hardverski od strane ulaza

ili softverski pomoću programa. Postavljanje zahteva za prekid može biti na ivicu ili na nivo. Bitovi porta P0 od 2 do 7 imaju zajednički vektor prekida. Markeri prekida se ne resetuju automatski nakon što je P0.27 zahtev za prekid prihvaćen. Pojedinačno markeri od P0IFG.2 do P0IFG.7 se restuju softverski u odgovarajućoj uslužnoj rutini za obradu prekida.

Page 59: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

59

Port P0, Bit P0.2

Upravljanje bitom 2 se neznatno razlikuje od upravljanja bitovima od 3 do 7. Izlazni signal je određen stanjem bita P0OUT.2 ili od strane sadržaja signala TXD koji je izlaz 8-mo bitnog Tajmer/Brojač-a. Kad god je upravljački signal TXE postavljen tada se na izlazu multipleksera usmerava signal TXD koji se dovodi na pin P0.2, nezavisno od stanja P0DIR.2.

Slika 6.1.3: Šema bita P0.2

Marker prekida P0IFG.2 je isti za sve markere prekida od P0IFG.3 do P0IFG.7. Port P0, Bit P0.1

Bit P0.1 se neznatno razlikuje od bitova od 3 do 7. Signal zahteva za prekid se bira na osnovu stanja signala P0.1D ili pomoću Carry signala. Kad god je postavljen upravljački bit ISCTL u 8-mo bitnom Tajmer/Brojač upravljačkom registru TCCTL, izvor prekida je prebačen sa pina P0.1 na signal prenosa iz brojača.

Page 60: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

60

Slika 6.1.4: Šema bita P0.1

Marker prekida P0IFG.1 se automatski resetuje nakon prihvaćenog zahteva za prekid (IRQA). Port P0, Bit P0.0 Bit P0.0 je identičan bitovima od 3 do 7 sa izuzetkom što koristi poseban vektor prekida.

Slika 6.1.5: Šema bita P0.0

Marker prekida P0IFG.0 se automatski resetuje nakon prihvaćenog zahteva za prekid (IRQA). 6.1.1.3 Prekidne upravljačke funkcije porta P0

Stanjem porta P0 se upravlja pomoću 8 bitova koji postavljaju markere prekida, 8 koji dozvoljavaju rad prekida, 8 koji definišu da li se prekid prihvata na ivicu i tri različite

Page 61: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

61

vektorske adrese prekida. Ove adrese prekida se dodeljuju prekidnim rutinama u slučaju kada se zahtevi za prekid iniciraju preko sledećih pinova:

• P0.0 • P0.1/RXD • P0.2 do P0.7

6.1.2 Portovi opšte namene P1, P2

Na nivou ovih portova funkcija pojedinog pina se može programski definisati, a takođe i svaki pin može da generiše zahtev za prekid. Za upravljanje U/I pinovima koristi se 7 registara. Registri opšte namene su locirani u okviru nižeg dela adresnog prostora koji je dodeljen periferijama pri čemu se modulima operiše podacima obima bajt. Registru se pristupa instrukcijom obima bajt koristeći apsolutni adresni režim.

Slika 6.1.6: Konfiguracija portova P1 i P2

6.1.2.1 Upravljački registri portova P1 i P2

Portovi P1 i P2 su povezani sa jezgrom procesora preko 8-bitne magistrale MDB i MAB magistrale. Pristup se vrši pomoću instrukcija obima bajt. Korišćenjem sedam upravljačkih registara ostvaruje se maksimalna fleksibilnost u radu sa digitalnim ulaz-izlaz-ima:

• svi pojedinačni ulazno-izlazni bitovi se nezavisno programiraju • moguća je bilo kakva kombinacija ulaznih, izlaznih i stanja prekida • prihvatanje zahteva za prekid spoljašnjih uređaja se u potpunosti

primenjuje za svih 8 bitova portova P1 i P2

Page 62: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

62

Sedam registara za port P1 i sedam registara za port P2 su:

Registar Skraćeno obeležavanje

Tip pristupa registru

Adresa Početno stanje

Ulazni registar P1IN Čitanje 020h ----- Izlazni registar P1OUT Čitanje/Upis 021h nepromenjen Registar za smer P1DIR Čitanje/ Upis 022h resetovan Marker prekida P1IFG Čitanje/ Upis 023h resetovan Dozvola prekida na ivicu P1IES Čitanje/ Upis 024h nepromenjen Dozvola prekida rada P1IE Čitanje/ Upis 025h resetovan Funkcijski registri P1SEL Čitanje/ Upis 026h resetovan

Registar Skraćeno

obeležavanje Tip pristupa

registru Adresa Početno stanje

Ulazni registar P2IN Čitanje 028h ----- Izlazni registar P2OUT Čitanje/ Upis 029h nepromenjen Registar za smer P2DIR Čitanje/ Upis 02Ah resetovan Marker prekida P2IFG Čitanje/ Upis 02Bh resetovan Dozvola prekida na ivicu P2IES Čitanje/ Upis 02Ch nepromenjen Dozvola prekida rada P2IE Čitanje/ Upis 02Dh resetovan Funkcijski registri P2SEL Čitanje/ Upis 02Eh resetovan

Svi ovi registri su 8-mo bitni registri koji koriste apsolutni adresni režim rada, a

pristupa im se pomoću instrukcija obima bajt. Ulazni registri P1IN, P2IN

Oba ova ulazna registra imaju osobinu samo-čitanja i služe za ispitivanje signala prisutnih na U/I pinovima.

Napomena: Upis podataka u registare P1IN i P2IN koji se mogu samo-čitati (read-only) dovodi do uvećanja potrošnje u toku faze pisanja.. Izlazni registri P1OUT, P2OUT

Stanje na izlazima registara P1OUT i P2OUT ukazuje na informacije izlaznog bafera. To je osmobitni registar koji čuva informacije o stanju na ulazno-izlaznim pinovima kada se port koristi kao izlazni. Stanje izlaznog bafera je moguće modifikovati pomoću svih instrukcija koje mogu pristupiti tom odredištu. Kada se čita, sadržaj izlaznog bafera se čita nezavisno od smera prenosa podataka. Promena smera ne menja sadržaj izlaznog bafera. Registri za smer P1DIR, P2DIR

P1DIR/P2DIR registar čine 8 nezavisnih bitova koji definišu smer prenosa podataka na U/I pinu. Svi bitovi se resetuju pomoću PUC-a:

Bit = 0: U/I pin se postavlja kao ulazni Bit = 1: U/I pin se postavlja kao izazni

Page 63: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

63

Markeri prekida P1IFG, P2IFG

P1IFG/P2IFG registar sadrži 8 markera koji čuvaju informacije da li je prekid na odgovarajućem U/I pinu u toku ili ne Bit=0: Zahtev za prekid ne postoji Bit=1: Zahtev za prekid je iniciran na U/I pinu. Manipulacijom sadržaja registara P1OUT i P1DIR kao i registrima P2OUT i P2DIR moguće je setovati bitove registara P1IFG ili P2IFG. Resetovanje se postiže upisivanjem nule u marker prekida. Dozvola prekida na ivicu P1IES, P2IES

P1IES/P2IES registar sadrži bit za svaki U/I pin koji određuje kakva promena ulaznog signala, uzlazna ili silazna ivica aktivira marker prekida. Svih osam upravljačkih bitova koji odgovaraju pinovima od P1.0 do P1.7 i pinovima od P2.0 do P2.7 se čuvaju u registrima P1IES i P2IES respektivno.Bitovi imaju sledeće značenje:

Bit=0: Marker prekida se setuje sa rastućom ivicom zahteva za prekid Bit=1: Marker prekida se setuje sa opadajućom ivicom zahteva za prekid Dozvola prekida rada P1IE, P2IE

P1IE/P2IE registar sadrži 8 bitova kojima se dozvoljava prekid. Svih 8 upravljačkih bitova koji odgovaraju pinovima od P1.0 do P1.7 i pinovima P2.0 do P2.7 se čuvaju u registrima P1IE i P2IE respektivno. Bitovi imaju sledeće značenje: Bit=0: Zahtev za prekid nije dozvoljen Bit=1: Zahtev za prekid je dozvoljen Funkcijski registri P1SEL, P2SEL

P1SEL/P2SEL registar sadrži 8 nezavisnih bitova koji određuju funkciju pristupa U/I pinovima. Funkcija Port ili Modul funkcija šalje podatak na pin ili čita podatak sa njega. Svi bitovi se resetuju pomoću PUC-a.

Bit=0: Funkcija Port - ulazni ili izlazni podaci su određeni port modulom Bit=1: Modul funkcija - ulazni ili izlazni podaci su određeni modulom, a ne port modulom. 6.1.2.2 Struktura portova P1 i P2

Raspored pinova portova P1 i P2 je identičan. Svakom pinu porta P1 i P2 se može pristupiti radi čitanja i upisa podataka.

Page 64: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

64

Slika 6.1.7: Šema jednog bita u portu P1, P2

6.1.2.3 Prekidne upravljačke funkcije portova P1 i P2

Stanjem portova P1 i P2 se upravlja pomoću 8 bitova koji postavljaju markere prekida, 8 koji dozvoljavaju rad prekida, 8 koji definišu da li se prekid prihvata na ivicu i jednu vektor adresu prekida za oba porta. Svi upravljački bitovi prekida se čuvaju u U/I adresnom polju. Svaki prekid se definiše pomoću tri markera:

• Marker prekida, od P1IFG.0 do P1IFG.7 i od P2IFG.0 do P2IFG.7 • Bitovi registara dozvole prekida, od P1IE.0 do P1IE.7 i od P2IE.0 do P2IE.7 • Bitovi registara dozvole prekida na ivicu, od P1IES.0 do P1IES.7 i od P2IES.0 do

P2IES.7 6.1.3 Portovi opšte namene P3 i P4

Portovi opšte namene P3 i P4 su identični i objedinjuju sve funkcije koje mogu pojedinačno da se selektuju. Registri opšte namene su smešteni u adresni opseg dodeljen periferijama gde se čuvaju svi bajt moduli. Registru se pristupa pomoću bajt instrukcija koristeći apsolutni adresni režim.

Page 65: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

65

Slika 6.1.8: Konfiguracija portova P3 i P4

6.1.3.1 Upravljački registri portova P3 i P4

Portovi P3 i P4 su povezani sa jezgrom procesora preko 8-bitne MDB magistrale i magistrale MAB. Pristupa im se pomoću instrukcija obima bajt koristeći apsolutni adresni režim. Četiri upravljačkih registara svakog pojedinačnog porta obezbeđuju maksimalnu fleksibilnost u aplikaciji digitalnog Ulaza-Izlaza:

• Svi individualni U/I bitovi se nezavisno programiraju • Moguća je proizvoljna kombinacija ulaza. • Moguća je proizvoljna kombinacija port ili modul funkcija.

Četiri registara koji se dodeljuju svakom portu su:

Registar Skraćeno obeležavanje

Tip pristupa registru

Adresa Početno stanje

Ulazni registar P3IN Čitanje 018h ----- Izlazni registar P3OUT Čitanje/ Upis 019h nepromenjen Registar za smer P3DIR Čitanje/ Upis 01Ah resetovan Port registri P3SEL Čitanje/ Upis 01Bh resetovan

Registar Skraćeno

obeležavanje Tip pristupa

registru Adresa Početno stanje

Ulazni registar P4IN Čitanje 01Ch ----- Izlazni registar P4OUT Čitanje/ Upis 01Dh nepromenjen Registar za smer P4DIR Čitanje/ Upis 01Eh resetovan Port registri P4SEL Čitanje/ Upis 01Fh resetovan

Page 66: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

66

Svi ovi registri su 8-mo bitni registri koji koriste apsolutni adresni režim i pristupa im se pomoću instrukcija obima bajt.

Ulazni registri P3IN, P4IN

Oba ova ulazna registra imaju osobinu samo čitanja i služe za ispitivanje signala U/I pinova. Pinovi bi trebalo da budu ulazni. Izlazni registri P3OUT, P4OUT

Izlazni registri P3OUT i P4OUT ukazuju na informacije izlaznog bafera, osmobitnog registra koji sadrži izlazne informacije ulazno/izlaznih pinova ako se koristi kao izlazni. Izlazni bafer može da se modifikuje pomoću svih instrukcija koje se upisuju na odredištu. Ako se čita, sadržaj izlaznog bafera se čita nezavisno od pravaca. Promena pravca ne menja sadržaj izlaznog bafera. Registri za smer P3DIR, P4DIR

Svaki registar sadrži 8 nezavisnih bitova koji određuju da li će pinovi biti ulazni ili izlazni. Svi bitovi se resetuju pomoću PUC-a. Bit=0: U/I pin se prebacuje da bude ulazni Bit=1: U/I pin se prebacuje da bude izlazni

Funkcijski registri P1SEL, P2SEL

Svaki registar sadrži 8 nezavisnih bitova koji definišu funkciju za pristup U/I pinovima. Port funkcija ili funkcija definisanog modula šalje podatak na pin ili čita podatak sa njega. PUC resetuje sve bitove. Bit=0: Port funkcija- ulazni ili izlazni podaci su definisani port modulom Bit=1: Modul funkcija - ulazni ili izlazni podaci su definisani modulom, a ne port modulom.

6.1.3.2 Struktura portova P3 i P4

Logika pina svakog pojedinačnog signala portova P3 i P4 je određena specifičnom konfiguracijom uređaja. U ovoj specifikaciji uređaja, određena je funkcija „čisto“ digitalni port ili port koji deli funkciju sa modulom.

Pinovima koji se jedino koriste pri digitalnoj funkciji porta se isključivo upravlja pomoću bitova u odgovarajućim port registrima. Pinovima koji se koriste pri digitalnoj funkciji porta i funkciji modula se upravlja resetovanjem odgpovarajućeg PnSEL.x bita. Svih osam port signala mogu zasebno da se konfigurišu pomoću hardvera tako da budu:

• jedino port pinovi • jedino pinovi funkcije modula • softverski konfigurisani za port ili funkciju modula

Page 67: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

67

Slika 6.1.9: Šema bitova P3.x/P4.x

6.2 Univerzalni Tajmer/Port modul Ovaj modul podržava nekoliko osnovnih sistemskih funkcija:

• podrška radu šest nezavisnih izlaza • podrška radu dvaju 8-mo bitnih brojača koji mogu kaskadno da se vežu • podrška radu preciznom komparatoru kod A/D konverzije

Page 68: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

68

Slika 6.2.1: Konfiguracija Tajmer/Port modula

6.2.1 Operacije Tajmer/Port modula

Tajmer/Port modul se konfiguriše pomoću bitova upravljačkog registra TPCNTL pri čemu može da radi na veći broj načina.

Page 69: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

69

6.2.1.1 8-mo bitni brojač TPCNT1 Tajmer/Port-a

Upisivanje i čitanje informacija iz brojača TPCNT1 je omogućeno pomoću odgovarajućih instrukcija. Čitanje podataka sa tajmera može biti asinhrono kada su postavljeni CMP ili ACLK. Da je čitanje podataka ispravno pokazuju 2 ista uzorka od ukupno 3 uzorka koja se softverski očitavaju.

Kada je izvor takta za brojač MCLK tada je čitanje podataka ispravno. Sve dok je MCLK postavljen odgovarajućim instrukcijama tada je vrednost očitanih podataka jednaka vrednosti brojača koji se kontinualno inkrementira sve dok je EN1 postavljen.

U brojač se podaci mogu uvek upisivati. Nakon upisivanja podataka, ponovno čitanje podataka iz brojača može da se razlikuje ukoliko se taktuje između čitanja i pisanja.

Tri različita izvora takta, MCLK, ACLK ili CMP mogu da startuju brojač. Brojač se inkrementira na svaku pozitivnu ivicu takta ulaznog signala EN1. Brojač je

aktivan kada je postavljen jedan od signala ENA ili ЕNB. Pomoću sistem reseta oba bita se resetuju, a samim tim i funkcije brojača prestaju. Resetovanjem oba bita dozvole čuvaju se postojeći podaci na brojaču.

Signal RC1 (ripple carry signal) je jak sve dok je brojač na vrednosti 0FFh. Negativna ivica RC1 signala postavlja RC1FG bit u TPCTL registar.

Marker RC1FG se postavlja kada brojač TPCNT1 broji od 0FFh do 0, a marker EN1 se postavlja kada brojač pređe u neaktivno stanje ali ne i kada su signali ENA i ENB izvori prekida rada brojača.

6.2.1.2 8-mo bitni brojač TPCNT2 Tajmer/Port-a

Razlika između operacija brojača TPCNT2 i brojača TPCNT1 se ogleda u izvoru signala dozvole i taktnih signala. Brojač se uvek aktivira pomoću 8-mo bitnih operacija. Tri različita taktna izvora, MCLK, ACLK ili TPIN.5 mogu da startuju brojač.

Signal RC2 (ripple carry signal) je jak sve dok je brojač na vrednosti 0FFh. Negativna ivica RC2 signala postavlja RC2FG bit u TPCTL registar.

Marker RC2FG se postavlja kada brojač TPCNT2 broji od 0FFh do 0. 6.2.1.3 16-to bitni brojač Tajmer/Port-a

TPCNT1 8-mo bitni brojač i TPCNT2 8-mo bitni brojač mogu kaskadno da se vežu tako da formiraju 16-to bitni brojač. Prilikom ovog postupka u upravljačkom registru se postavlja bit B16.

Čitanje ili upisivanje podataka u brojač se izvodi pomoću instrukcija obima bajta. Kod brojača TPCNT1 i TPCNT2 čitanje i upisivanje podataka je sekvencijalno.

Signal dozvole brojača TPCNT1 predstavlja i signal dozvole 16-to bitnog brojača, a izvor takta je isti za oba brojača i za TPCNT1 i TPCNT2 brojač.

Page 70: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

70

Slika 6.2.2: Tajmer/Port brojač, 16-to bitna operacija

Četiri signala, ENA, ENB, TPSSEL0 i TPSSEL1 upravljaju operacijama kaskadno

vezanih brojača, dozvolom brojanja i izvorom takta brojača:

16-to bitni brojač bezuslovno mogu da zaustave i aktiviraju signal sa pina CIN, Sxx ili jedan od tri taktna signala, ACLK, MCLK ili CMP.

Primena signala TPIN.5, TPIN.5 invertovan, CMP ili CMP invertovan na EN1 ulaz brojača dovodi do inkrementacije 16-to bitnog brojača svakim taktom ACLK ili MCLK. Ova osobina brojača je iskorišćena kako bi se izmerila perioda signala koji se dovode na pin CMP ili pin TPIN.5.

Signal RC2 (ripple carry signal) je postavljen sve dok je brojač na vrednosti 0FFFFh. Marker RC2FG se postavlja kada brojač broji od 0FFFFh do 0. Marker EN1FG se

postavlja kada brojač pređe u neaktivno stanje ali ne i kada su ENA i ENB izvori prekida rada brojača.

Page 71: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

71

6.2.2 Registri Tajmer/Port-a Struktura Tajmer/Port modula je obima bajt i ovom modulu se pristupa instrukcijama

koje su takođe obima bajt. Registar Skraćeno

obeležavanje Tip pristupa

registru Adresa Inicijalno stanje

1. TP upravljači registar TPCTL čitanje/ upis 04Bh resetovan 2. TP brojač 1 TPCNT1 čitanje/ upis 04Ch nepromenjen 3. TP brojač 2 TPCNT2 čitanje/ upis 04Dh nepromenjen 4. TP O/P registar podataka TPD čitanje/ upis 04Eh resetovan 5. TP registri dozvole podataka TPE čitanje/ upis 04Fh resetovan

1. Upravljački registar Tajmer/Porta-a Informacije koje se čuvaju u upravljačkom registru određuju način rada Tajmer/Port

modula.

Slika 6.2.3: Upravljački registar Tajmer/Port-a

Bit 0: Marker dozvole EN1FG se postavlja sa negativnom ivicom EN1 signala dozvole brojača TPCNT1, ukoliko signal dozvole dolazi sa pina CMP ili pina TPIN.5. Ovaj događaj postavlja EN1FG bit koji se softverski resetuje, u suprotnom ostaje postavljen. Marker EN1FG se koristi tokom Tajmer/Port prekidne servisne rutine kako bi ukazao da li prekid dolazi kada je postavljen EN1 ili usled ripple/carry signala koji se postavlja kada brojač broji od 0FFh do 0. Bit 1. Marker RC1FG ukazuje da je TPCNT1 brojač izbrojio od 0FFh do 0 (stanje prekoračenja). Ovaj događaj postavlja RC2FG bit koji se softverski resetuje, u suprotnom ostaje postavljen. Ovaj bit se koristi tokom Tajmer/Port servisne rutine da ukaže na izvor prekida. Bit 3, 4, 5: EN1 signal dozvole brojača TPCNT1 može da se pročita. Nivo ili signal bita EN1 su definisani pomoću upravljačkih signala ENA, ENB, TPSSEL0.

Page 72: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

72

Bit 7,6: Pomoću bitova TPSSEL0 i TPSSEL1 se upravlja multiplekserom kako bi omogućio jedan od tri moguća izvora takta brojača TPCNT1.

2. Brojači TPCNT1 i TPCNT2 Tajmer/Port-a Oba brojača su 8-mo bitna i čitanje i upisivanje podataka se vrši pomoću instrukcija

koje su obima bajt.

Slika 6.2.4: Registri Tajmer/Port brojača

Upisivanje i čitanje podataka iz oba brojača je nezavisno. Resetovanje brojača se vrši

pomoću CLEAR instrukcije. 3. Registar podataka Tajmer/Port-a Registar podataka održava vrednost šest izlaza i dva upravljačka bita komparatora.

Slika 6.2.5: Tajmer/Port registar podataka

Bit 0...5: Bitovi od TPD.0 do TPD.5 čuvaju podatke na izlaznim pinovima od TP.0 do TP.5. Digitalni signali će biti dovedeni na ove pinove kada bitovi od TPE.0 do TPE.5 omoguće tri izlazna stanja. Resetuju se kad god se dogodi PUC sistem reset. Signal na pinu TP.5 može da se pročita pomoću EN1 bita dozvole smeštenog u upravljačkom registru TPCTL. Bit 6: CPON bit se koristi kako bi se uštedela struja dok je komparator u resetovanom stanju. Kad god je PUC sistem reset aktivan, CPON bit je resetovan i komparator je neaktivan. Bit 7: Upravljački bit B16 određuje način rada dva brojača TPCNT1 i TPCNT2. Brojači mogu da rade nezavisno kao dva 8-mo bitna brojača ili zajedno kao jedan 16-to bitni brojač. Pristupa im se uvek pomoću instrukcija obima bajt. Kada rade u 16-to bitnom režimu bilo koje čitanje

Page 73: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

73

ili upisivanje podataka se vrši posebno za brojač TPCNT1, a posebno za TPCNT2 brojač. B16 = 0: Brojači rade kao dva 8-mo bitna brojača B16 = 1: Brojači rade kao jedan 16-to bitni brojač, gde je TPCNT1 bit najmanje težine, a TPCNT2 bit najveće težine. Brojač TPCNT2 se inkrementira kada brojač TPCNT1 broji od 0FFh do 0. 4. Registar dozvole Tajmer/Port-a Registar dozvole Tajmer/Port-a zadržava vrednost šest izlaza i dva bita koji služe za

indikaciju prekoračenja brojača.

Slika 6.2.6: Tajmer/Port registar dozvole

Bit 0...5: Bitovi od TPE.0 do TPE.5 zadržavaju signale dozvole na izlazima od TP.0 do TP.5. Resetuju se kad god je PUC sistem reset aktivan dok su izlazi u stanju visoke impedanse. Bit 6,7: Pomoću bitova TPSSEL2 i TPSSEL3 se upravlja multiplekserom kako bi omogućio jedan od četiri moguća izvora takta brojača TPCNT2. Kada je postavljen bit B16, bitovi TPSSEL2/3 su u stanju “don't care” i izvor takta je isti za oba brojača TPCNT2 i TPCNT1.

6.3. Tajmer_A 6.3.1 Rad Tajmera_A

Osnovni gradivni blokovi 16-bitnog Tajmera_A su:

• Tajmer koji kontinualnoa broji do unapred definisane vrednosti, broji do predefinisane vrednosti i nazad do nule pri čemu se rad tajmera može zaustaviti

• Izvor takta tajmera koji se bira softverski • Selektovani izlaz takta se može podeliti sa 1, 2, 4 ili 8 • Postoje 5 registara sa zahvatanjem/kompariranjem (capture/compare) pri čemu svaki

registar može da zahvata jedno stanje, a dva signala za zahvatanje se kontrolišu od strane hardvera ili softvera

• Postoje 5 izlazna modula koji podržavaju impulsno-širinskou modulaciju

Page 74: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

74

Upravljački registar TACTL konfiguriše stanje Tajmera_A. Ovaj registar definiše

osnovne načine rada 16-to bitnog tajmera. Pobudna taktna funkcija se unapred deli, a četiri načina rada je moguće izabrati. Takođe postoji funkcija brisanja kao i generisanje prekida nakon prebačaja tajmera. Prebačaj se generiše kada tajmer dostigne vrednost 0000h i ne zavisi od toga da li broji naviše ili naniže. Sva 5 registara za zahvatanje/kompariranje (capture/compare registri) rade nezavisno i individualno se konfigurišu.

Page 75: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

75

Slika 6.3.1: Šematski prikaz Tajmera_A

6.3.1.1 Rad Tajmera

16-bitni tajmer ima četiri režima rada koja se definišu od strane dva upravljačka bita MC1 i MC0 koja su sastavni deo upravljačkog registra TACTL, plus signal EQU0 koji je izlaz komparatora u bloku 0 registra za zahvatanje/kompariranje. Taktna pobuda tajmera se

Page 76: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

76

bira preko bitova SSEL1 i SSEL0 koji su delovi upravljačkog registra TACTL. Izabrani takt se direktno dovodi na 16-to bitni tajmer ili se deli sa 2, 4 ili 8. Pobudni signal može biti interni ili eksterni.

Slika 6.3.1: Blok šema 16-to bitnog tajmera

Pobudni takt se bira pomoću dva upravljačka bita SSEL0 i SSEL1.

Slika 6.3.2: Blok šema biranja pobudnog takta i ulazni delitelj

Upravljanje režimom rada tajmera i 16-to bitni tajm er

Inkrementiranje i dekrementiranje16-to bitnog tajmera se vrši usponskom ivicom taktnog signala. Pristup radi čitanja ili upisa podataka se obavlja softverski. Različiti režimi rada se biraju bitovima MC1 i MC0.

Page 77: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

77

Slika 6.3.3: Blok šema tajmera

Četiri režima rada tajmera su definisana na sledeći način:

Upravljanje režimom rada Režim rada Opis MC1 MC0

0 0 Stop Rad tajmera je zaustavljen 0 1 Brojanje naviše Tajmer broji naviše do vrednosti

registra kompariranja 0 (Compare Register 0)

1 0 Kontinualni Tajmer kontinualno broji naviše 1 1 Brojanje naviše/naniže Tajmer broji naviše sve dok se

njegova vrednost ne izjednači sa vrednosti registra kompariranja 0 (Compare Register 0), a zatim odbrojava nazad do 0.

1. Režim rada Stop (Stop mod)- Rad tajmera je zaustavljen. Kada se ukine brojač on broji shodno selektovanom režimu rada startujući od aktuelnog sadržaja.Smer brojanja je isti kao kad je bio stopiran.Ništa se ne resetuje.

2. Režim rada Brojanje naviše (UP mod)- Brojač broji naviše do vrednosti koja se čuva u registru CCR0. Tajmer startuje sa tekuće vrednosti. Kada se vrednost tajmera izjednači sa vrednošću registra CCR0 tajmer se resetuje i ponovo počinje da broji od nule.

Page 78: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

78

CCR0 definiše periodu u režimu rada brojanje naviše (UP mod).

Marker CCIFG0 se postavlja kada vrednost tajmera postane jednaka vrednosti registra CCR0, dok se marker TAIFG postavlja kada tajmer broji od vrednosti CCR0 do 0. Svi markeri prekida se postavljaju nezavisno od odgovarajućeg bita dozvole prekida rada.

3. Kontinualni režim rada ( Continuous mod) - Tajmer počinje da broji od trenutne vrednosti registra i broji naviše do 0FFFFh, a zatim se resetuje na nulu.

Kontinualni režim rada se kiristi kada je potrebno više od jednog odmeravanja.

Page 79: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

79

Marker TAIFG se postavlja kada tajmer odbrojava od 0FFFFh do 0. Markeri prekida

se postavljaju nezavisno od odgovarajućeg bita dozvole prekida rada. Registar za zahvatanje/kompariranje CCR0 radi na isti način kao ostali registi kompariranja u kontinualnom režimu rada.

4. Režim rada Brojanje Naviše/Naniže (UP/DOWN mod) –Tajmer broji naviše do vrednosti koja se čuva u registru CCR0, a zatim menja smer i broji nazad do 0.

Marker prekida CCIFG0 se postavlja kada tajmer broji naviše od CCR-1 do CCR0, dok se marker prekida TAIFG postavlja kada tajmer broji naniže od 0001h do 0000h. Blok za zahvatanje/kompariranje

Pet identična bloka omogućavaju fleksibilno upravljanje i procesiranje signala u RAM memoriji. Bilo koji od blok registara se može koristiti za pamćenje podataka tajmera u datom

Page 80: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

80

trenutku ili za generisanje vremenskog intervala. Svaki put kada se izede pamćenje ili završi vremenski interval, ako je odgovarajući prekid dozvoljen, odgovarajući blok za zahvatanje/kompariranje generiše prekid. CAPx bit koji određuje režim rada, a sastavni je deo upravljačkog registra CCTLx, selektuje operaciju kompariranja (CAPx je resetovan) ili operaciju pamćenja (CAPx je postavljen). Ovi bitovi za definisanje režima rada memorisanja CCMx1 i CCMx0 koji su sastavni deo upravljačke reči CCTLx definišu pod kojim uslovima se izvršava ova funkcija pamćenja kakve su memorija na prednju ivicu, memorija na zadnju ivicu ili na obe.

Oba bita za dozvolu rada prekida CCIEx i marker prekida CCIFGx se koriste kod režima rada memorisanja i kompariranja. CCIFG se postavlja na događaj memorisanje ili kompariranje. Upravljački bit CAPx definiše da li će se on koristiti za memorisanje ili kompariranje.

Ulazi CCIxA i CCIxB su povezani na eksterne pinove ili interne signale. Kod različitih tipova procesora različito je povezivanje ovih ulaza.

Slika 6.3.4: Blok za zahvatanje/kompariranje

Ulazni izvorni signal za logiku memorisanja se selektuje na osnovu stanja dva

upravljačka bita CCISx1 i CCISx0. On se može direktno pročitati od strane softvera preko bita CCIx ili se sinhronizovati sa signalom za upoređivanje EQUx. Signal za memorisanje koji se postavlja nakon prekida za memorisanje/kompariranje i memoriše vrednost tajmera u ovaj registar za memorisanje sinhronizuje se sa taktom tajmera.

Page 81: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

81

6.3.2 Registri Tajmera_A

Hardver 16-to bitnog Tajmer_A modula je struktuiran na nivou reči i može mu se pristupiti od strane instrukcija obima reč.

Registri Skraćeno obeležavanje

Tip pristupa registru

Adresa Početno stanje

• Tajmer_A upravljački registar

TACTL Čitanje/Upis 160h POR reset

• Tajmer_A registar TAR Čitanje/ Upis 170h POR reset

• Cap/Com upravljački registar0

CCTL0 Čitanje/ Upis 162h POR reset

• Capture/Compare registar0

CCR0 Čitanje/ Upis 172h POR reset

• Cap/Com upravljački registar1

CCTL1 Čitanje/ Upis 164h POR reset

• Capture/Compare registar1

CCR1 Čitanje/ Upis 174h POR reset

• Cap/Com upravljački registar2

CCTL2 Čitanje/ Upis 166h POR reset

• Capture/Compare registar2

CCR2 Čitanje/ Upis 176h POR reset

• Cap/Com upravljački registar3

CCTL3 Čitanje/ Upis 168h POR reset

• Capture/Compare registar3

CCR3 Čitanje/ Upis 178h POR reset

• Cap/Com upravljački registar4

CCTL4 Čitanje/ Upis 16Ah POR reset

• Capture/Compare registar4

CCR4 Čitanje/ Upis 17Ah POR reset

• Vektor prekida registar

TAIV Čitanje 12Eh POR reset

Adrese 16Ch, 16Eh, 17Ch i 17Eh su rezervisane za naknadna proširenja. 6.3.2.1 Upravljački registar TACTL Tajmera_A

Svi upravljački bitovi koji se odnose na tajmer i njegov rad smešteni su u

upravljačkom registru TACTL. Svi upravljački bitovi se automatski resetuju signalom POR, dok PUC nema efekte na njih. Upravljačkom registru se pristupa instrukcijama obima reč.

Page 82: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

82

Bit 0: TAIFG: Ovaj marker ukazuje na prekoračenje tajmera U UP mod-u: TAIFG se setuje kada tajmer broji od vrednosti CCR0 do 0000h. U Continuous mod-u: TAIFG se setuje kada tajmer broji od 0FFFFh to 0000h. U UP/DOWN mod-u: TAIFG se setuje kada tajmer odbrojava do 0000h.

Bit 1: TAIE bit (Timer Overflow Interrupt Enable): Kada je bit postavljen dozvoljen je zahtev za prekidom, u suprotnom, kada je resetovan zahtev za prekidom nije dozvoljen. Bit 2: CLR bit (Timer Clear): Tajmer i ulazni delitelj se restuju nakon POR-a ili ako

je postavljen bit CLR. CLR se automatski resetuje hardverskim putem i uvek se čita kao 0. Tajmer počinje sa radom sa sledećom validnom ulaznom ivicom, sa smerom naviše ako je to dopušteno od strane upravljačkog bita.

Bit 3: Nije u upotrebi Bit 4 do 5: MC1 MC0 Brojački režim rada Komentar, Tajmer...

0 0 Stop je zaustavljen 0 1 Naviše do CCR0 broji do CCR0 i restartuje se na 0 1 0 Kontinualno naviše broji kontinualno naviše 65536 koraka 1 1 Naviše/Naniže Broji naviše do CCR0, zatim nazad do 0, ...

Bit 6 do 7: Ulazni upravljački bitovi delitelja ID1 ID0 Operacija Komentar,Ulazni signal... 0 0 Prolaz dolazi na tajmer 0 1 /2 je podeljen sa 2 1 0 /4 je podeljen sa 4 1 1 /8 je podeljen sa 8

Bit 8 do 10: SSEL2 SSEL1 SSEL0 O/P signal Komentar

0 0 1 TACLK koristi se signal na spoljašnjem pinu 0 0 1 ACLK koristi se pomoćni takt ACLK 0 1 0 MCLK koristi se takt MCLK 0 1 1 INCLK videti opis uređaja 1 X X ---- rezervisan

Bit 11 do 15: Nisu u upotrebi Napomena: Ako se rad tajmera modifikuje od strane upravljačkih bitova koji su sastavni deo upravljačkog registra TACTL, rad tajmera bi trebao da se zaustavi u toku modifikacije. Ulazni selektovani bitovi, ulazni bitovi delitelja i bit za brisanje tajmera predstavljaju kritične modifikacije. Asinhroni ulazni takt i sistemski takt korišćen od strane softvera mogu biti

Page 83: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

83

kritični sa aspekta ivica tako da dovedu do neispravnog rada tajmera. Preporučene instrukcije su:

1. Modifikovati upravljački registar i zaustaviti rad tajmera 2. Započeti rad tajmera

Primer: MOV #0286h, &TACTL ; ACLK/8, rad tajmera zaustavljen, tajmer obrisan BIS #10h, &TACTL ; Započet rad tajmera sa kontinualnim režimom naviše 6.3.2.2 Upravljački Registar CCTL za zahvatanje/kompariranje

Scaki blok za zahvatanje/kompariranje (capture/compare block) ima svoju upravljačku reč CCTLx.

Svi bitovi CCTLx-a se resetuju pomoću POR-a, dok PUC nema nikakvog uticaja na njih. Bit 0: Marker prekida za zahvatanje/kompariranje CCIFGx. U Capture Mod-u: Ako je postavljen, vrednost tajmera je zapamćena u registru CCRx. U Compare Mod-u: Ako je postavljen, vrednost tajmera i registra CCRx je ista. CCIFG0 marker: CCIFG0 se automatski resetuje kada je prihvaćen zahtev za prekid saglasno šemi prekida MSP430 familije. CCIFG1 do CCIFG4 markeri: Marker kojim se označava aktuelni vektor prekida se automatski resetuje kada se TAIV isčita. Ako se resetuje bit dozvole prekida nijedan vektor neće biti generisan, dok će marker biti postavljen nezavisno. Markeri CCIFG1 do CCIFG4 se resetuju softverskim putem. Bit 1: COV (Capture overflow flag) . CAP = 0 (Selektuje se Compare mode): Ni jedan događaj zahvatanja neće setovati bit COV. CAP = 1 (Selektuje se Capture mode): Marker prekoračenja COV se postavlja onda kada se desi drugi događaj zahvatanja, pre isčitavanja registra zahvatanja. Marker prekoračenja se ne resetuje isčitavanjem registra za zahvatanje. Bit 2: OUTx bit je na odgovarajućem izlazu ako je OUTMODx jednak 0.

Page 84: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

84

Bit3: Ulazni signal zahvatanja/kompariranja CCIx: U Capture Mod-u: Mogu da se pročitaju selektovani ulazni signali (CCIxA, CCIxB, VCC ili GND) U Compare Mod-u: CCI je resetovan Bit 4: Dozvola prekida rada CCIEx: Zahtev za prekid signala bloka x za zahvatanje/kompariranje je dozvoljen ili nije dozvoljen. Zahtev za prekid je aktivan ukoliko su postavljeni bit dozvole, marker CCIFGx i GIE.

0: prekid nije dozvoljen 1: dozvoljen prekid Bit 5 do 7: Izlazni režim rada Opis 0 izlazni jedino Podaci OUTx bita određuju Outx signal 1 setovanje EQUx signal za zahvatanje postavlja Outx signal 2 promena stanja/reset EQUx signal za zahvatanje menja stanje signala Outx, dok ga EQU0 resetuje 3 setovanje/reset EQUx signal za zahvatanje postavlja signal Outx, dok ga EQU0 resetuje 4 promena stanja EQUx signal za zahvatanje menja stanje signala Outx 5 reset EQUx signal za zahvatanje resetuje signal Outx 6 promena stanja/setovanje EQUx signal za zahvatanje menja stanje signala Outx, dok ga EQU0 postavlja 7 reset/setovanje EQUx signal za zahvatanje resetuje Outx signal, dok ga EQU0 postavlja Bit 8: CAP: definiše da li blok za zahvatanje/kompariranje i pojedinačni blokovi prekida rade u režimu zahvatanja ili kompariranja 0: režim rada za zahvatanje 1: režim rada kompariranja Bit 9: jedino čitanje, uvek se čita kao 0 Bit 10: SCCIx ulazni signal za zahvatanje/kompariranje sinhronizovan sa izlaznim signalom za kompariranje EQUx: Odabrani ulazni signal (CCIxA, CCIxB, Vcc ili GND) se čuva u transparentnom digitalnom logičkom kolu zajedno sa signalom EQUx i mogu da se pročitaju podaci iz njega Bit 11: Signal za zahvatanje/kompariranje može da se koristi u asinhronom režimu rada ili da se sinhronizuje sa taktom tajmera. U asinhronom režimu rada (SCS je resetovan) odmah nakon zahteva se postavlja CCIFG i takođe se podaci sa tajmera odmah zahvataju. Ovo je od koristi ukoliko je perioda izvornog signala za zahvatanje daleko manja od takta tajmera. Podaci registra za zahvatanje mogu biti nepodesni ukoliko su takt tajmera i izvor za zahvatane kritični sa aspekta ivica. Sinhronizovani režim rada (SCS je postavljen) se normalno koristi i podaci zahvatanja su uvek validni. 0: asinhrono zahvatanje 1: sinhrono zahvatanje

Page 85: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

85

Bit 12, 13: CCIS1 i CCIS0 su bitovi koji određuju izvor kojim se obezbeđuju događaji zahvatanja u režimu rada zahvatanja. Ovi upravljački bitovi se ne koriste tokom režima rada kompariranja.

0 postavljen ulazni signal CCIxA 1 postavljen ulazni signal CCIxB 2 GND na visoku 3 Vcc na nisku

Bit 14, 15: Režim rada zahvatanja Opis 0 nije dozvoljen režim rada zahvatanja nije dozvoljen 1 pozitivna ivica zahvatanje se dešava sa rastućom ivicom 2 negativna ivica zahvatanje se dešava sa opadajućom ivicom 3 obe ivice zahvatanje se dešava i sa rastućom i sa opadajućom ivicom Napomena: Ukoliko se rad bloka za zahvatanje/kompariranje modifikuje pomoću CAP bita za zahvatanje/kompariranje koji je sastavni deo CCRx registra, ne dolazi do istovremenog događaja zahvatanja u režimu rada zahvatanja i režimu kompariranja. Vrednost registra za zahvatanje/kompariranje je nepredviđena. Preporučene instrukcije su:

1. Modifikovati upravljački registar da pređe iz režima kompariranja u režim zahvatanja

2. Izvršiti zahvatanje Primer: BIS #CAP, &CCTL2 ; Zahvatanje sa registrom CCR2 XOR #CCIS1, &CCTL2 ; Softversko zahvatanje: CCIS0=0, ;režim zahvatanja=3 6.3.2.3 Registri vektora prekida Tajmera_A Dva prekidna vektora su pridružena 16-to bitnom Tajmer_A modulu:

• Vektor za CCR0 registar ima najviši prioritet u odnosu na sve Tajmer_A prekide. CCR0 se koristi da definiše periodu u toku UP i UP/DOWN režima rada. Zbog toga se opslužuje najvećim prioritetom.

• Multipleksirani vektor za druge registre za zahvatanje/kompariranje. 16-to bitna vektor reč TAIV ukazuje na prekid koji tekuće ima najviši prioritet.

Vektor prekida CCR0

Marker prekida koji je pridružen registru CCR0 se postavlja ako je vrednost tajmera jednaka vrednosti registra za kompariranje. Vektor reč, TAIFG marker i markeri od CCIFG1 do CCIFG4

Vektor reč se pridružuje TAIFG markeru kao i svaki od ostala četiri registara za

zahvatanje/kompariranje od CCR1 do CCR4 koji se dodatno kombinuju sa prioritetnom šemom opsluživanja. Pri tom, CCIFGx koji ima najviši prioritet generiše broj od 0 (marker

Page 86: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

86

nije postavljen) do 12. Kodirani broj se može sabrati sa sadržajem programskog brojača na osnovu čega se određuje početna lokacija početnog prekidnog programa.

Čitanjem aktuelne vektorske reči TAIV iz vektorskog registra resetuje se marker CCIFGx koji definiše tekuću vektor reč.

Prioritet prekida

Izvor prekida Skraćeno obeležavanje

Adresa vektora

Sadržaj TAIV vektor registra

Najviši Zahvatanje/Kompariranje 0 Zahvatanje/Kompariranje 1 Zahvatanje/Kompariranje 2 Zahvatanje/Kompariranje 3 Zahvatanje/Kompariranje 4 Prekoračenje tajmera

CCIFG0 CCIFG1 CCIFG2 CCIFG3 CCIFG4 TAIFG

X Y Y Y Y Y

N.A. 2 4 6 8 10

Najniži Rezervisan Prekid nije u toku

Y Y

12 0

Zahtev za prekid od tajmera se inicira postavljanjem CCIFGx ili TAIFG kada su

postavljeni CCIEx ili TAIE kao i bit za opštu dozvolu rada prekida GIE. Pri tome bit koji ima najviši prioritet zahteva opsluživanje. Kada se pristupi reči TAIV, bit za zahtev prekidne rutine (CCIFGx ili TAIFG) se automatski resetuje. Bit sa nižim prioritetom nakon toga definiše novu tajmer vektorsku reč.

Page 87: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

87

Slika 6.3.5: Šematski prikaz vektora prekida zahvatanja/kompariranja

6.4 LCD (Liquid Crystal Display) 6.4.1 Osnove LCD-a

LCD-ovi koriste ambijentalnu svetlost za prikaz informacija, a samim tim su mali potrošači energije.

Tečni kristal se pobuđuje naizmeničnim naponom, dok uptreba jednosmernog signala može da ga ošteti. Električni ekvivalent za pobudni stepen je kondenzator. Kondenzator čine elektrode pozadinske ravni i pobudne ravni kontrolisane signalom COMn i segmentnom pobudom SEGn. Frekvencija upotrebljenog naizmeničnog signala je mala i kreće se od 30 Hz do 1000 Hz. Za upravljanje LCD-a razvijene su različite metode koje se uglavnom razlikuju u odnosu broja segmenata, broja pinova na displeju, kontrasta LCD-a, temperaturnog opsega, itd. Metode multipleksiranja rada se koriste za smanjenje broja potrebnih pinova. U MSP430 familiji mikrokontrolera koriste se četiri metode za upravljanje LCD-a:

• Statička (metod statičke pobude) • 2MUX ili 1/2 popune • 3MUX ili 1/3 popune • 4MUX ili 1/4 popune.

Page 88: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

88

Kod statičke metode potreban je jedan pin za zajedničku elektrodu (COM0) i jedan pin za svaki segment: broj pinova = 1 + broj segmenata Kod 2MUX metode potrebna su dva pina za zajedničku elektrodu (COM0, COM1) i jedan pin za dva segmenta: broj pinova = celobrojna vrednost [2 + (broj segmenata /2)] Kod 3MUX metode potrebna su tri pina za zajedničku elektrodu (COM0, COM1, COM2) i jedan pin za tri segmenta: broj pinova = celobrojna vrednost [3 + broj segmenata /3)] Kod 4MUX metode potrebna su četiri pina za zajedničku elektrodu (COM0, COM1, COM2, COM3) i jedan pin za četiri segmenta: broj pinova = celobrojna vrednost [4 + (broj segmenata /4)]

Sa povećanjem brzine multipleksiranja smanjuje se broj potrebnih pinova. Redukciju broja pinova pokazaćemo na aplikaciji koja koristi 80 segmenata: Statička metoda: broj pinova = (1 + 80) = 81 2MUX: broj pinova = (2 + 80/2) = 42 3MUX: broj pinova = (3 + 80/3) = 30 4MUX: broj pinova = (4 + 80/4) = 24 Metod statičke pobude

Kod statičke pobude svaka segmentna linija pobuđuje jedan segment. Sledeći primer prikazuje kako se ispisuje cifra „5“ na LCD-u, uključujući i broj veza zajedno sa talasnim oblicima izlaznog signala.

Page 89: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

89

Slika 6.4.1: Talasni oblici kod statičke metode

2MUX, 1/2 popune

Kod 2MUX metode svaka segmentna linija pobuđuje dva segmenta. Sledeći primer prikazuje kako se ispisuje cifra „5“ na LCD-u, uključujući i broj veza zajedno sa talasnim oblicima izlaznog signala..

Page 90: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

90

Slika 6.4.2: Talasni oblici kod 2MUX metode 3MUX, 1/3 popune

Kod 3MUX metode svaka segmentna linija pobuđuje tri segmenta. Sledeći primer prikazuje kako se ispisuje cifra „5“ na LCD-u, uključujući i broj veza zajedno sa talasnim oblicima izlaznog signala.

Page 91: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

91

Slika 6.4.3: Talasni oblici kod 3MUX metode

4MUX, 1/3 popune

Kod 4MUX metode svaka segmentna linija pobuđuje četiri segmenta. Sledeći primer prikazuje kako se ispisuje cifra „5“ na LCD-u, uključujući i broj veza zajedno sa talasnim oblicima izlaznog signala.

Page 92: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

92

Slika 6.4.4: Talasni oblici kod 4MUX metode

6.4.2 LCD Kontroler/Drajver

Periferija LCD Kontroler/Drajver-a generiše signale za pobudu segmentne i zajedničke elektrode u saglasnosti sa podatkom koji je upisan u memoriji za prikaz podataka. On sadrži sve funkcionalne blokove za pobude eksterno-direktno povezanog LCD-a. Glavni blokovi LCD periferala su:

• Memorija za podatke koja sadrži informaciju o segmentu • Generator za sinhronizaciju • Interfejs modul za spregu sa magistralom • LCD modul kod koga se analogni napon dovodi eksterno • LCD+ modul kod koga se analogni napon generiše interno

Page 93: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

93

Slika 6.4.5: Blok dijagram LCD Kontroler/Drajvera

Razlike između LCD i LCD+ modula: LCD modul LCD+ modul

• Generisanje analognog napona eksterno interno •2 ulaza R23, R13

V1=Vcc V5=Vss •3 ulaza R23, R13, R03 V1=Vcc •4 ulaza R33, R23, R13, R03

• LCDM1 kontrolni bit • ne koristi se •selektuje impedansu u R-mreži • LCDM0 kontrolni bit • zaustavlja generator • zaustavlja generator za sinhronizaciju za sinhronizaciju •zaustavlja struju kroz R-mrežu

Page 94: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

94

6.4.2.1 Funkcije LCD Kontroler/Drajver-a Neke od osnovnih funkcija LCD Kontroler/Drajver-a su:

• Automatski čita podatke iz displej memorije i generiše signale za segmentnu i zajedničku elektrodu

• Mogu se ostvariti četiri različita režima rada: Statički režim 2MUX, 1/2 popune 3MUX, 1/3 popune 4MUX, 1/3 popune U sklopu osnovnog tajmera BT postoje dva bita koja se koriste za izbor jedne od četiri različite frekvencije.

• Izlazni signali se mogu preusmeriti na izlazni port • Displej memorija kada se ne koristi za pamćenje informacija o segmentu može da

se koristi kao standardna memorija • Rad osnovnog tajmera BT kada se pobuđuje sa pomoćnim taktom (ACLK). • LCD+ modul:

Otporna mreža generiše analogne naponske nivoe za LCD. Jedan bit u registru LCDCTL kontroliše rad prekidača preko koga se otporna mreža povezuje na V1

Učestanost slike LCD linija je sledeća:

• Statička metoda: 1

2frame LCDf xf=

• 2MUX: 1

4frame LCDf xf=

• 3MUX: 1

6frame LCDf xf=

• 4MUX: 1

8frame LCDf xf=

LCD+ Modul:

Analogni napon se generiše interno. Kada se OSCOff bit statusnog registra postavi se

napajanje otporne mreže se prekida nezavisno od stanja bita LCDM0. U toku statičnog režima rada analogni generator je neaktivan sobzirom da statički režim koristi samo V1 i V5 nivoe. Potrošnja je minimizirana.

Page 95: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

95

Slika 6.4.6: Unutrašnji analogni napon generisan pomoću LCD+ Modula

LCD Modul: Analogni napon se dovodi eksterno preko pinova R33**, R23, R13, R03**.

Page 96: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

96

Slika 6.4.7: Spoljašnji analogni napon priključen na LCD Modul

6.4.2.2 LCD registar za upravljanje i izbor režima rada

Ovaj registar definiše radne uslove. Obima je bajt i pristupa mu se instrukcijama koje imaju sufiks B.

LCDM0: LCDM0=0: Tajming generator je isključen. Linije za zajedničku i segmentnu elektrodu su postavljene na nisku. Izabrani izlazi koji se dovode na linije porta nemaju uticaja. Za LCD+ Modul napajanje otporne mreže je isključeno.

Page 97: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

97

LCDM0=1: Na linijama za zajedničke i segmentne elektrode generiše se izlaz koji se dovodi na displej memoriju. Selektovani izlazi za linije izlaznog porta nemaju efekta. LCD+ Modul: Napajanje otporne mreže je uključeno kod 2MUX, 3MUX i 4MUX, a ne za statički režim. LCDM1: Ovaj bit selektuje veličinu pobude LCD-a selekcijom interne otpornosti analognog generatora. On je samo aktivan kod LCD+ Modula. LCDM1=0: Visoka impedansa analognog generatora LCDM1=1: Niska impedansa analognog generatora LCDM2,3,4: Ova tri bita selektuju režim rada prikaza i mogu komutirati izlaz segmenata na ne selektovanu vrednost. LCDM4 LCDM3 LCDM2 Displej režim Popuna, LCD+ Popuna, LCD

X

X

0

Nema efekta, displej je isključen-svi segmentni signali su na nivou ne selektovane vrednosti. Izlazi portova ostaju stabilni

0 0 1 1

* opcioni pinovi

0 1 0 1

1 1 1 1

Statički režim 2MUX režim 3MUX režim 4MUX režim

1/1 1/2 1/3 1/3

R33*,R03* R33*,R13,R03* R33*,R23,R13,R03* R33*,R23,R13,R03*

Signal LCDM2 zabranjuje (0) ili dozvoljava (1) rad segmentnih linija. Ovo se izvodi AND operacijom sa svakom individualnom segmentnom informacijom. On je lociran na paralelno-serijski konverzionom bloku koji se nalazi između izlaza displej memorije i dela za upravljanje izlazom. Informacija o segmentu se čuva u displej memoriji. Glavna namena ove funkcije je da podrži operaciju blinkanja. LCDM5,6,7: Informacija prisutna na ova tri bita bira grupu izlaza koja prenosi segmentnu informaciju ili bit informaciju. Selektovani izlazi za port funkciju pobuđuju se na osnovu stanja bita memorije prikaza i nisu deo LCD segmentnih linija.

Page 98: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

98

Funkcija segmenta: Sxx signali su deo signala za pobudu prikaza i prenosne modulisane nivoe u saglasnosti sa funkcijom prikaza slike karakteristične za zajedničke linije elektroda. Funkcija Port: Selektovani signali za funkciju Port su statički. Oni mogu da imaju dve vrednosti koje su određene od strane stanja bita u displej memoriji. Logičko stanje bitova za parne linije (n=3,5...) odgovara pozicijama od 0 do 3, a za neparne S-linije (n=2,4...) pozicijama od 4 do 7.

Slika 6.4.8: Način upravljanja

6.4.2.3 LCD displej memorija

Ova memorija čuva informaciju koja se prikazuje u toku svih režima rada i radu pri smanjenoj potrošnji. Bitovi memorije se direktno povezuju na segmente LCD-a. Slike koje se prikazuju na LCD-u se dekodiraju od strane softvera (brojevi mogu biti predstavljeni u BCD ili binarnoj prezentaciji). Informacioni memorijski bit odgovara jednoj liniji zajedničke elektrode i jednoj segmentnoj liniji. Bit informacija odgovara izvoru segmenta, a skup bitova u memoriji je identičan segmentnoj selekciji i obratno.

Jedna segmentna linija čuva informaciju on/off stanja za četiri segmenta i zavisi od brzine multipleksiranja na sledeći način:

Statička metoda → stanje jedne segment/segment linije 2MUX metoda → stanje dve segment/segment linije 3MUX metoda → stanje tri segment/segment linije 4MUX metoda → stanje četiri segment/segment linije

Tajming generator LCD kontroler/drajver bloka pobuđuje konverziju paralelne

informacije smeštene u LCD memoriji u serijsku informaciju potrebnu za pobudu signalno-segmentne linije. Bitovi LCD memorije su direktno povezani na zajedničke linije:

Statička metoda → COM0: Bit 0 na Sn, Bit 4 na Sn+1 2MUX metoda → COM0: Bit 0 na Sn, Bit 4 na Sn+1, COM1: Bit 1 na Sn, Bit 5 na Sn+1 3MUX metoda → COM0: Bit 0 na Sn, Bit 4 na Sn+1, COM1: Bit 1 na Sn, Bit 5 na Sn+1 COM2: Bit 2 na Sn, Bit 6 na Sn+1 4MUX metoda → COM0: Bit 0 na Sn, Bit 4 na Sn+1, COM1: Bit 1 na Sn, Bit 5 na Sn+1 COM2: Bit 2 na Sn, Bit 6 na Sn+1, COM3: Bit 3 na Sn, Bit 7 na Sn+1

Page 99: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

99

Slika 6.4.9: Bitovi displej memorije povezani na segmentne linije

Displej memorija u statičkom režimu rada

Kod statičke metode koristi se jedna zajednička linija. Aktivna zajednička linija je COM0. U ovom režimu rada BIT0 i BIT4 se koriste za segmentne informacije. Ostali bitovi se mogu iskoristiti kao bilo koja druga memorija.

Maksimalni broj segmenata je 30.

Page 100: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

100

Slika 6.4.10: Upotreba displej memorije u statičkom režimu rada

Displej memorija u 2MUX, 1/2 popune režimu rada

Kod ove metode koriste se dve zajedničke linije. Aktivne zajedničke linije su COM0 i COM1. U ovom režimu rada BIT0, BIT1, BIT4 i BIT5 se koriste za segmentne informacije. Ostali bitovi se mogu iskoristiti kao bilo koja druga memorija.

Maksimalni broj segmenata je 60.

Page 101: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

101

Slika 6.4.11: Upotreba displej memorije u 2MUX režimu rada

Displej memorija u 3MUX, 1/3 popune režimu rada

Kod ove metode koriste se tri zajedničke linije. Aktivne zajedničke linije su COM0, COM1 i COM2. U ovom režimu rada BIT0, BIT1, BIT2, BIT4, BIT5 i BIT6 se koriste za segmentne informacije. Ostali bitovi se mogu iskoristiti kao bilo koja druga memorija.

Maksimalni broj segmenata je 90.

Page 102: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

102

Slika 6.4.12: Upotreba displej memorije u 3MUX režimu rada

Displej memorija u 4MUX, 1/3 popune režimu rada

Kod ove metode koriste se četiri zajedničke linije. Aktivne zajedničke linije su COM0, COM1, COM2 i COM3. U ovom režimu rada BIT0, BIT1, BIT2, BIT3, BIT4, BIT5, BIT6 i BIT7 se koriste za segmentne informacije.

Maksimalni broj segmenata je 120.

Page 103: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

103

Slika 6.4.13: Upotreba displej memorije u 4MUX režimu rada

Page 104: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

104

6.4.2 Primer korišćenja kombinovanog režima rada, LCD i Port režima

Na sledećem primeru je pokazan kombinovani režim rada: 4MUX LCD za 13 cifara i jedna grupa portova sa četiri digitalna izlaza.

Slika 6.4.14: Primer kombinovanog režima rada

Napomena: Bilo koji izlaz LCD-a se definiše pomoću četiri bita. Sva četiri bita treba da imaju isti logički nivo, u suprotnom izlazi neće biti statični. Ako pretpostavimo da O28 treba da bude na visokom logičkom nivou, svi bitovi od bit0 do bit3 bi trebalo da budu na niskom logičkom nivou. Softverski primer postavljanja O28, O29 je nepromenjen LCD15 .EQU 0003Fh BIS.B 00Fh, &LCD15

Page 105: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

105

6.5 A/D konvertor 6.5.1 Opšti pregled Neke od karakteristika A/D modula:

• Osam analognih ili digitalnih ulaznih kanala • Podešavanje strujnih parametara pomoću spoljašnjeg otpornika Rext • Merenje odnosa i apsolutno merenje • Ugrađen Sample-and-Hold • Marker prekida koji označava kraj konverzije (End-Of-Conversion-EOC) • ADAT registar zadržava rezultate konverzije do sledeće Start-Of konverzije

(SOC) • Mala potrošnja energije • Samostalna konverzija bez dodatnog korišćenja CPU-a • Programabilna 12-to bitna ili 14-to bitna rezolucija • Četiri programabilna opsega daju 14-to bitni dinamički opseg • Brza konverzija • Veliki opseg napona napajanja • Monotona karakteristika u celom opsegu A/D konverzije

(12+2) bitni A/D konvertor je periferni modul kome se pristupa pomoću instrukcija

obima reč. Rezultat konverzije je dostupan na 16-to bitnoj magistrali isčitavanjem ADAT registra. Kada se krene sa konverzijom bitovi koji su dobijeni iz konvertora su vidljivi u SAR (successive approximation register) registru. Odmah su dostupni u ADAT registru i ne brišu se sve dok se ne krene sa novom konverzijom. Sve dok je SAR registar transparentan MDB-u konverzija može da se kontroliše isčitavanjem podataka pomoću ADAT registra. SOC bit briše SAR registar za nove podatke kao što je startovanje takta A/D konverzije za narednu konverziju.

Page 106: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

106

Slika 6.5.1: Konfiguracija ADC modula

Modul ima 8 zasebno odabranih analognih ulaznih kanala koji se sabiraju sa strujnim

izvorom konvertora tako da do konverzije može doći u bilo koje vreme na bilo kom od ovih kanala. Četiri od ovih kanala A0, A1, A2, i A3 su konfigurisani kao i četiri izlaza strujnog izvora čija vrednost može da se odredi spoljašnim otpornikom Rext. Uključivanje bilo kog od ovih izlaza (svaki posebno) može da aktivira spoljašnje senzore kako bi se izvršilo merenje odnosa. Apsolutno merenje takođe može da se izvrši preciznim očitavanjem referentnog napona, primenom stabilnog napona spoljašnjeg izvora na Svcc pinu.

Osam kanala takođe mogu da budu konfigurisani kao analogni ili kao digitalni ulazi. Digitalni podaci mogu da budu prisutni na svih osam kanala ili na pojedinačno odabranim kanalima upisivanjem bitova AEN registra. Digitalni podaci koji se nalaze na kanalima i mogu da se isčitavaju iz AIN registra. Kada je osetljiva analogna konverzija završena, bilo koje aktivnosti susednog kanala mogu uzrokovati preslušavanje i interferenciju,što dovodi do šuma i netačnih izlaznih kodova.

Konvertor ima dva operaciona režima rada i u zavisnosti od stanja bita11 registra ACTL moguća je ili 12-bitna ili (12+2)-bitna konverzija. Kada se zna opseg ulaznih signala, 2 bita iz ACTL registra mogu da se iskoriste za definisanje potrebnog opsega za reset bita11. Konvertor će izabrati ulaz koji će da konvertuje u 12-bitnoj rezoluciji u okviru bilo kog od ovih četiri opsega.

Jezgro mikroprocesora ostvaruje komunikaciju sa A/D konvertorom preko sistema spoljašnje magistrale, dodeljujući tačnu adresu modulu i obezbeđujući potrbna stanja za registre ACTL I AEN. Isčitavanje rezultata konverzije vrši se pomoću ADAT registra.

Nakon konverzije A/D konvertor prestaje sa radom kako bi se zaustavila potrošnja struje. Ovo važi kada nema spoljašnjeg upravljanja sa Svcc-om. Nakon starta konverzije ili power-up signala, konvertor se pokreće, ali mora da proteknu 6 µs kako bi se stekli uslovi za preciznu konverziju.

Page 107: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

107

6.5.2 Analogno-Digitalne operacije 6.5.2.1 A/D Konverzija

Nakon uključivanja, ACTL registar bi trebalo da se isprogramira tako da odredi da li će merenje biti apsolutno ili merenje odnosa, kao i određivanje opsega, ručno ili automatski. U manualnom režimu rada, jednom odabran opseg bitova ne može da se menja tokom konverzije jer može doći do poništenja rezultata.

Setovanjem SOC (Start-of-Conversion) bita u ACTL registru aktivira se sat za početak nove konverzije A/D konvertora. Konvertor se zasniva na tehnici aproksimacije koristeći otpornik za rešavanje bita najveće težine (MSB) prvo, a zatim kondenzator za rešavanje bita najmanje težine (LSB).

Slika 6.5.2: Šema ADC-a

Vreme A/D konverzije

Od početka prve do početka druge A/D konverzije treba da pretekne najmanje 6µs da bi se omogućilo postavljanje tačnog unutrašnjeg prednapona. A/D konvertor radi sa taktom koji je 1/12 ADCLK-a. Frekvencija ADCLK-a treba da bude takva da je u saglasnosti sa karakteristikama električnog kola. Ukoliko je ADCLK i suviše brz može doći do netačne 12-bitne konverzije zbog kašnjenja pri samom semplovanju i

Page 108: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

108

prenosa semplovane vrednosti kroz memoriju. Ako je ADCLK i suviše spor takođe može doći do netačne 12-bitne konverzije zbog gubitka napajanja kondenzatora čak i ako je ulazni signal validan i neprekidan za potrebno vreme akvizicije. Odgovarajuća frekvencija za ADCLK bira se pomoću dva bita (ADCLK) u upravljačkom registru ACTL. Primenjeni MCLK taktni signal se tada deli sa 1, 2, 3 ili 4. Semplovanje analognog ulaznog signala zahteva 12 taktova ADCLK-a, dok je za 12-bitnu konverziju potrebno 7x12 (ukupno 84) taktova ADCLK-a, tako da je za 12-bitnu konverziju ukupno potrebno 96 taktova.

Slika 6.5.3: Vreme potrebno za 12-bitnu konverziju

Kada se setuje ACTL.11 počinje (12+2)-bitna konverzija sa automatskim podešenim

opsegom. Ulazni signal se dva puta sempluje pri čemu je za svako semplovanje potrebno 12 taktova ADCLK-a. Nakon prvog semplovanja ulaznog signala za konverziju opsega je potrebno 24 takta ADCLK-a, dok je nakon drugog semplovanja ulaznog signala za 12-bitnu konverziju potrebno 84 (7x12) takta ADCLK-a. Tako da je za (12+2)-bitnu konverziju potrebno ukupno 132 takta ADCLK-a.

Slika 6.5.4: Vreme potrebno za (12+2)-bitnu konverziju

Ulazni signal mora da bude važeći i neprekidan za vreme semplovanja kako bi se dobila tačna konverzija. Takođe je poželjno da nema digitalnih aktivnosti na susednim digitalnim kanalima tokom konverzije tako da greške nastale usled naponskog udara i „plivajuće“ mase ili preslušavanja ne utiču na rezultat.

Page 109: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

109

A/D konvertor koristi charge redistribution metod tako da da su ulazi interno prebačeni na odabir ulaza, što dovodi do premeštanja strujnog toka ka ili od analognog ulaza.

Slika 6.5.5: ADC, ulazno vreme odabiranja

Ovi strujni pikovi ili prelazni procesi se dešavaju na rastuću i opadajuću ivicu unutrašnjeg impulsa odabiranja i naglo pada i stišava se pre nego što uzrokuje bilo kakav problem, jer je vremenska konstanta manja nego ona koju daje interni „stvarni RC“. Gledano iznutra, analogni ulaz vidi nominalni RC kao stvarni kondenzator (C- polje) od 32pF redno vezan na otpornik od 2kΩ–a ( Ron na prekidačima). Ako je dinamička impedansa spoljašnjeg izvora velika, onda prelazni proces ne može da se stiša i smesti unutar vremena odabiranja u obezbeđenih 12 ili (12+2) bitova preciznosti. 6.5.2.2 A/D prekidi Kada je A/D konverzija završena EOC signal aktivira marker prekida ADIFG koji obaveštava ostatak sistema da je konverzija završena. Da bi se bit dozvole ADIE setovao neophodan je prekid. 6.5.2.3 A/D opsezi

U okviru bilo kog zadatog opsega bira se jedan od četiri tako da podrži 12-bitnu rezoluciju. Ako je bit ACTL.11 resetovan, moguće je iskoristiti 14 bitova dinamičkog opsega. Pre starta konverzije opseg je određen bitovima ACTL.9 i ACTL.10. U svakom slučaju ako je bit 11 postavljen, konvertor će sam pronaći odgovarajući opseg semplovanjem ulaza dva puta, jednom za odabir opsega i drugi put za 12-bitnu konverziju, gradeći tako ukupno 14-bitni rezultat (12+2).

Page 110: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

110

Opsezi su: 0.00x Vref ≤ Vin < 0.25x Vref Opseg A 0.25x Vref ≤ Vin < 0.50x Vref Opseg B 0.50x Vref ≤ Vin < 0.75x Vref Opseg C 0.75x Vref ≤ Vin < 1.00x Vref Opseg D gde je Vref- napon na SVcc pinu, bilo da je doveden spolja ili odabirom SVcc uz pomoć bita 12 ACTL registra.

Kada se odabere odgovarajući opseg, signal sa ulaza koji je odabran od strane odgovarajućeg bita iz upravljačkog registra se prosleđuje na ulaz konvertora. A/D konvertor obrađuje signal na odabranom ulaznom kanalu i tada se rezultatu konverzije može pristupiti pomoću ADAT registra.

Očekivani digitalni kôd (decimalni) unutar bilo kog opsega je:

gde su ACTL.10 i ACTL.9 bitovi 10 i 9 respektivno u ACTL registru. Za 12-bitnu konverziju: 0000h ≤ N ≤ 0FFFh Opseg A 0000h ≤ N ≤ 0FFFh Opseg B 0000h ≤ N ≤ 0FFFh Opseg C 0000h ≤ N ≤ 0FFFh Opseg D Za (12+2)-bitnu konverziju: 0000h ≤ N ≤ 3FFFh 6.5.2.4 A/D strujni izvor

Kao izlaz iz strujnog izvora može da se uzme jedan od četiri analognih Ulaza-Izlaza. Izlaz iz strujnog izvora (Isource) može da se isprogramira pomoću spoljašnjeg otpornika Rext tako da bude prisutan i na pinovima A0, A1, A2 i A3 sa vrednošću:

Isource = (0.25x SVcc)/ Rext gde je SVcc napon na pinu SVcc, a Rext spoljašnja otpornost između pinova SVcc i Rext.

Kod merenja odnosa napon Vin ima vrednost:

Vin = (0.25x SVcc) x (Rsens/Rext) gde je Rsens spoljašnja otpornost.

Page 111: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

111

Slika 6.5.6: A/D strujni izvor

Kada se A/D konvertor koristi u vezi sa otpornim elementima u senzorskim aplikacijama, zahteva se strujni izvor sa tačno definisanom vrednošću, pa ulazni signal može biti posmatran u odnosu na napon napajanja ili neku naponsku referencu na isti način kao i strujni izvor, omogućavajući na taj način odgovarajuće merenje koje ima svoj značaj, nezavisno od tačnosti stabilne reference.

6.5.2.5 Analogni Ulazi I Multiplekser Analogni ulazi

Analogni ulazni signal se odabira pomoću internog kondenzatora i drži se tokom konverzije. Punjenje kondenzatora se vrši sa izvora i vreme punjenja se definiše vremenom odabiranja u dvanaest ADCLK taktova. Zbog toga, spoljašnja otpornost izvora i dinamička impedansa mora da bude ograničena, pa vremenska konstanta RC mora biti dovoljna da se analogni impuls potpuno smiri za vreme odabiranja sa 12-to bitnom preciznošću. Uobičajene vrednosti vremenske konstante su manje od 0.8/fADCLK. Velika impedansa izvora ima suprotan efekat na preciznost konverzije, nije uvek razlog ponašanje RC konstante, ali takođe određeni pad napona na ulazu i određena struja curenja ili prosečna DC ulazna struja (određena struja prekida). Tipično za 12-to bitni konvertor, greška u LSB-u odgovarajuće struje curenja je:

Error (LSB-a) = 4*(struja curenja u µA )*( otpornost izvora u kΩ)/(VREF u V )

Page 112: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

112

Analogni Multiplekser

Analogni multiplekser bira jedan od osam jednostrukih ulaznih kanala, koji se određuju bitovima u ACTL registru. On je baziran na „T“ prekidaču koji minimizira spoj između kanala kvarenjem analognog ulaza. Kanali koji nisu selektovani su izolovani od A/D konverzije i središnjeg čvora povezani na analognu masu AGND pa je tako parazitna kapacitivnost „uzemljena“ da bi eliminisala preslušavanje.

Slika 6.5.7: Analogni Multiplekser

Preslušavanje imamo uvek jer postoje određene parazitne kapacitivnosti preko i između prekidača. Ovo može da ima nekoliko formi kao što su veza ulaza i izlaza preko „OFF“ prekidača ili veza između „OFF“ analognog ulaznog kanala i izlaza ostalih susednih „ON“ izlaznih kanala, uzrokuje grešku u digitalnom izlaznom kôdu. Pa za precizne konverzije, preslušavanje mora da bude minimizirano pomoću zaklanjanja i ostalih dobro poznatih tehnika u izradi (PCB) štampanih kola.

6.5.2.6 A/D Umasivanje i Značaj šuma

Petlja mase se formira kada se struja vraća sa delitelja otpornosti A/D toka kroz uobičajene linije u analognim ili digitalnim kolima. Ako se ne vodi računa, ova struja može generisati mali neželjeni ofset napona koji se dodaje ili oduzima od referentnog ili ulaznog napona A/D konvertora. Jedan način kojim može da se izbegne petlja mase je korišćenje šeme veze u zvezdu za AGND; U ovom slučaju struja mase ili referentna struja ne teče preko uobičajenih ulaznih dovoda, što eliminiše sve naponske greške.

Page 113: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

113

Slika 6.5.8: A/D Umasivanje i Značaj šuma

Digitalna masa DGND i analogna masa AGND takođe mogu zajedno vezane u zvezdu, ali ako se koriste odvojena napajanja onda dve inverzno vezane diode ograničavaju razliku između napajanja na manje od ±700mV.

Dalja talasnost i pikovi šuma na linijama napajanja koji dovode do digitalnih prekida ili prekida napona napajanja su naročito neugodni.

Uobičajeno, interni šum je veoma mali i ukupni ulazni šum je daleko manji od jednog LSB-a, pa je izlazni kôd prilično stabilan. Kao šum veze unutar uređaja preko napajanja i promena mase, margina šuma neizvesno redukuje kôd i džiter polako raste, što može da dovede do nekoliko prosečnih čitanja izlaza zbog efekta šuma. Druga posledica je redukcija referentnog napona SVCC ili VREF, redukcija apsolutne vrednosti LSB-a tako da šum postaje još dominantniji kako se margina šuma redukuje. Tako da potpuna podešavanja bez šuma dobijaju najveću važnost u postizanju željenih vrednosti.

Dodavanjem bajpas kondenzatora prema odgovarajućoj masi pomaže u stabilizaciji struje napajanja I minimalizuje šum.

6.5.2.7 Ulazni I Izlazni Pinovi A/D Konvertor

Ulazni Pinovi

Postoje dva različita tipa ulazih signala; ulazi analognih signala A0, A1, A2, A3, A4, A5, A6 A7 i REXT, SVCC.

Page 114: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

114

Ulazni signali koji dolaze na kanale A0 do A7 se tretiraju kao analogni signali koji se usmeravaju na A/D konvertor ili kao digitalni ulazi koje isčitava procesor.

Spoljašnji otpornik između REXT i SVCC određuje veličinu struje pobude strujnog izvora. Pin SVCC sada mođe da se koristi kao izlaz ili ulaz. Pin SVCC je ulazni kada je interni SVCC prekidač isključen i Vref je priključeno spolja. Pin SVCC je izlazni kada je interni SVCC prekidač uključen.

Izlazni Pinovi

Postoje dva različita tipa izlazih signala; izlazi A0, A1, A2, A3 i SVCC.

Ako je izabrana funkcija strujnog izvora, struja će teći van iz jednog od analognih pinova A0, A1, A2, A3. Pin SVCC će tada imati napon malo niži od AVCC kada je SVCC prekidač uključen.

Dovodni Pinovi

Data su četiri dovodna pina koji razdvajaju digitalne i analogne strujne veze:

AVCC,DVCC,AGND,DGND

6.5.3 Upravljački registri ADC-a

Postoje četiri upravljačka registra:

Registar skraćeno obeležavanje tip registra adresa početno stanje

Ulazni registar AIN jedino čitanje 0110h - - - Ulazni registar dozvole AEN čitanje/upis 0112h resetovan ADC upravljački registar ACTL čitanje/upis 0114h →vidi sliku Rezervisano 0116h ADC registar podataka ADAT jedino čitanje 0118h - - -

Svim registrima može da se pristupi bilo kojim instrukcionim subjektom u registarskom čitanje/upis ograničenju.

Ulazni registar AIN

Signali na pinovima A0 do A7 mogu biti signali iz analognnog ili digitalnog izvora. Vrednosti digitalnih izvora se čitaju pristupom ulaznom registru. Izvršenom selekcijom ulaznog registra dozvole je omogućeno čitanje digitalnih izvora.

Page 115: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

115

Slika 6.5.9: ADC ulazni registar, Ulazni registar dozvole

Ulazni registar AIN je registar koji jedino može da se čita i spojen je na 16-to bitni MDB. Niži Bajt registra je ugrađen i MDB.0 do MDB.7 odgovara A0 do A7. Višem Bajtu registra se pristupa sa 00h.

Signal određenog ulaza je logički pridružen odgovarajućem signalu dozvole, AX

.AND. AEN.x. Neselektovani bitovi se čitaju kao ‘0’.

Ulazni Registar Dozvole AEN

Ulazni registar AEN je registar koji može da se čita i u koji može da se upisuje spojen je na 16-to bitni MBD. Niži Bajt registra je ugrađen i MDB.0 do MDB.7 odgovara A0 do A7. Višem Bajtu registra se pristupa sa 00h.

Page 116: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

116

Bitovi ulaznog registra dozvole definišu pojedinačno svaki bit:

AEN.x = 0 : Analogni ulaz. Bit se čita ako se u AIN registru upise 0.

AEN.x = 1: Digitalni ulaz. Bit se čita ako pristup AIN registru predstavlja logički nivo odgovarajućeg pina

Inicijalno stanje svih ovih bitova je reset.

ADC Registar Podataka ADAT

U ovom registru se čuvaju podaci A/D konverzije. Podaci konverzije se smatraju tačnim izvesni vremenski interval nakon završetka konverzije sve dok se ne započne sa novom konverzijom postavljanjem SOC bita.

ADC Upravlja čki Registar ACTL

Page 117: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

117

Bit 0, ACTL.0 : Početak konverzije Bit 1, ACTL.1 : Izvor referentnog napona ACTL.1 = 0 : Prekidač SVcc je isključen. Izlazni pin SVcc nije povezan na Vcc. Referentni napon A/D konverzije se dovodi eksterno. ACTL.1 = 1 : Prekidač SVcc je uključen. Izlazni pin SVcc je povezan na Vcc. Referentni napon A/D konverzije se ne dovodi eksterno. Bit 2-5, ACTL.2-.5 : AD ulaz je selektovan. Ovi bitovi određuju kanal konverzije. Kanali se ne menjaju sve dok se ne završi konverzija. Promena kanala u toku konverzije može da izazove poništenje konverzije.

Bit 6-8, ACTL.6-.8 : Izlazni AD strujni izvor je selektovan Ovi bitovi određuju kanal izlaza stujnog izvora. Kanali se ne menjaju sve dok se ne završi konverzija. Promena kanala u toku konverzije može da izazove poništenje konverzije.

Page 118: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

118

Bit9-11, ACTL.9,.11: Selektovanje opsega Vrednost ovih bitova ne sme da se menja kada se počne sa konverzijom. Bilo kakva manipulacija sa ovim bitovima tokom konverzije može da rezultira netačnim podacima.

Bit11, ACTL.11: Načini selekcije opsega ACTL.11 = 0 : Bitovi selekcije opsega ACTL.9 i ACTL.10 mogu biti korišćeni za manuelnu selekciju opsega. ACTL.11 = 1 : Aktivna automatska selekcija opsega za (12+2)-o bitnu konverziju. Sve dok je manualna selekcija neaktivna, stanja bitova selekcije opsega ACTL.9 i ACTL.10 su “don’t care ”. Bit12, ACTL.12: Smanjenje napona (Pd) ACTL.12 = 1: SVCC prekidač je isključen, Komparatoru je smanjen napon Tekući izvor je isključen Bits 13, 14: ADCLK Frekfencija takta ADC-a može da se podesi na maksimalnu dozvoljenu frekfenciju.

Bits 13-15: Rezervisani

Page 119: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

119

Softversko testiranje najnižih i najviših uslova u radu

;Sve dok ADAT registar postoji u 16-to bitnom adresnom prostoru periferala i kao integrisan i ;upravlja podacima u načinu rada obima reči, nije obavezna implementacija detekcije greške ;pri najnižim i najvišim uslovima u radu. To je redukovano jednostanvim komandama u toku programa:

; Bit11 u ACTL registru je resetovan i 12-to bitna konverzija je bila aktivna

;

CMP #0,&ADAT ; testiranje 12-to bitnih ADC najnižih uslova rada JEQ UndFlow ; Da, nastavi sa rukovanjem u najnižim uslovima

; rada

CMP #0FFFh,&ADAT ; testiranje 12-to bitnih ADC najviših uslova rada ; ; MSB bit, koji nije ugrađen u hardver konvertora se čita sa 0-om

JEQ OverFlow ; Da, nastavi sa rukovanjem u najnižim uslovima ; rada

; Bit11 u ACTL registru je postavljen i (12+2)-to bitna konverzija je bila aktivna ; Opseg konverzije može da se ograniči na opsege od A do C ; CMP #0,&ADAT ; testiranje (12+2)-to bitnih ADC najnižih uslova

;rada JEQ UndFlow ; Da, nastavi sa rukovanjem u najnižim uslovima

; rada

CMP #2FFFh,&ADAT ; testiranje najviših uslova rada jedino za opsege

;od A do C ;

; MSB bit, koji nije ugrađen u hardver konvertora se čita sa 0-om

JHS OverFlow ; Da, nastavi sa rukovanjem u najnižim uslovima ; rada

Page 120: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

120

6.6 Univerzalni sinhroni-asinhroni prijemnik/predajnik USART (Universal Synchronous Asynchronous Receive/Transmit) U ovom odeljku biće reči o serijskom komunikacionom interfejsu USART-u. Kako bi se serijska komunikacija ostvarila na različite načine primenjuju se dve funkcije. Prva je dobro poznata asinhrona komunikacija UART, a druga funkcija je SPI, serijski periferni interfejs koja se takođe koristi u velikoj meri.

6.6.1 USART periferni interfejs, UART režim rada Univerzalni sinhroni/asinhroni interfejs je serijski kanal koji služi za prenos serijskog niza od 7 ili 8 bitova između mikroprocesora i U/I perifernog uređaja. Asinhroni način prenosa se selektuje resetovanjem upravljačkog bita SYNC (SYNC=0) koji je sastavni deo upravljačkog registra UCTL. USART je sa centralnom procesorskom jedinicom (CPU) povezan kao periferija bajt orjentisana. On povezuje kontroler sa spoljašnjim sistemskim okruženjem pomoću tri eksterna pina. Karakteristike USART-a:

• Asinhroni režim rada uključujući i bit čekanja (idle bit) za komunikacijske protokole • Dva pomeračka registra za upis podataka u URXD i isčitavanje iz UTXD • Predaja/prijem podataka gde bit najmanje težine ima prioritet • Brzina predaje i prijema je programabilna • Statusni markeri

Slika 6.6.1: Blok dijagram USART-UART načina rada

Page 121: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

121

6.6.1.1 Format asinhrone komunikacije

Kod asinhrone komunikacije koriste se start bit, 7 ili 8 bitova podataka, bit parnosti, bit adrese za odgovarajući način adresiranja i jedan ili dva stop bita. Bit koji određuje periodu je definisan pomoću selektovanog taktnog izvora i podataka smeštenih u registru brzine prenosa.

Slika 6.6.2: Format asinhrone komunikacije

Kada se koristi asinhrona komunikacija USART modul podržava dva načina multiprocesorske komunikacije. Oni se koriste za prenos informacija između više mikroračunara povezanih na isti serijski port. USART ima osobinu da prepozna početak bloka koji se prenosi i da potisne prekide i statusne informacije iz prijemnika. U oba multiprocesorska režima razmena podatakla pomoću USART modula se zasniva na konstantnom prikupljanju podataka ili sinhronizovano pomoću prekida. Oba ova asinhrona protokola omogućavaju efikasanu razmenu podataka između složenih komunikacijskih sistema. Takođe se koriste za uštedu potrošnje ili uštedu procesorskih resursa. Bitovima URXWIE i URXIE se kontroliše prenos podataka u oba režima rada. Prijem i predaja podataka preko USART modula se odvija potpuno nezavisno ali se odvija istom brzinom. 6.6.1.2 Dozvola prijema podataka preko USART modula Bit dozvole prijema podataka URXE dozvoljava ili ne dozvoljava prikupljanje podataka sa URXD linije. Ako rad USART prijemnika nije dozvoljen to će zaustaviti funkciju prijema podataka nakon kompletnog prijema koji je započet ili je zaustaviti odmah ukoliko nema aktivne funkcije prijema. Detekcija start bita nije dozvoljena.

Page 122: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

122

Slika 6.6.3: Dijagram stanja bita dozvole prijema podataka URXE

6.6.1.3 Dozvola prenosa podataka preko USART modula Bit dozvole prenosa podataka UTXE dozvoljava ili ne dozvoljava prenos karaktera preko serijske linije podataka. U slučaju kada je ovaj bit resetovan rad predajnika nije dozvoljen ali aktivni prenos podataka nije zaustavljen sve dok se prethodno upisani podaci u bafer ne pošalju. Kada se izvrši kompletan prenos podataka dalje upisivanje podataka u bafer neće rezultirati prenosom podataka.

Slika 6.6.4: Dijagram stanja dozvole prenosa podataka

6.6.2 Periferni interfejs USART, SPI režim rada Sinhroni interfejs je serijski kanal koji omogućava prenos serijskog niza od 7 ili 8 bitova između mikroprocesora i U/I perifernog uređaja, brzinom koju je moguće definisati eksterno ili interno programski. USART modul je povezan sa centralnom procesorskom jedinicom (CPU) kao periferija bajt orjentisana. On povezuje kontroler sa spoljašnjim sistemskim okruženjem pomoću tri ili četiri eksterna pina.

Page 123: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

123

Karakteristike USART serijske sinhrone komunikacije: • Postavljanjem upravljačkog bita SYNC koji je sastavni deo upravljačkog registra

UCTL se bira sinhrona komunikacija • Moguće je koristiti 3 ili 4 pina pri SPI komunikaciji preko SOMI, SIMO, UCLK i

STE signala • Selekcija master ili slave uređaja • Posebni pomerački registri za prijem (URXBUF) i predaju (UTXBUF) podataka • Dvostruko skladištenje paketa pri prenosu • Podešavanje polarizacije i faze takta • Podešavanje taktne frekvencije master uređaja • Obim znakova je 7 ili 8 bitova po znaku

Slika 6.6.5: Blok dijagram USART-SPI načinu prenosa

6.6.2.1 Izvođenje sinhrone komunikacije U sinhronom načinu komunikacije pored podataka potreban je i takt za serijski prenos podataka. Master uređaj inicira komunikaciju. Prenos podataka se obavlja u skladu sa taktom. Sva četiri pina u SPI načinu komunikacije se koriste da omoguće da i slave uređaj učestvuje u komunikaciji. Signali koji se koriste za prenos podataka su:

• SIMO Slave dozvoljen, master nije dozvoljen • SOMI Slave nije dozvoljen, master dozvoljen

Page 124: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

124

• UCLK Takt USART-a, master proizvodi takt koji koristi slave za prenos podataka

• STE Dozvola slave uređaju da preda podatke. Koristi se za dozvolu pojedinih slave uređaja u sistemima koji sadrže više master i slave uređaja

Međusobna veza USART-a u sinhronoj komunikaciji i serijskog porta određenog uređaja sa jednim pomeračkim registrom je prikazana na slici 6.6.6, kada je MSP430 master ili slave. U oba slučaja komunikacija je ista. Master inicira komunikaciju slanjem UCLK signala. Kod master uređaja na rastuću ivicu takta podaci se šalju iz predajnog pomeračkog registra, a na opadajuću ivicu takta upisuju u prijemni pomerački registar. Isto to se dešava i kod slave uređaja. Master i slave uređaji šalju i primaju podatke istovremeno. Bilo da su podaci bitni ili lažni prenos podataka zavisi od aplikacionog softvera na sledeći način:

1. Master šalje podatke i slave šalje lažne podatke 2. Master šalje podatke i slave šalje podatke 3. Master šalje lažne podatke i slave šalje podatke

Master uređaj može da inicira prenos podataka u bilo koje vreme i da upravlja UCLK-om. Softverskim protokolom se određuje način na koji master uređaj zna kada slave uređaj želi da emituje podatke.

Slika 6.6.7: USART kao master, eksterni uređaj sa SPI-om kao slave

Na slici 6.6.8 je prikazan primer serijskog sinhronog prenosa podataka čiji je obim karaktera sedam bitova. Početno stanje prijemnog pomeračkog registra je 00.

Page 125: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

125

Slika 6.6.8: serijski sinhroni prenos podataka čiji je obim karaktera sedam bitova

A: Slave upisuje 98h u DSR i čeka da master pomeri sadržaj iz njega B: Master upisuje B0h u UTXBUX i to se odmah prenosi do predajnog pomeračkog registra i započinje prenos. C: Nakon što se prvi znak prenese postavlja se marker prekida D: Slave isčitava 58h iz svog prijemnog bafera (desno poravnanje) E: Slave upisuje 54h u svoj DSR registar i čeka da master pomeri sadržaj iz njega F: Master isčitava 4Ch iz prijemnog bafera URXBUF (desno poravnanje) G: Master upisuje E8h u predajni bafer UTXBUF i inicira prenos H: Nakon što se drugi znak prenese postavlja se marker prekida I: Master prihvata 2Ah, a slave prihvata 74h (desno poravnanje)

Page 126: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

126

LITERATURA

1. RISC, CISC I DSP PROCESORI, Mile K. Stojčev, I izdanje, Elektronski fakultet, Niš, 1997.

2. ARHITEKTURE I PROGRAMIRANJE RAČUNARSKIH SISTEMA ZASNOVANIH NA FAMILIJI PROCESORA 80x86, Mile K. Stojčev, Branislav D. Petrović, I izdanje, Elektronski fakultet, Niš, 1999.

3. ZBIRKA ZADATAKA IZ MIKROPROCESORA I MIKRORAČUNARA, Mile K. Stojčev, Saša S. Ristić, Miloš D. Krstić, I izdanje, Elektronski fakultet, Niš, 1999.

4. LABORATORIJSKI PRAKTIKUM IZ PREDMETA MIKROPROCESORSKI SISTEMI, Tatjana Stanković, Saša S. Ristić, Miloš D. Krstić, Ivan Andrejić, Mile K. Stojčev, Elektronski fakultet,(Edicija Pomoćni Udžbenici) Niš, 2004.

5. http://es.elfak.ni.ac.rs – Laboratorija za Embedded Sisteme,Elektronski fakultet Niš

6. http://www.ti.com/msp430 – Texas Instruments, Experimenter's Board

MSP430

Page 127: Arhutektura MSP430 familije uređajaes.elfak.ni.ac.rs/Papers/J.Gligorijevic-MSP430arhitektura.pdf · 1.1.2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat

127

BIOGRAFIJA AUTORA

Prezime: Gligorijević Ime: Jelena Datum rođenja: 13.04.1980 Nacionalnost: Srbin Adresa stanovanja: Vojvode Putnika 32, 18237 Sokobanja E-mail: [email protected] Mobilni telefon: 063/88 54 222 Obrazovanje: Gimnazija Poznavanje jezika: Poznavanje engleskog jezika