Sunteți pe pagina 1din 8

Memoria de program a microcontrollerelor.

MCU din familia Microchip mid-range au un contor de program de:


13 biti => 213 = 8k spatiu de adresare 
16 biti => 216 = 64k spatiu de adresare (56k enhanced)
Instructiunile sunt organizate pe 14 biti si sunt ‘single word
Rezulta un spatiu de adresare de:
8k * 14 biti
56k * 14 biti
Spatiul de memorie de program este divizata in pagini de cate 2k fiecare

Contorul de program.

Pentru a comuta intre paginile de memorie de program, trebuie modificati cei mai
semnificativi biti din contorul de program( prin modificarea val unui registru
special SFR numit program counter latch high (PCLATCH))
Daca se executa instructiuni consecutive, contorul de program va trece de granitele
paginii fara interventia utilizatorului Pentru dispozitive care au implementat mai
putin de 8k de memorie de program, accesarea unei locatii peste cea fizica va
cauza accesarea adresei din pagina fizica, ignorand bitii din PCLATCH
Vectorul de reset
Un reset va forta contorul de program la valoarea 00h
Vom numi aceasta adresa “adresa vectorului de reset”
Orice reset va sterge continutul registrului PCLATCH Vectorul de intrerupere
Cand o intrerupere este recunoscuta, pc este fortat la adresa 04h.
Vom denumi aceasta adresa: “adresa vectorului de intrerupere”
Nu se modifica registrul PCLATCH Trebuie avut grija daca adresa de salt din
intrerupere este in alt bank de memorie Inainte de a fi modificat de ISR, continutul
PCLATCH trebuie salvat, astfel incat dupa revenirea din rutina de intrerupere,
continutul sau sa poata fi restaurant

Organizarea memoriei.
Contorul de Program (PC) specifica adresa instructiunii care trebuie adusa pentru
executie
Are dimensiunea de 13 biti sau 16 biti pentru modelele enhanced

Este compus din doi byte, unul mai semnificativ (PCH), altul mai putin
semnificativ (PCL) PCL
Este un registru care poate fi atat citit cat si scris PCH contine bitii sau din PC si nu
poate fi direct citit si scris, ci numai prin intermediul registrului PCLATCH

Stiva
- Memorie de tip LIFO
- Permite aparitia unor combinaetii de pana la 8 sau 16 apeluri de subrutine
sau intreruperi
- Contine adresa de reintoarcere din ramura de program active , in executia
programului
- Uc din gama mid-range au o stiva cu 8 niv x 13 biti
- Spatial stivei NU se poate citii sau scrie
- Continutului contorului de pargam este impins in stiva la executia unei
instructiuni sau cand o intrerupereprovoaca ramificare a programului
- PCLATCH nu este modificat atunci cand se executa operatii cu stiva

Prezentati un caz de setare a unei limite a memoriei de program.


Porturi de I/O.

PINUL I/O DE UZ GENERAL POATE FI CONSIDERAT CA CEL MAI


SIMPLU PERIFERIC
PINI I/O PERMIT MICROCONTROLLERULUI SA MONITORIZEZE SI
SA CONTROLEZE ALTE DISPOZITIVE
DIRECTIA IN SAU OUT A UNUI PIN ESTE CONTROLATA DE
REGISTRUL DE DIRECTIE A DATELOR NOTAT TRIS TRIS
CONTROLEAZA DIRECTIA PORTULUI x.
UN ‘1’ PE BITUL CORESPUNZATOR UNUI PIN, IL DESEMNEAZA
CA PIN DE INTRARE
UN ‘0’ PE BITUL CORESPUNZATOR UNUI PIN, IL DESEMNEAZA
CA PIN DE IESIRE
MEMORARE: ‘1’ INPUT ; ‘0’ OUTPUT
REGISTRUL PORT ESTE UN LATCH PENTRU DATELE DE IESIRE
CAND REGISTRUL PORT ESTE CITIT, SE CITESTE STAREA
PREZENTA A PINILOR I/O SI NU LATCH-UL! INSTRUCTIUNILE
CARE SE REFERA LA PORTURI SUNT DE TIP CITESTEMODIFICA-
SCRIE
ESTE RECOMANDAT CA LA INITIALIZAREA UNUI PORT I/O SA SE
RESPECTE URMATOAREA SUCCESIUNE:
1. INITIALIZAREA REGISTRULUI PORTx
2. INITIALIZAREA REGISTRULUI TRISx
RESPECTAREA SUCCESIUNII, ELIMINA POSIBILITATEA
APARITIEI GLITCH-ULUI LA NIVELUL PINULUI, IN TIMP CE
VALORILE DIN LATCH-UL DE DATE AL PORTULUI SUNT INTR-O
STARE ALEATOARE

Descrieti functionarea scrierii pe un pin de I/O.

SCRIEREA ACTUALA LA UN PORT I/O LA SFARSITUL CICLULUI


DE INSTRUCTIUNE, LA FEL CA IN CAZUL CITIRII, DATELE
TREBUIE SA FIE VALIDE LA INCEPUTUL CICLULUI DE
INSTRUCTIUNE .
TREBUIE AVUT GRIJA CAND APAR INSTRUCTIUNI DE SCRIERE
URMATE DE OPERATIUNI DE CITIRE, PE ACELASI PORT
SECVENTA DE PROGRAM TREBUIE SA PERMITA STABILIZAREA
VALORII TENSIUNII LA PIN, INAINTE CA URMATOAREA
INSTRUCTIUNE CARE CAUZEAZA CITIREA DE LA PORT SA FIE
EXECUTATA, ALTFEL S-AR PUTEA CITI VECHEA STARE A
PORTULUI IN LOC DE CEA CURENTA

