15
Mikroprocesorski Sistemi PIC18FXX2 FAMILIJA MIKROKONTROLERA Razlike u performansama u odnosu na PIC16F87X familiju Linearno adresiranje programske memorije do 32 Kbajta Linearno adresiranje memorije podataka (RAM) do 1.5 Kbajta Maksimalna radna brzina 10 MIPS (40MHz, PLL petlja u kolu oscilatora za multipliciranje taktne frekvencije 4 puta) 75 instrukcija Rezolucija instrukcijske reči je 16 bita Najveći broj instrukcija su jednorečne (16 bitne). Samo četiri instrukcije su dvorečne (zahtevaju dve lokacije programske memorije). Jednorečne instrukcije se izvršavaju u jednom instrukcijskom ciklusu, izuzev instrukcija grananja (dva ciklusa). Dvorečne instrukcije se izvršavaju u dva instrukcijska ciklusa, izuzev dvorečnih instrukcija grananja, čije vreme izvršenja je tri instrukcijska ciklusa. 18 izvora prekida Dva nivoa prioriteta za prekide Hardverski stack dubine 31 Ugrađen hardverski množač (8 x 8) koji rezultat generiše u jednom instrukcijskom ciklusu, pogodan za digitalnu obradu signala Dodatne periferije u odnosu na PIC16F87X familiju Tajmer0 modul sa programskim izborom 8-bitne ili 16-bitne rezolucije tajmera/brojača i 8-bitnim preskalerom Tajmer3 modul rezolucije 16 bita Adresabilni USART modul koji podržava RS-232 i RS-485 protokol Dodatne analogne karakteristike Programabilni BOR reset Programabilna detekcija niskog napona napajanja sa ugrađenim prekidnim mehanizmom

MPS Predavanje 3

  • Upload
    -

  • View
    26

  • Download
    4

Embed Size (px)

DESCRIPTION

mikrokontroleri mikroprocesori mikroprocesorski sistemi preavanja

Citation preview

Page 1: MPS Predavanje 3

Mikroprocesorski Sistemi

PIC18FXX2 FAMILIJA MIKROKONTROLERA

Razlike u performansama u odnosu na PIC16F87X familiju

Linearno adresiranje programske memorije do 32 Kbajta Linearno adresiranje memorije podataka (RAM) do 1.5 Kbajta Maksimalna radna brzina 10 MIPS (40MHz, PLL petlja u kolu oscilatora za multipliciranje

taktne frekvencije 4 puta) 75 instrukcija Rezolucija instrukcijske reči je 16 bita Najveći broj instrukcija su jednorečne (16 bitne). Samo četiri instrukcije su dvorečne

(zahtevaju dve lokacije programske memorije). Jednorečne instrukcije se izvršavaju u jednom instrukcijskom ciklusu, izuzev instrukcija grananja (dva ciklusa). Dvorečne instrukcije se izvršavaju u dva instrukcijska ciklusa, izuzev dvorečnih instrukcija grananja, čije vreme izvršenja je tri instrukcijska ciklusa.

18 izvora prekida Dva nivoa prioriteta za prekide Hardverski stack dubine 31 Ugrađen hardverski množač (8 x 8) koji rezultat generiše u jednom instrukcijskom ciklusu,

pogodan za digitalnu obradu signala

Dodatne periferije u odnosu na PIC16F87X familiju

Tajmer0 modul sa programskim izborom 8-bitne ili 16-bitne rezolucije tajmera/brojača i 8-bitnim preskalerom

Tajmer3 modul rezolucije 16 bita Adresabilni USART modul koji podržava RS-232 i RS-485 protokol

Dodatne analogne karakteristike

Programabilni BOR reset Programabilna detekcija niskog napona napajanja sa ugrađenim prekidnim mehanizmom

Pregled karakteristika Microchip-ove familije mikrokontrolera 18FXX2

Page 2: MPS Predavanje 3

Mikroprocesorski Sistemi

PIC18F4X2 mikrokontroler

Blok šema Microchip-ovog mikrokontrolera PIC18F4X2

Page 3: MPS Predavanje 3

Mikroprocesorski Sistemi

Taktovanje CPU

Za taktovanje mikrokontrolera predviđena su 4 tipa kristalnih oscilatora, 2 tipa eksternih RC i 2 tipa spoljašnjih EC taktnih izvora:

1. LP (Low Power Crystal) do 200KHz,2. XT (Crystal/Resonator) do 4MHz,3. HS (High Speed Crystal/Resonator) do 10MHz,4. HS+PLL (High Speed Crystal/Resonator with PLL) do 40MHz = 4 x 10MHz,5. RC (External Resistor/Capacitor) sa fOSC/4 na izlaznoj liniji OSC2/CLKO,6. RCIO (External Resistor/Capacitor with I/O pin enabled) sa linijom OSC2/CLKO

