Sunteți pe pagina 1din 4

CARACTERISTICILE MICROCONTROLERELOR

Tensiunea de alimentare
Deşi majoritatea microcontrolerelor sunt proiectate să funcţioneze la tensiunea standard de
alimentare de 5 V, există tot mai multe variante care operează la tensiuni reduse de 3 sau 3.3 V
sau chiar în domenii de tensiune 2 - 6 V, cu menţiunea că o tensiune de alimentare redusă
afectează de obicei negativ frecvenţa maximă de operare. Funcţionarea la tensiune de alimentare
redusă apropiată de cea limită din catalog (furnizată de o baterie sau un condensator de back-up)
poate fi uneori însoţită de erori, şi de aceea utilizarea unui WDT (atent testat în aplicaţie!) este o
protecţie necesară în acest caz.

Oscilatorul/generatorul de tact
Ca orice sistem sincron, microcontrolerul dispune fie de un oscilator extern cu cuarţ, fie de un
cristal cu cuarţ asociat unui oscilator intern, fie de varianta mai ieftină dar mai puţin precisă -
utilizarea unui rezonator ceramic.
Există modele care oferă un oscilator RC intern (economisind deci 1-2 pini din capsulă, aspect
deosebit de important mai ales la capsulele mici de 8 pini) sau extern, dar la care frecvenţa de
operare variază pronunţat cu tensiunea de alimentare, temperatura, abaterile tehnologice,
valoarea nominală a R şi C. Asemenea aplicaţii sunt recomandate doar acolo unde o variaţie
serioasă a frecvenţei de operare nu deranjează performanţele.
Frecvenţele de tact tipice variază în prezent între 4 şi 50 MHz. Spre deosebire de PC-uri, această
frecvenţă de operare nu oferă măsura absolută a capacităţii de procesare a controlerului,
exprimată în MIPS (millions of instructions per second), deoarece numărul de perioade necesar
executării unei instrucţiuni variază de la o familie de controlere la alta, iar unele instrucţiuni
necesită mai multe cicluri decât altele. O exprimare realistă este MIPS/MHz, care indică câte
instrucţiuni se execută la fiecare MHz al tactului. Frecvenţe de tact mari implică evident atât
consum de putere mai ridicat cât şi o emisie mai pronunţate de unde electromagnetice.

Intrarea de RESET\Activarea RESET iniţializează controlerul, acesta reluând execuţia ca la o


nouă punere sub tensiune. Majoritatea noilor microcontrolere vor porni la punerea sub tensiune
cu pinul RESET conectat la alimentare (VDD), dar unele modele mai vechi necesită un circuit
RC de pornire sigură.
Există microcontrolere care nu au un pin de RESET (în cazul capsulelor cu număr redus de pini),
eliberând un pin suplimentar I/O. Acestea nu pot fi resetate nard în timpul funcţionării (cu
excepţia bineînţeles a tăierii tensiunii de alimentare), aspect care poate fi depășit prin prezenţa şi
utilizarea unui WDT (timer watchdog).

Porturi I/O (I/O Ports)


Reprezintă cea mai comună facilitate hardware a controlerelor. Un port este de obicei un grup de
8 linii, care pot fi utilizate individual ca intrare sau ca ieşire şi care este adresat ca un singur
octet.
Fiecare linie poate fi configurată independent ca intrare sau ieşire, pot fi configurate rezistenţe de
pull-up pe intrări şi uneori pe ieşiri (o rezistenţă de valoare ridicată conectată la tensiunea de
alimentare VDD).

Este uzual pentru microcontrolerele moderne să multiplexeze mai multe funcţii pentru acelaşi pin
(nu este neobişnuit să existe chiar 6 asemenea funcţii asociate aceluiaşi pin). Pe lângă funcţia
fundamentală de intrare-ieşire digitală, celelalte funcţii sunt legate de periferice digitale
(întreruperi, timere, USART, SPI, l2C, etc) sau analogice (ADC, Comparator, DAC, etc).
În cadrul unui microcontroler pot exista pini care pot debita sau consuma un curent sporit (10-40
mA) faţă de 2-5 mA la pinii obişnuiţi. Este important de consultat foaia de catalog a
microcontrolerului pentru a nu depăşi curentul de alimentare total maxim admis pentru
microcontroler.