3. Timerul
CIRCUITE DE TEMPORIZARE SI/SAU NUMARARE INDEPENDENTE
DE FUNCTIONAREA CPU VALOAREA REGISTRILOR POATE FI
CITITA SI SCRISA
LA DEPASIREA VALORII MAXIME SETEAZA UN BIT DE DEPASIRE
SI POT GENERA INTRERUPERI
SURSA SEMNALULUI DE CLOCK POATE FI INTERNA SAU
EXTERNA MICROCONTROLLERULUI FRONTUL PE CARE SE
FACE.
INCREMENTAREA CONTORULUI POATE FI ALES POT EXISTA
MAI MULTE TIMERE INTR-UN μC

Care sunt principalele caracteristici.


TIMER / COUNTER DE 8 BITI
POATE FI CITIT SI SCRIS
PRESCALER (PREDIVIZOR) DE 8 BITI PROGRAMABIL SOFTWARE
SURSA PENTRU SEMNALUL CLOCK POATE FI EXTERNA SAU
INTERNA
POATE GENERA INTRERUPERI LA DEPASIREA VALORII MAXIME
A REGISTRULUI TIMER DE LA FFh LA 00h
SE POATE SELECTA FRONTUL SEMNALULUI DE CLOCK PENTRU
SURSA EXTERNA

Descrieti functionarea unui timer simplu cu dimensiunea de 8 bit


TIMER2 ARE URMATOARELE PROPRIETATI:
- TIMER DE 8 BITI \
- POATE FI CITIT SI SCRIS
-PRESCALER SI POSTSCALER PROGRAMABILE SOFTWARE
-REGISTRU DE PERIOADA  UTILIZAT DE MODULUL CCP
PENTRU GENERAREA PWM
-UTILIZAT DE MODULUL UART PENTRU GENERAREA BAUD
RATE
SURSA SEMNALULUI SE CLOCK PENTRU TIMER2 :
-O SINGURA SURSA FOSC/4
-PRESCALER 1:1, 1:4 SAU 1:16
REGISTRII TIMER2 SI PERIOADA
-TMR2 POATE FI CITIT SAU SCRIS TMR2 SE INCREMENTEAZA DE
LA 00h PANA CAND ESTE EGAL CU PR2 SI APOI SE RESETEAZA
LA 00h
-PR2 POATE FI CITIT SAU SCRIS
IESIRE COMPARATOR TMR2
-TIMER2 POSTSCALER
- INTRAREA DE CLOCK A SSP
STERGEREA TIMER2 PRESCALER SI POSTSCALER
- LA SCRIEREA IN REGISTRUL TMR2
- LA SCRIEREA IN REGISTRUL T2CON
OPERAREA IN MODUL SLEEP
- TMR2 NU SE INCREMENTEAZA
-PRESCALERUL RETINE ULTIMA VALOARE, FIIND GATA DE
OPERARE DUPA CE MICROCONTROLLERUL REVINE DIN STAREA
SLEEP

1. Memoria de date a microcontrollerelor.


Memoria RAM de uz general
Registrii cu functiuni speciale (SFRs)
Organizarea
Memoria de date este impartita in bancuri de memorie atat pentru zona GPR cat si
pentru zona SFR
Pentru a putea face selectia bancurilor de memorie avem nevoie de biti de control
Acestia sunt localizati in registrul STATUS (STATUS) Organizarea bancurilor
difera de la dispozitiv la dispozitiv Pentru a muta continutul unui registru in altul,
valoarea trebuie sa treaca prin registrul W
Unii registrii sunt mapati in toate bancurile de memorie. Compilatprul are in
vedere organizarea datelor in bancuri de memorie
Tipuri de adresari

Adresare – directa & indirecta


Intreaga memorie poate fi accesata direct sau indirect
Adresarea directa poate necesita utilizarea bitilor RP1:RP0
Adresarea indirecta necesita utilizarea registrului de selectare a bancurilor (FSR)
si a bitului registrului pointer indirect (IRP) din registrul STATUS pentru
accesarea zonelor bank0/1 sau bank2/3 ale memoriei de date
Adresarea indirecta este un mod de adresare a memoriei de date, in care adresa
memoriei de date din instructiune nu este fixata
Este utilizat un registru SFR ca pointer la locatia din memoria de date care trebuie
citita sau scrisa
Prezentati un caz de adresare indirecta a memoriei de date.
Convertorul analog-digital
Un convertor analog – digital (ADC) este un circuit electronic care converteste o
tensiune analogica de la intrare intr-o valoare digitala. Aceasta poate fi
reprezentata in mai multe feluri in functie de codificarea datelor
O caracteristica importanta a unui ADC o constituie rezolutia acestuia. Rezolutia
indica numarul de valori discrete. O alta caracteristica importata a unui convertor
analog-digital o constituie rata de esantionare. Aceasta depinde de timpul dintre
doua conversii succesive si afecteaza modul in care forma de unda originala va fi
redata dupa procesarea digitala.
In functie de modul in care se executa conversia, convertoarele analog-digitale pot
fi de mai multe tipuri :  ADC paralel (Flash)  ADC cu aproximare succesiva 
ADC cu integrare
Descrieti functionarea unui modul ADC cu circuit de esantionare/memorare si
convertor cu aproximatii succesive de 10 bit.

Putem avea intrari diferentiale( seturi de intrari diferentiale). La sfarsitul


esantionarii se poate sa inceapa conversia sampling
Timpul de conversie este timpul de conversies al ADC+ timpul de esantionare
Exista posibilitatea sa fac esantionare simultana pe 4 canale ; daca facem
esantionare secventiala nu putem vedea defazajul dintre canale

S-ar putea să vă placă și