konfigurisanom kao dodatnom I/O linijom opšte namene (PORTA – RA6),7. EC (External clock) sa fOSC/4 na izlaznoj liniji OSC2/CLKO,8. ECIO (External clock with I/O pin enabled) sa linijom OSC2/CLKO konfigurisanom kao

dodatnom I/O linijom opšte namene (PORTA – RA6),

HS+PLL oscilator - blok dijagram

Promena sistemskog takta

PIC18FXX2 uređaji poseduju mogućnost promene taktne frekvencije prebacivanjem sa sistemskog taktnog izvora (jedan od 8 tipova oscilatora) na alternativni izvor taktnog signala niže frekvencije.

Alternativni izvor taktnog signala za PIC18FXX2 uređaje je oscilator Tajmer1 modula. Na primer, ukoliko Tajmer1 modul kao taktni oscilator koristi časovnički kvarc kristal 32768Hz, tada mikrokontroler može u toku rada programski biti prebačen u režim niske potrošnje.

Na slici ispod je prikazana blok šema sistemskih izvora taktnog signala.

Prebacivanje mikrokontrolera u režim niske potrošnje promenom izvora sistemskog takta

Page 4: MPS Predavanje 3

Mikroprocesorski Sistemi

Kontrolni registar za izbor sistemskog takta (OSCCON REGISTAR)

ORGANIZACIJA PROGRAMSKE MEMORIJE

21-bitnim programskim brojčem moguće je adresirati do 2Mbajta prostora programske memorije. Pristup lokacijama koje nisu fizički implementirane će rezultovati čitanjem nula (jedna NOP operacija).

Dubina stack-a je 31 nivo. 5-bitni pokazivač stack-a (stack pointer) inicijalizira se na vrednost nula posle bilo koje vrste reseta. U toku izvođenja CALL instrukcije npr., koja uzrokuje upis sadržaja PC u stack lokaciju, najpre se inkrementira pokazivač stack-a a potom vrši upis sadržaja PC u lokaciju na koju ukazuje pokazivač.

Page 5: MPS Predavanje 3

Mikroprocesorski Sistemi

U toku izvođenja RETURN instrukcije npr., koja uzrokuje transfer sadržaja sa lokacije stack-a u PC, najpre se vrši transfer sadržaja sa lokacije stack-a na koju ukazuje pokazivač u PC a potom dekrementira pokazivač.

Registar pokazivača stack-a je R/W registar. Sadržaj stack lokacije na koju ukazuje stack pokazivač čuva se u registrima TOSU, TOSH i TOSL što dopušta korisniku mogućnost implementacije softverskog stack-a. Status bitovi indiciraju prekoračenje ili podkoračenje stack pokazivača.

Povratna adresa stack-a i pridruženi registri

TAJMER 0 periferija

Integrisana periferija mikrokontrolera Tajmer 0 poseduje:

1. programski izbor rezolucije tajmera/brojača (8-bita/16-bita)2. tajmer/brojač registar TMR0 tipa R/W3. 8-bitni programabilni preskaler (delitelj)4. mogućnost internog ili eksternog taktovanja5. izbor ivice impulsa (uzlazna ili silazna) za eksterni takt6. prekid pri prekoračenju tajmera/brojača prilikom tranzicije iz stanja FFh u stanje 00h za 8-bitnu

rezoluciju ili iz stanja FFFFh u 0000h za 16-bitnu rezoluciju

Tajmer 0 može raditi kao tajmer ili kao brojač.Tajmerski (timer) radni režim ovog modula selektuje se resetovanjem bita T0CS (TMR0 clock

select bit) T0CON kontrolnog registra T0CON<5>. U ovom radnom režimu brojački registar Tajmera 0 inkrementira se internim taktom na svaki instrukcijski ciklus (bez preskalera). Posle jednog upisa u TMR0L registar, u naredna dva instrukcijska ciklusa inkrement brojačkog registra je onemogućen.

Brojački (counter) radni režim modula selektuje se setovanjem bita T0CS (TMR0 clock select bit) T0CON registra T0CON<5>. U brojačkom radnom režimu brojački registar Tajmera 0 inkrementira se na svaku rastuću ili opadajuću ivicu impulsa spoljašnjeg taktnog signala na pinu RA4/T0CKI. (bez preskalera). Ivica spoljašnjeg impulsa kojom se inkrementira brojački registar Tajmera 0 bira se setovanjem/resetovanjem bita T0SE (TMR0 source edge select bit) T0CON registra T0CON<4>. Resetovani bit odgovara rastućoj ivici impulsa i suprotno.