Protecţia la scăderea tensiunii de alimentare – Modulul BOD (Brown-Out Detector)


Acest modul BOD resetează controlerul dacă tensiunea de alimentare a scăzut sub o
anumită valoare, prestabilită (şi uneori programabilă) şi menţine starea de Reset până la
revenirea tensiunii de alimentare la valoarea nominală; Se obţine astfel o protecţie eficientă
împotriva comportării cu erori la tensiuni reduse de alimentare (inclusiv la funcţionarea
defectuoasă a memoriei EEPROM, acesta fiind cel mai puternic motiv pentru a utiliza această
facilitate). Există o serie de circuite externe cu 3 pini care efectuează această funcţie sau
regulatoare liniare integrate care au o ieşire de Reset destinată a fi conectată la pinul omonim al
microcontrolerului.
La microcontrolerele moderne există şi un alt modul numit LVD (Low Voltage
Detector - detectarea tensiunii scăzute), format dintr-un convertor digital analog (CDA), un
multiplexor şi un comparator. Odată activat, modulul LVD va monitoriza tensiunea la un pin,
comparând-o permanent cu o valoare programabilă, stabilită prin CDA (uzual între 1 şi 4 V). La
scăderea sub această valoare se va genera o întrerupere sau un RESET.

WDT (Watchdog Timer)


Orice microcontroler ar trebui sa aibă un WDT, iar în caz că nu are poate fi folosit oricând unul
extern.
WDT este un timer special folosit pentru revenirea din situaţii dificile, cum ar fi:
– probleme de software, ca de exemplu bucle infinite
– probleme de hardware care blochează funcţionarea corectă a programului.
Acest timer verifică că anumite porţiuni din program sunt atinse într-un timp predeterminat.
Acest timer are propriul oscilator intern cu ceas şi de aceea nu este afectat în funcţionare de
modurile tip “SLEEP” în care ceasul sistem este oprit.
WDT este utilizat pentru monitorizarea funcţionării corecte a sistemului:
– O dată ce este activat el începe decrementarea conţinutului său, începând cu o valoare
programată (timp programat în registrul său de control);
– Dacă ajunge la zero va activa intrarea de RESET a MC pentru iniţializare şi repornirea
programului;
– Pentru a bloca acţiunea de RESET, programul rulat trebuie să restarteze circuitul
watchdog timer înainte ca acesta să ajungă la zero;
– Este util în cazul erorilor nepermanente ale sistemului.
Un controler bun oferă și facilitatea de a diferenția un RESET produs de punerea inițială sub
tensiune de unul datorat unui WDT.

Timere
Un timer este în cel mai simplu caz un numărător programabil. Semnalul de tact este obţinut de
la oscilatorul controlerului sau poate fi un semnal aplicat unui pin. Unui timer i se poate asocia
un circuit de prescalare (şi uneori un circuit de postscalare) pentru a mări capacitatea de
numărare. În prezent timerele sunt pe 8 sau 16 biţi; numărarea poate avea loc în sens crescător
sau descrescător, dar este prestabilită pentru un tip de controler. Un timer poate genera o
întrerupere la depăşire (atunci când conţinutul său devine zero). De obicei timer-ul poate fi citit
şi scris în timpul funcţionării, facilitate care permite generarea unor intervale de timp extrem de
precise. Timer-ele moderne oferă în plus facilităţi de comparare şi sau captură.
Prin captură (capture) se stochează valoarea timer-ului în momentul în care apare o tranziţie
activă la unul din pinii controlerului, iar opţional se poate genera o întrerupere (figura 1.12
stânga).
Prin comparare (compare) se generează o întrerupere când timer-ul ajunge la o valoare
prestabilită (figura 1.12 dreapta).
PWM - Modulatorul în durată
Modulatorul în durată PWM (Pulse Width Modulation) produce un tren de impulsuri cu durata
programabilă a stării SUS şi JOS, prin aceasta permiţându-se modificarea factorului de umplere
(duty cycle). Semnalul PWM se poate utiliza direct (de exemplu pentru comanda unei diafragme
piezoelectrice sau intensităţii luminoase a unui LED sau bec) sau se poate filtra şi amplifica
(atunci poate comanda un motor de curent continuu, un difuzor sau o altă sarcină (figura 1.14)).

Chiar la microcontrolerele de 8 biţi, factorul de umplere poate avea o rezoluţie bună - de


