53
Osnovna znanja o mikroprocesorima i mikrokontrolerima Primena mikroprocesora u energetici predavanje 2 (Oktobar 2009)

Osnovna znanja o mikroprocesorima i mikrokontrolerima · 2.4. Analogno/digitalni konvertor u sklopu µµµµC 2.5. PWM generator 2.6. Kontroler prekida 2.7. Watchdogtimer 2.8. POR

  • 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

Mikroprocesorski sistem

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 !!!!

Mikroprocesorski sistem –izvršenje i tok programa

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.

Mikrokontrolerski sistem

µµµµ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

Ulazno/izlazni portovi

Digitalni ulazi/izlazi ( portovi )Analogni ulazi ( portovi )

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

10-bit High-speed ADC u dsPIC4011

Mikroprocesori i mikrokontroleri 31/30

Brojački sistemi timer/counter

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

Motor control modul unutar dsPIC4011

Mikroprocesori i mikrokontroleri 41/30

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?

Dodatne periferije mikrokontrolera

Kontroler prekida

µµµµP 8051

Kontroler prekida

Mikroprocesori i mikrokontroleri 45/30

µµµµP 8051

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

Adresna mapa mikrokontrolera

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

dsPIC30F4011/4012 PROGRAM i DATA space

Mikroprocesori i mikrokontroleri 53/30