Zbog sinhronizacije spoljašnjeg taktnog signala sa jednom fazom internog takta, TOSC, postoji izvesno kašnjenje pri inkrementiranju Tajmer 0 modula posle sinhronizacije.

Preskaler

8-bitni brojač je raspoloživ kao preskaler za Tajmer 0 modul. Registar preskalera nije tipa R/W.Status bitova kontrolnog registra T0CON T0CON<3:0>, PSA (prescaler assignment bit) i

T0PS2:T0PS0, određuju dodelu preskalera Tajmer 0 modulu ili ne, i odnos preskaliranja respektivno.Kada je preskaler dodeljen Tajmeru 0 (PSA=0), upis u TMR0L brojački registar (CLRF TMR0,

MOVWF TMR0, BSF TMR0, x itd.) briše registar preskalera ali ne utiče na njegovu dodelu Tajmer 0 modulu.

Dodela preskalera je pod programskom kontrolom i može biti promenjena u toku izvođenja programa (on the fly).

Page 6: MPS Predavanje 3

Mikroprocesorski Sistemi

Tajmer 0 prekid

Tajmer 0 prekid se generiše na prelazu osmobitnog brojačkog registra TMR0 iz stanja FFh u stanje 00h (prilikom prekoračenja brojačkog registra) ili na prelazu iz stanja FFFFh u stanje 0000h za slučaj kada je Tajmer 0 konfigurisan u 16-bitnom radnom režimu. Ovo prekoračenje setuje flag bit TMR0IF. Prekid može biti onemogućen (maskiran) resetovanjem bita TMR0IE. TMR0IE bit mora biti programski resetovan unutar rutine za obradu prekida sa Tajmer 0 modula pre reomogućenja ovog prekida. izlaska iz prekidne rutine kako bi se regularno reomogućio Tajmer 0 prekid.

Prekid Tajmer 0 modula se ne može iskoristiti za buđenje mikrokontrolera iz SLEEP režima budući da se brojački registar Tajmera 0 taktuje internim taktom, jednakim četvrtini frekvencije kristalnog oscilatora (trajanje instrukcijskog ciklusa), ili je spoljnji takt sinhronizovan internim koji se blokira po uspostavljanju stanby režima.

16-bitni režim rada Tajmer 0 modula

TMR0H registar je baferski registar višeg bajta Tajmera 0. Viši bajt Tajmera 0 nije direktno upisni niti direktno čitajući registar. Sadržaj višeg bajta Tajmera 0 se u toku ciklusa čitanja TMR0L registra prenosi u TMR0H registar. Na taj način je osiguran validni prenos svih 16 bitova Tajmera 0 u jednom instrukcijskom ciklusu. Čitanje TMR0H registra vrši se u narednom instrukcijskom ciklusu imajući u vidu 8-bitnu magistralu podataka. Sadržaj TMR0H registra prenosi se u viši bajt Tajmer 0 modula u toku operacije upisa u TMR0L registar što dopušta 16-bitnom registru Tajmera 0 da bude napunjen u jednom instrukcijskom ciklusu.

Page 7: MPS Predavanje 3

Mikroprocesorski Sistemi

Blok dijagram Tajmer 0 modula u 8-bitnom modu

Blok dijagram Tajmer 0 modula u 16-bitnom modu

SFR registri pridruženi Tajmer 0 modulu

Page 8: MPS Predavanje 3

Mikroprocesorski Sistemi

Tajmer 1 modul

Blok dijagram Tajmer 1 modula (dva 8-bitna ciklusa upisa/čitanja)

Blok dijagram Tajmer 1 modula (jedan 16-bitni ciklus upisa/čitanja)

SFR registri pridruženi Tajmer 1 modulu

Page 9: MPS Predavanje 3

Mikroprocesorski Sistemi

Tajmer 3 modul

Blok dijagram Tajmer 3 modula (dva 8-bitna ciklusa upisa/čitanja)

Page 10: MPS Predavanje 3

Mikroprocesorski Sistemi

Blok dijagram Tajmer 3 modula (jedan 16-bitni ciklus upisa/čitanja)

Page 11: MPS Predavanje 3

Mikroprocesorski Sistemi

SFR registri pridruženi Tajmer 1 modulu

CCP modul

Capture mod

Blok dijagram CCP modula u režimu Capture

Compare mod

Page 12: MPS Predavanje 3

Mikroprocesorski Sistemi