exemplu de 10 biţi la PIC18F452. Aceasta înseamnă că un PWM urmat de un filtru RC trece-jos
se poate folosi ca o alternativă ieftină şi destul de precisă pentru a înlocui un CDA. În cazul
alimentării la +5V, un asemenea semnal PWM filtrat poate lua orice valoare între 0 şi 5 V cu o
rezoluţie de 5 / 1024 = 4.88 mV (unde 1024 = 2n, n = 10 biți).

Intrări şi ieşiri analogice (Analog Inputs and Outputs)


Microcontrolerele evoluate dispun de convertoare analog / digitale pe 8, 10 sau chiar 12 biţi.
Deoarece un microcontroler este un circuit "zgomotos " prin excelenţă, de cele mai multe ori este
oferită posibilitatea decuplării celorlalte periferice pe durata conversiei. De obicei o întrerupere
este generată la încheierea conversiei. Deoarece un convertor intern A / D reduce varietatea de
controlere disponibile (şi implică un preţ mai ridicat) uneori este utilă şi opţiunea unui CAD
extern. Acestea se pot conecta paralel sau serial dacă durata conversiei nu este esenţială - opţiune
extrem de interesantă. Un astfel de circuit este potrivit pentru această funcţie, deoarece
interfaţarea cu microcontrolerul este simplă şi sunt implicate puţine linii I / O (tipic trei sau
patru).
Un lanţ de prelucrare A / D şi D / A, numit uneori şi canal, prezentat în figura 1.15, porneşte de
la informaţia analogică (temperatura), o converteşte într-o mărime numerică, o prelucrează
numeric, o reconverteşte analogic şi în final o transmite.

Un număr foarte redus de controlere oferă convertoare D / A, cel mai adesea ca sursă de curent
programabilă, dar există modele şi cu ieşirea în tensiune. Şi în acest caz există opţiunea utilizării
unui convertor extern, care va utiliza 2-3 linii I / O (iar dacă este utilizat alături de alt circuit
serial - un CAD, va putea partaja magistrala serială a acestuia, adică un nou circuit serial
consumă o singură linie I (care este o linie I/O suplimentară pentru magistralele SPI, respectiv
nici una în cazul I2C).
Se pot imagina o serie de "trucuri" (modalităţi) pentru a înlocui CAD şi mai ales CDA. Pentru o
variaţie liniară la intrare se poate folosi combinaţia rezistenţă de pull-up internă şi un
condensator extern. Pentru a genera o tensiune analogică la ieşire se poate folosi PWM urmat de
un filtru trece-jos sau chiar o reţea R-2R externă.

Comparatorul analogic (Analog Comparator)


Includerea unui comparator analogic într-un microcontroler este o dezvoltare recentă, dar utilă
atunci când se intenţionează prelucrarea unor semnale analogice. Ieşirea comparatorului apare ca
un pin I / O sau ca un bit într-un registru şi poate genera o întrerupere. Datorită zgomotului
inerent intern, un comparator analogic integrat va fi de obicei mai puţin precis ca unul extern.

Ceasul de timp real


Unele microcontrolere, mai ales cele destinate aplicaţiilor de larg consum includ un ceas de timp
real (RTC real-time clock) care memorează data şi ora curentă chiar în regimul de operare de
putere redusă.
Regimul de putere redusă - Multe microcontrolere oferă în prezent posibilitatea intrării într-un
mod de operare de putere redusă (Low-Power Mode numit uneori SLEEP, IDLE, sau WAIT)
caracterizat printr-un consum extrem de redus şi încetarea execuţiei programului. Acest mod este
folosit pentru păstrarea cât mai îndelungată a sursei de alimentare secundare - o baterie,
condensator de valoare mare, etc. Microcontrolerul poate fi "trezit" de un timer, o întrerupere
externă sau schimbarea stării unui pin I / O. În regimul de putere redusă curentul de alimentare
este de ordinul microamperilor sau chiar mai mic şi depinde în principal de tensiunea de
alimentare şi temperatură.
Tactul ceasului de timp real este asigurat de un cristal miniatură de 32,768 KHz, iar RTC
generează o întrerupere la fiecare 1/2 secundă; rutina de tratare a întreruperii trebuie să
incrementeze corespunzător contorul de dată şi ora.

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