Upload
others
View
22
Download
0
Embed Size (px)
Citation preview
Osnovna znanja o mikroprocesorima i mikrokontrolerima
Primena mikroprocesora u energetici
predavanje 2
(Oktobar 2009)
1. Osnovna konfiguracija mikroprocesorskog sistema
1.1. Blok šema i način rada tipičnog mikroprocesora1.2. Programska i memorija za podatke1.3. Adresni prostori u mikroprocesorskom sistemu
2. Osnovna konfiguracija mikrokontrolerskog sistema2.1. Paralelni port2.2. Serijski port2.3. Brojački sistemi (timer/counter)
Sadržaj
Mikroprocesori i mikrokontroleri 2/30
2.3. Brojački sistemi (timer/counter)2.4. Analogno/digitalni konvertor u sklopu µµµµC2.5. PWM generator2.6. Kontroler prekida2.7. Watchdog timer2.8. POR - Power on reset
3. Dodatne informacije studentima3.1. Jedan složen CPU– primer TI DSP 28xx familija3.2. Perfirerije složene CPU - primer TI DSP 28xx familija
Princip rada uP sistema
Memorija
CPU Decode & execute
1. fetch phase (faza uzimanja)
2. decode&execute (faza izvršenja)
Fetch instruction
decode instruction
execute instruction
Mikroprocesori i mikrokontroleri 4/30
Magistrala za podatke
Adresna magistrala
Kontrolna magistrala
Ulazi/ izlazi
OSC - CPU - mikroprocesor
ROM RAM IO ports
A D A D A D A D
C C C C
uP sistem izvršava naredbe kao delove programa, jednu po jednu
• ko čuva naredbu? – memorija
• ko prenosi naredbu? - magistrala
• ko dekoduje naredbu? –CPU
• ko izvršava naredbu? – CPU
• ko sinhronizuje sistem? – sistemski sat (clock ili oscilator)
Magistrala za podatke
Adresna magistrala
Ulazi/ izlazi
OSC - CPU -
mikroprocesor ROM RAM
IO ports
A D A D A D A D
C C C C
Osnovna konfiguracija uP sistema
Mikroprocesori i mikrokontroleri 5/30
Delovi osnovnog mikroprocesorskog sistema� Generator clock-a (Oscilator, sinhronizuje rad CPU. Period clock-a definiše vreme
izvršenja mikroinstrukcije).� Mikroprocesor - centralna procesorska jedinica, radi na osnovu clock signala, uzima
instrukciju na koju pokazuje programski brojač, postavlja kontrolne signale potrebne za izvršenje te instrukcije....
� magistrale: magistrala za podatke, adresna magistrala i kontrolna magistrala . Sve vrše paralelni prenos podataka.
� Obavezne periferije :� programska memorija ROM, FLASH, EEPROM , EPROM� memorija za podatke RAM (SRAM ili DRAM)� ulazni izlazni portovi
Kontrolna magistrala
REG. NAREDBI (K - bitni)
DEKODER NAREDBI
SP (M-bitni)
PC (M-bitni)
INTERNI REGISTRI
(N-bitni)
ALU
CTRL buffer
DATA buffer Unutrašnja magistrala za podatke (data bus) OSC
N-bita
(2xN)-bita
ACC BUFF
KOD NAREDBEOPERAND
Blok šema tipičnog mikroprocesora (CPU)
Mikroprocesori i mikrokontroleri 6/30
1) Programski brojač (PC counter). pokazuje na sl. naredbu 2) Registar naredbi. Prima i čuvanaredbu. 3)Dekoder naredbi Mozak CPU 4) ALU i akumulator Privilegovani registar CPU okruženkrugovima za ALU 5) Statusni registar. čuva prg. flagove 6) Interni reg. Privremeno čuvanje pod.7) Pokazivač steka (SP). 8) Izlazni baferi pojačaju signal ka spoljnoj magistrali ili sa magistrale
PC (M-bitni)
STATUS REG
ADDR buffer Unutrašnja adresna magistrala (address bus)
M-bita
Kontroler prekida
ACCH ACCL
(2xN)-bita
reset
ADRESAADRESA
Clock
Promena stanja PC brojača, postavljanje nove adrese na magistralu i selekcija programske mem.
Čitanje koda instrukcije i smeštanje u registar instrukcija TROM
t
Primer sinhronizacije rada CPU i memorije
Mikroprocesori i mikrokontroleri 7/30
� Na uzlaznu ivicu se postavlja adresa � Na silaznu se očekuje podatak . Kod instrukcije
(ROM) ili operand (RAM).
� Ukoliko je memorija spora, clock se deli 1:2,1:4
smeštanje u registar instrukcija
Tclock
TROM
Clock
ALU čita operande A i B
Upis rezultata u izlazne registre ACCH , ACCL i TALU
t
Čitanje novih operanada
Primer sinhronizacije rada unutar CPU
Mikroprocesori i mikrokontroleri 8/30
registre ACCH , ACCL i statusa u STATUS regista
Tclock
TALU
� Na uzlaznu ivicu se čitaju operandi� Na silaznu se upisuje rezultat� A = A+B → A (kT)= A (kT-T)+ B (kT)
zato je ovo moguće !!!!
CLR ACCMOV ACC, #6MOVX 0x7FFF, ACCADD ACC, B
ROM Adresa Kod u asembleru Sadržaj ROM lokacije Objašnjenje(PC) (popunjava linker)
Prosta naredba Naredba nosi i operandNaredba nosi i 16bitnu adresu operanda koja ne moze da stane u preostalih N bitova naredbe (ukupno ima 16)
Opet prosta naredba. Tiče se samo internih registara i jasna je jer ne nosi ni operand ni adresu operanda nego jasan kod koja dva reg.
da se saberu.
Izvršenje linearnog koda (PC inkrementira)
Mikroprocesori i mikrokontroleri 10/30
0x0000 CLR ACC 0000 0000 xxxx xxxx obriši ACC
0x0001 MOV ACC,#6 0000 0001 0000 0110 ACC = ACC + 6
0x0002 MOVX 0x7FFF, ACC 0000 0010 xxxx xxxx ACC = &EXTADR
0x0003 0111 1111 1111 1111 sa koje adrese?
0x0004 ADD ACC, B 0000 0011 xxxx xxxx ACC = ACC + B
0x0000 INC ACC0x0001 LJMP LAB_1 0000 1111 xxxx xxxx kod naredbe
0011 0000 0000 00001 skok adresaOvaj deo programa se nikad ne izvršava-----------
0x0301 LAB_1: INC ACC
LJMP zauzima 2x16 bita ali može da
skače na bilo koju od 64k lokacija.
SJMP zauzima 1 x 16 bita ali ne može da skače na bilo koju od 64k lokacija.
Nelinearni program –naredba skoka
Bezuslovni skok
Mikroprocesori i mikrokontroleri 11/30
0x302 SJMP LAB_2 0000 1110 0000 0101 kod naredbe Ovaj deo programa + relativni skok +5se isto preskače
0x307 LAB_2:
Uslovni skok
IF NE JUMP LAB_1Ovaj deo se izvršava ako je akumulator bio jednak nuli
LAB_1:Ovaj deo se izvršava ako akumulator nije bio jednak nuli
// glavni program poziva podprogramMOV ACC, #20 // glavni prg. puni argumente i zove fun. CALL LAB_1 // uC 1) pamti sl. adresu, 2) PC= LAB_1MOV REZ, ACC // glavni prg. koristi rezultat funkcije nastavak programa // i nastavlja dalje !
Nelinearni program – poziv podprograma
pozivi podprograma su posebna vrsta programskog skoka sa očekivanim povratkom na mesto zločina tj. skoka.
Call naredba
Mikroprocesori i mikrokontroleri 12/30
// Podprogram je negde drugde u memoriji. Može se pozivati više puta. LAB_1:
INC ACC // Ovde je ACC i ulazni i izlazni argumentRTS // RTS - Return From Subroutine inicira
// vraćanje sl. prg. adrese sa steka-a
Adresu povratka uzima sa stack-a (POP)! Pre poziva podprogramata adresa je upisana na stack i sada je koristimo.
Pre skoka adresu povratka stavljamo na stack (PUSH)! To je adresasledeće naredbe nakon CALL.
1. Adresa sledeće instrukcije se automatski pamti u stack memoriji (potiskuje (push) na stek). Adresa sledeće instrukcije je obično adresa CALL instrukcije + 2 pošto je prva sledeća memorijska lokacija nakon CALL naredbe popunjena adresom podprograma koji se poziva,
2. adresa podprograma se čita kao drugi deo CALL naredbe iz programske memorije. Ona je linkovana (upisana) u program memoriji odmah nakon CALL
Nelinearni program- poziv podprograma
Mehanizam izvršenja Call naredba
Mikroprocesori i mikrokontroleri 13/30
(upisana) u program memoriji odmah nakon CALL instrukcije),
3. ova nova adresa se paralelno upisuje u PC pokazivač koji nakon tog upisa pokazuje na prvu instrukciju podprograma kao sledeću instrukciju za izvršenje,
4. podprogram se izvršava, 5. na kraju podprograma uvek se koduje specijalna
instrukcija RTS (Return from Subroutine) koja inicira mehanizam za povratak u glavni program,
6. u PC pokazivač se upisuje adresa zapamćena na stack-u (automatski pop sa stack-a). Ovim se nastavlja sledeća instrukcija upisana nakon CALL instrukcije.
Vi predano učite sa knjigom pod glavom...� šta ako alarm zazvoni i vreme je da se probuditi?� šta ako zazvoni telefon ?� konačno, šta ako gori kuća ?
Korektna akcija je prekid onoga što ste radili i servisiranje pristiglog dogañaja. Šta raditi, zavisi od dogañaja. Na primer,
Nelinearni program – prekid (interrupt)
Mikroprocesori i mikrokontroleri 14/30
Ovaki problemi ili dogañaji se u okviru mikroprocesorskomsistema rešavaju mehanizmom prekida
Mikroprocesor
Prekid 1
Prekid 2
Prekid 3
raditi, zavisi od dogañaja. Na primer, ugasite kuću i vratite se... čitanju.
reset
Servisna rutina prekida
početak servisne rutine
Naredba 1
Spoljni dogañaj zahteva trenutnu pažnju µµµµC i neophodno je reagovati !
A
B
Servisiranje prekida
glavni prg. se srećno vrti u krug
Mikroprocesori i mikrokontroleri 15/30
Glavni program (main)
prekida
RTI
Naredba 1
Naredba 2
1) µC prima nemask. prekid u trenutku A, 2) prvo završava instrukciju u toku (N1), 3) Stavlja na stack adresu sl. naredbe (N2), 4) u PC se postavlja adresu vektora prekida. 5) na stack se pamte i razni važni registri
6) prekidna rutina počinje da se izvršava B,7) nakon RTI se ukida signal prekida 8) automatki se PC puni sa adresa sl. instrukcije9) automatski se pune sadržaji sačuvanih regs. C. 10) program nastavlja dalje
C
// glavni program (main) se UVEK vrti u krugmain:
MOV ACC, SER_COMM // gl. prg. radi svoj posao MOV DISPLAY, ACCLJMP main
A
Tok izvršenja programa tok servisa prekida
Mikroprocesori i mikrokontroleri 16/30
LJMP main
// Prekidna rutina za serijski port RX interruptRX_INT:
MOV ACC, SER_BUFF // Ovde je ACC i ul. i izl. argMOV SER_COMM, ACCRTI // vraćanje iz prekida
1. maskirani prekid se ignoriše, 2. µµµµP prihvata zahtev za nemaskirani prekid u trenutku A, 3. prvo završava instrukciju u toku, 4. postavlja na stack (pamti) adresu sledeće naredbe glavnog
programa (isto kao u slučaju poziva podprograma),5. u PC postavlja adresu vektora prekida. Tabela vektora prekida ima
za svaki izvor prekida unapred definisanu adresu skoka –Na toj adresi
Mehanizam izvršenja prekida
Nelinearni program – prekid (interrput)
Mikroprocesori i mikrokontroleri 17/30
za svaki izvor prekida unapred definisanu adresu skoka –Na toj adresi treba linkovati prekidnu rutinu tog prekida,
6. pre skoka na vektor prekida, µµµµP uobičajeno postavlja i razne interne registre na stack, SR i ACC obavezno, time čuvajući njihov sadržaj u toku prekidne rutine da ne bi bilo greške u gl. programu,
7. prekidna rutina za taj prekid počinje da se izvršava,8. nakon završetka prekidne rutine i naredbe RTI (return from interrupt)
ukida se signal zahteva za prekid i automatski vraća sa stack-a adresa sledeće instrukcije C. Automatski se vraćaju i svi interni registri koji su na početku prekida sačuvani, stack je opet prazan,
9. glavni program može da nastavi dalje.
µµµµC = µµµµP + potrebne periferije
Kontrola
Event manager
PWM ka invertoru
Signal sa senzora
brojači
Impulsi za brojanje senzora
A/D konvertor
Signali za merenje
clock WD
Kontroler prekida
Spoljni izvori prekida reset
POR
Mikrokontrolerski sistem – osnovna konfig.
Mikroprocesori i mikrokontroleri 19/30
podaci
Kontrola
Ulazi/izlazi
OSC - CPU -
mikroprocesor FLASH RAM
C A D C A D C A D C A D
Paralelni portovi
C A D
Serijski portovi
Mikrokontroler
Oslobaña uP potrebe za serijsko/paralelnom konverzijom
Serijski IO port
RD/WR CPU data bus
CPU control bus
CPU
Serijski prenos od i ka liniji
paralelni prenos od i ka CPU
Serijski port
0
1
1
0
1 1 1 01
Mikroprocesori i mikrokontroleri 21/30
Add. decod. CS
RX linija
TX linija
clock
prekid (TX or RX)
Dozvola prekida serijskog porta
CPU address bus
bus
PISO
SIPO
logika
0 1 1 0
TX int.
1 1 1 01
1
1
0
RX int.
Serijski port – tipovi
Više tipova serijskih portova (zavisi koji tip komunikacionog protokola podržavaju)
Asinhroni serijski port - UART
Sinhroni serijski port I2C bus,
CAN bus
Ethernet
Mikroprocesori i mikrokontroleri 22/30
Ethernet
Paralelni IO port
P1.0 P1.1 P1.2
RD/WR CPU data bus
CPU control bus
CPU
Izlazni /Ulazni bafer
Veza uP sa svetom.
Paralelni ulaz/izlaz
paralelni prenos od i ka CPU
Paralelni port
01100001 1
110
Mikroprocesori i mikrokontroleri 23/30
Add. decod. CS
P1.2 P1.3 P1.4 P1.5 P1.6 P1.7
CPU address bus
bus bafer
100001
Izlazni port: Broj 1 -> 5V(3.3V) , Broj 0 -> 0VUlazni port: 5V(3.3V) -> Broj 1 , 0V -> Broj 0
Paralelni port – izlazni port
P1.1
5V
R1 Mikroprocesor (Konsultovati korisničko uputstvo) - tip izlaza
R2
P1.0
∼10mA P1.0-neiskorišćen(ništa, ili test point, reserve...)
P1.1
Odlučili smo se da neke od pinova iskoristimo kao izlazne portove.
Mikroprocesori i mikrokontroleri 24/30
- tip izlaza - max struja Pinovi se moraju def. kao izlazni !
P1.2
IGBT driver (Konsultovati uputstvo)
P1.3
P1.4
∼1mA
5V
P1.1-tip rele/max strujaP1.2-tip LED/max struja
P1.3-tip izlaza-startup !!!-high/low-naponski nivo -max. struja
Paralelni port – ulazni port
P2.1 Mikroprocesor (Konsultovati korisničko uputstvo) - tip izlaza
P2.0
5V
P1 P2
P2.0 i P2.1-komandi ulaz
P3.5- P3.7-encoder
Odlučili smo se da neke od pinova iskoristimo kao ulazne portove.
Mikroprocesori i mikrokontroleri 25/30
- tip izlaza - max struja Pinovi se moraju def. kao ulazni !
Incremenatalni optički encoder
P3.5
P3.6
5V
A
B
Index P3.7
-encoder
Paralelni port–dsPIC konfiguracija za RD/WR!
Osmibitni portovi B, C, E F , grupe od po 8 pinovaVrednosti se čuvaju u latch-ovima LATB, LATC, LATE , LATF
Ali, po resetu mikrokontrolera svaki PORT treba prvo konfigurisati (inicijalizovati)
� Da li je IO port ili neka periferija:MOV W0, ADPCFG, 1– digitalni, 0–analogni (primer za B)
Da li je ulazni ili izlazni
Mikroprocesori i mikrokontroleri 26/30
� Da li je ulazni ili izlazniMOV W0, TRISB , 1 – ulaz , 0 – izlaz
Kada odradimo inicijalizaciju, možemo da radimo• Ako je ulazni onda čitamo
MOV LATB, W0 • Ako je izlazni onda pišemo
MOV W0, LATB
Tipovi AD
Konvertuje kontinualni el. signal u digitalnu reč pogodnu za uC ili DSP.
AD
konvertor
Kontinualni el. signal
Digitalne reči
500, 505, 600, 560, 800 , 1000...
Analogno-digitalni konvertor (ADC)
mikroprocesor
Mikroprocesori i mikrokontroleri 27/30
•FLASH AD konvertor•SAR AD Konvertor (sukcesivne aproksimacije)
Broj bitova
• 8 – bitni primena u industriji• 10 – bitni primena u industriji• 12 – bitni primena u industriji• 16 , x –bitni specijalizovana precizna merenja
Brzina konverzije KONAČNO VREME KONVERZIJE!!! Raspon od 50 ns – 1µµµµs
Blok dijagram ADC (SAR) u sklopu uC
AD_data Digitalni rezultat
A/D konvertor
Vin
Analog MUX (8/1)
selektor ulaza
Vref+
Vref−−−−
(GND)
START
BUSY
S&H AD_BIT_START
AD_BIT_BUSY
S&H_BIT_START
AD_IN_SELECT
AN1
AN0
AN7
Mikroprocesori i mikrokontroleri 28/30
Odabir analognog kanala AD_IN_SELECT= 3
Startovanje S&H BIT_S&H_START =TRUE
Startovanje A/D S&H_BIT_START =TRUE
(1)
Startovanje A/D AD_BIT_START =TRUE
Čekanje kraja konverzije AD_BIT_BUSY ?
FALSE
TRUE
Preuzimanje rezultata REZULTAT = AD_data
Blok dijagram algoritma prg.
Registri µµµµC za A/D
AD_data Digitalni rezultat
A/D konvertor
V in
Vref+
Vref−−−−
START
BUSY
AD_BIT_START
AD_BIT_BUSY
AD_PREKID
+5V
PREKID
DOZVOLI_AD_PREKID
Dva načina sinhronizacije ADC i CPU
Mikroprocesori i mikrokontroleri 29/30
PULLING U ovom slučaju postoji samo glavni programsetb AD_BIT_START ; CPU inicira AD konverziju
wait_validAD: jnb AD_BIT_BUSY,wait_validAD ; Čeka da padne BUSYmov Rezultat, AD_data ; uzima rezultat
PREKID U glavnom programu se samo inicira AD konverzija:setb AD_BIT_START ; Procesor inicira AD konverziju ....
glavni program dalje ne gubi vreme, radi nešto drugo.
U prekidnoj rutini (prekid_AD) se preuzima rezultat:prekid_AD: mov Rezultat, AD_data ; uzme rezultat
setb stigao_noviAD ; obaveštava glavni prg. reti ; povratak iz prekida
Sample signal
Sample and Hold kolo u sklopu ADC
Mikroprocesori i mikrokontroleri 30/30
Vin Vout S&H AD ulaz
t Ts 2Ts 3Ts
Vin
Vout
Tipičan blok dijagram brojačkog modula
Sistemski sat (clock)
Brojački ulaz (ulazni pin)
Delitelj frekvencije 1:2:4:8:16
Brojački izlaz CLK
Brojački ulaz
Dig. komparator
Preset brojača (paralelni upis !) može i automatski , po prekidu)
prekid
Output buffer TIMER_COUNT
1
2 TIMER_COUNT
Mikroprocesori i mikrokontroleri 33/30
Brojački modul broji impulse, u zavisnosti koje ima dva moda:TIMER MODE (broji clock poznate periode���� TIMER_COUNT proporc. vremenu ���� timer )COUNTER MODE(broji nadošle impulse ���� TIMER_COUNT jednak broju impulsa ���� counter)
Selekcija: 0 - timer ili 1 - counter
Broj za poreñenje (definiše periodu prekida)
Dig. komparator
Dozvola prekida brojača
prekid
3 TIMER_PERIOD
Timer - vremenski dijagram
TIMER_PERIOD = 10001000
999
998
2
1 vreme
Prekid
1
Prekid
2T – željeni period
Mikroprocesori i mikrokontroleri 34/30
Ako je TIMER_PERIOD =1000 i fclk = 1MHz, kolika je perioda prekida ?
Znamo koje vreme hocemo, i ,znamo Tckl , šta upisati u TIMER_PERIOD?
s
clk
clk
s
f
f
T
TPERIODTIMER ==_
msTPERIODTIMERT clks 1_ =⋅=
1
0vreme
Ts2TsTclk
Counter - vremenski dijagram
2
1
TIMER_PERIOD = 1000 TIMER_COUNT
1000
999
998
Mikroprocesori i mikrokontroleri 35/30
TIMER_COUNT sadrži broj pridošlih impulsa
I u ovom modu je moguć prekid nakon nekog predefinisanog broja
Broj se može resetovati.
Mod pogodan za merenje POLOŽAJA i za PROCENU brzine rotora.
1
0
IMPULSI t
t
Primer Microchip brojačkog modula
Sličnost sa dosad ispričanim? Objasniti sliku.
Mikroprocesori i mikrokontroleri 36/30
16 –bitni Timer 2 blok dijagram - dsPIC30F4011/4012 Data Sheet
Signal generatori za motor control
Razna imena: PWM generator, Motor control PWM, Event menager, Output compare modul
PWM generator modul sličan za AC ili DC pogon
PWM signal
Faktor ispune
PWM signal
Faktor ispune
Uloga jedne grane PWM modula je da generiše PWM signal samostalno, bez opterećenja CPU.
Mikroprocesori i mikrokontroleri 38/30
Za jednu PWM periodu važi.
DCPWM
onSRi U
T
tU =
signal signal
Analogni PWM generator - praistorija
Output buffer
PWM pin
PWM base generator
PWM signalpin
+
+
Strujni izvor
+ −−−−
+
Definiše faktor ispune
P2
Signal generator (testera)
Mikroprocesori i mikrokontroleri 39/30
PWM base generator
Tpwm
+
P1 C
+ −−−−
Izbor C, struje i P1 definiše Tpwm
Blok dijagram je uprošćen i samo prikazuje princip rada. Prikazan je testerasti nosioc, za trougaoni nosilac je neophodan složeniji signal generator.
Uprošćen blok dijagram digitalnog PWM modula
Tclk Delitelj frekvencije 1:2:4:8:16
CLK PWM TIMER registar
(PTMR)
Output buffer
RESET
Dig. komparator
PWM duty cycle registar (PDC)
Upis PDC
PWM pin
2
PWM signal
Mikroprocesori i mikrokontroleri 40/30
PWM PERIOD registar (PTPER)
Dig. komparator
PTPER Upis PTPER
1
PWM base generator
Tpwm
signalpin
Prikazan testerasti nosioc, za trougaoni treba umesto RESET treba UP/DOWN ulaz
Karakteristike PWM modula
-Broj izlaznih linija, tri minimum za trofazne AC motore
-Broj bitova, uglavnom 10-bitni, preciznost ±±±±½ (Vdc/210)
-Clock signal, delitelj frekvencije.minimum 10bit Tpwm =Tclk*PWM_PERIODmaximum Tpwm=Tclk*MAX_DIVIDER*PWM_PERIOD(MAX)
Mikroprocesori i mikrokontroleri 42/30
-Tip nosioca testera/trougao
- Modovi rada Single /double update mod
-Način trenutnog ukidanja signala (fault mod)
-Sinhronizacione linije ka ADC i ostalim modulima
- Vrste prekida PWM modula
PWM generator modul sličan za AC ili DC pogon
1 Trougaoni PWM nosioc i modulišući pp signal 50Hz)
1 Trougaoni PWM nosioc i jednosmerna referenca
DC pogon AC pogon
Noseći testera/trougao signal samostalno generiše PWM modul a mi ga modulišemo promenom faktora ispune.
Mikroprocesori i mikrokontroleri 43/30
0 4ms 8ms 12ms 16ms 20ms 0
VDC
0
t (s)
Izlazni PWM signal jedne grane invertora
t (s)
0 4ms 8ms 12ms 16ms 20ms 0
VDC
0
t (s)
Izlazni PWM signal
t (s)
Zašto je digitalni DC pogon manje zahtevan?
Stanje watchdog brojačkog registra
0xFFFF
WD periodično resetovan (osvežen) od strane SW
Generisan RESET µµµµC
Watchdog je običan brojač koji kada stigne do cilja resetuje sistem. Šta je tu dobro?
Watchdog timer
Mikroprocesori i mikrokontroleri 46/30
Vreme
Dozvoljen rad WD Software više ne osvežava WD
Ako sistem zaglupi, Watchdog će nas spasiti !
Pažnja, ako je i Watchdog na sistemskom clocku ni on nas neće uvek spasiti !
µµµµC Napajanje 5V±±±±10%
Sve OK
Proizvoñač uC garantuje pravilan rad samo u specifičnom opsegu napona napajanja, na primer
Šta se dešava ako je na napon napajanja van opsega, na primer pri dizanju ili gašenju sistemu, ili tokom manjeg kvara
POR – power on reset
Mikroprocesori i mikrokontroleri 47/30
µµµµC Napajanje van opsega
?????
POR RESET0000
dizanju ili gašenju sistemu, ili tokom manjeg kvara
Primer za: 16 kB ROM , 16 kB RAM i jedan port !
magistrala za podatke
adresna magistrala 16-bitna
IO PORT chipselect
16- bitna
Mapiranje adresnog prostora –blok dijagram
... NE VALJA ...
Mikroprocesori i mikrokontroleri 49/30
magistrala za podatke
Kontrolna magistrala
Ulaz ili izlaz
OSC CPU ROM
16kB
IO port 1 byte
CS Data Adr Data CS
RAM 16kB
CS Data Adr Data Adr
0x0000
0x4000
16K 0x0000-0x3FFF
16K 0x4000-0x7FFF
Programska memorija (ROM 16K)
memorija za podatke (RAM 16K)
Primer za: 16 kB ROM , 16 kB RAM
A15
A14
CS ROM
ROM RAM
A13-A0
Mapiranje adresnog prostora
Mikroprocesori i mikrokontroleri 50/30
0x8000
0xFFFF
(RAM 16K)
Dva IO porta, 1 adresa za svaki port Port 1 ���� 0xABCD Port 2 ���� 0xABCF
0xABCD 0xABCF
Prazan prostor
Prazan prostor
A14
CS RAM
A15 A14 A13 ….. A0 ROM 0 0 x xRAM 0 1 x x
Primer za: 16 kB ROM , 16 kB RAM i jedan port !
A15 A14 A13 … A1 A0 ROM 0 0 x … x xRAM 0 1 x … x xPORT 1 0 1 … 0 1
A - A
Mapiranje adresnog prostora
Mikroprocesori i mikrokontroleri 51/30
A15 - A0
CS PORTA DIGITALNI KOMPARATOR
0xABCD
• Kod porta sa jednom adresom idu svi bitovi !• Kod 16k ROM i RAM , 14 bitova ostalo slobodno !
Primer za: 16 kB ROM , 16 kB RAM i jedan port !
magistrala za podatke
adresna magistrala 16-bitna
ROM chipselect
RAM chipselect
2 bita
2 bita
IO PORT chipselect
16- bitna 14- bitna 14- bitna
Mapiranje adresnog prostora –blok dijagram
Mikroprocesori i mikrokontroleri 52/30
magistrala za podatke
Kontrolna magistrala
Ulaz ili izlaz
OSC CPU ROM
16kB
IO port 1 byte
Data CS
RAM 16kB
CS Data Adr CS Data Adr Data Adr