Sunteți pe pagina 1din 7

1

MICROCONTROLERE AVR ATMEL PE 8 BII




Caracteristici generale

Microcontrolerul AVR are la baz un procesor RISC cu o arhitectur Harvard (adic unitatea
central de procesare are memorie de program i memorie de date separate). Pe baza acestui nucleu
RISC firma Atmel a dezvoltat mai multe familii de microcontrolere, cu diferite structuri de memorie i
de interfee I/O, destinate diferitelor clase de aplicaii.
Aceste microcontrolere sunt destinate aplicaiilor simple cum ar fi: controlul motoarelor,
controlul fluxului de informaie pe portul USB, controlul accesului de la distan (Remote Access
Control), .a..

Familia de microcontrolere AVR pe 8 bii prezint urmtoarele caracteristici:

1. Are memorie Flash programabil integrat, folosit ca memorie de program. Toate
procesoarele AVR au memorie de program integrat. Asta nseamn c nu ai nevoie de memorii
EPROM sau ROM externe pentru a stoca codul programelor. Programarea se poate face n dou
moduri: serial i paralel.
2. Are 32 de registre de lucru de 8 bii fiecare (acest lucru este specific procesoarelor
RISC). Numrul mare de registre de lucru permite stocarea variabilelor n interiorul
procesorului, n loc s fie stocate n memorie, lucru care necesit un timp mai lung pentru
accesare. n acest fel crete viteza de execuie a programului (deci va rula mai repede).
3. Are memorie de date integrat de tip EEPROM (Electrically Erasable Programmable
Read-Only Memory) i memorie RAM integrat. Unitatea central de prelucrare are arhitectur
Harvard, iar memoriile de tip RAM i EEPROM ale microcontrolerului sunt memorii de date,
fiind folosite pentru a stoca variabile, respectiv constante.
4. Are frecvena de lucru care poate fi controlat prin software de la 0 la 16 MHz. Cele mai
multe instruciuni sunt executate ntr-un singur ciclu de tact, ceea ce duce la mbuntirea
performanei de 10 ori fa de procesoarele convenionale care opereaz la aceeai frecven (de
exemplu: Intel 8051).
5. Realizeaz funcia de RESET fr decuplarea circuitului.
6. Are un timer programabil ncorporat cu circuit de prescalare separat, care este folosit
pentru sincronizarea aplicaiilor.
7. Surse interne i externe de ntrerupere.
8. Are un timer watchdog cu oscilator independent, care este folosit pentru recuperarea
informaiilor n caz de apariia unei erori software, dar mai poate fi folosit i n alte aplicaii.
9. Are 6 moduri de operare pentru economisirea energiei. Poate lucra n modurile de
operare SLEEP i POWER DOWN, moduri ce economisesc energie, atunci cnd procesorul nu
lucreaz.
10. Multe cipuri au oscilator integrat RC, care micoreaz i mai mult numrul
componentelor n cazul microcontrolerelor care-l conin.
11. Sunt prevzute cu o gam larg de dispozitive de I/O i de periferice ncorporate.
12. Beneficiaz de existena unui set unitar de instrumente software pentru dezvoltarea
aplicaiilor.
13. Are o compatibilitate mare, pornind de la procesoare mici cu 8 pini i ajungnd la
procesoare cu 68 de pini.

Microcontrolerele din familia AVR prezint o organizare de tip RISC din punctul de vedere al
execuiei unei instruciuni pe ciclu main. Prezena unor blocuri interne precum: oscilator intern,
timere, unitate UART (Universal asynchronous receiver/transmitter), interfa SPI, rezistoare pull-up,
PWM (pulse width modulation), convertoare analog-digitale, comparatoare analogice determin
utilizarea acestor microcontrolere ntr-o gam foarte larg de aplicaii.
2

Specific arhitecturii Harvard, microcontrolerele AVR folosesc spaii de memorie i magistrale de
acces separate pentru coduri i pentru date. Memoria de program care este de tip FLASH integrat,
poate fi programat fr scoaterea din sistem, ceea ce permie efectuarea rapid de upgrade-uri n
programe.
Instruciunile acestei familii de microcontrolere au fost proiectate pentru a reduce dimensiunea
unui program scris n limbaj C sau n limbaj de asamblare. Posibilitatea programrii memoriei FLASH
i a memoriei EEPROM, determin ca aceste microcontrolere s aib o larg utilizare datorat costului
mic de dezvoltare a unei aplicaii (au timpul de proiectare scurt).
Aceste microcontrolere au consum redus de energie. Domeniul tensiunilor de alimentare este
cuprins ntre 1,8V i 5V. Prezint 6 moduri diferite de operare cu consum redus de energie, ceea ce ne
asigur c aceste microcontrolere nu vor consuma energie dect atunci cnd este nevoie.
Controlul software al frecvenei de tact garanteaz o vitez maxim de execuie atunci cnd este
nevoie, iar n restul timpului microcontrolerul poate trece n modul STANDBY, unde consumul de
energie este minim. Utilizarea acestor microcontrolere poate reduce semnificativ timpul de dezvoltare a
unei aplicaii datorit prezenei unui bloc de depanare n timp real, circuitul aflndu-se chiar pe plac.
Printre cele mai utilizate microcontrolere de uz general putem aminti: ATMEGA 8, ATMEGA
16, ATMEGA 128, ATMEGA 162, etc..
Microcontrolerele din familia AVR pot fi att microcontrolere de uz general, ct i
microcontrolere cu funcii specializate, mprindu-se n urmtoarele categorii:
1. Familia TINY AVR cuprinde microcontrolere destinate unor aplicaii simple, cu 18 KB
memorie de program.
2. Familia MEGA AVR cu un set dezvoltat de instryciuni i cu 4256 KB memorie de
program.
3. Familia XMEGA AVR destinat unor aplicaii complexe. Acestea au uniti DMA
(Direct Access Memory), module pentru criptare, .a. i folosesc un spaiu de memorie de
program de 16 384 KB.
4. Microcontrolere AVR destinate unor aplicaii specifice, care se mpart n mai multe
categorii:
4.1. LI GTHI NG AVR: microcontrolere ce conin un procesor de semnal, fiind special
conceput pentru controlul motoarelor de curent continuu.
4.2. LCD AVR: microcontrolere ce conin un controler pentru adresarea dispozitivelor LCD
4.3. CAN AVR: microcontrolere ce conin o interfa CAN implementat hardware.

Microcontrolerele din familia AVR de 8 bii au un set de 131 instruciuni i 32 de registre de uz general.
Cele 32 de registre sunt direct adresabile de unitatea aritmetic i logic (UAL), permind accesarea a
dou registre independente ntr-o singur instruciune. Astfel se obine o eficien sporit n execuie,
fiind de pn la zece ori mai rapide dect microcontrolerele convenionale de tip CISC.

Microcontrolerul ATMEGA 16

Arhitectura AVR (firma ATMEL)
ATMEGA 16 este un microcontroler realizat de firma Atmel, avnd o tehnologie CMOS de 8
bii, de mic putere i o arhitectur RISC AVR mbuntit.
Caracteristicile principale ale acestui microcontroler sunt:
- 16 KB de memorie FLASH reinscriptibil pentru stocarea programelor;
- 1 KB de memorie RAM;
- 512 B de memorie EEPROM;
- dou numrtoare/temporizatoare de 8 bii;
- un numrtor/temporizator de 16 bii;
- un convertor analog digital de 10 bii, cu 8 intrri (intrri multiple);
- un comparator analogic;
- 4 canale PWM;
- conine 3 interfee pentru comunicaie: un modul USART pentru comunicaie serial (port serial),
interfa serial TWI i interfa serial SPI;
3

- un cronometru cu oscilator intern;
- ofer 32 de linii I/O organizate n patru porturi (PA, PB, PC, PD) cu 8 bii fiecare;
- are o magistral general de date la care sunt conectate mai multe module i anume: unitatea
aritmetic i logic (UAL), registrele generale, memoria RAM i memoria EEPROM, liniile de
intrare (adic porturile) i celelalte blocuri de intrare/ieire. Aceste ultime module sunt controlate de
un set special de registre, fiecare modul avnd asociat un numr de registre specifice.
- memoria FLASH de program mpreun cu ntreg blocul de extragere a instruciunilor, de decodare
i de execuie comunic printr-o magistral proprie, separat de magistrala de date menionat mai
sus. Acest tip de organizare este conform principiilor unei arhitecturi Harvard i permite
microcontrolerului s execute instruciunile foarte rapid.
n modul POWER DOWN se salveaz coninutul registrelor, dar se blocheaz oscilatorul,
dezactivndu-se toate celelalte funcii ale chip-ului pn la urmtoarea ntrerupere extern sau la
urmtorul RESET hardware. n modul POWER SAVE, timer-ul asincron continu s mearg n timp ce
restul dispozitivelor sunt oprite. n modul STANDBY, oscilatorul funcioneaz, n timp ce restul
despozitivului este oprit. Acest lucru permite un start foarte rapid combinat cu un consum redus de
energie, iar n modul STANDBY EXTINS (Extended Standby Mode), att oscilatorul principal ct i
timer-ul asincron continu s funcioneze.
ATMEGA 16 AVR este susinut de o serie complet de instrumente de program i de
dezvoltare a sistemului, care include: compilatoare C, macroasambloare, programe de debug/simulare,
.a..





























4

Descrierea pinilor la ATMEGA 16

Vcc Sursa de curent
GND Masa

Port A (PA7 .. PA0)
Portul A servete drept port de intrri analogice pentru convertorul A/D. Mai poate fi folosit, de
asemenea, i ca un port bidirecional I/O de 8 bii, n cazul n care convertorul A/D nu este folosit.
Pinii de port pot fi conectai opional la sursa de curent Vcc prin rezistori interni (selectai pentru fiecare
bit). Buffer-ele de ieire ale portului A au i caracteristici de amplificare .

Port B (PB7.. PB0)
Portul B este un port I/O de 8 bii bidirecional cu rezistori interni (opionali), dar poate ndeplini i
functii speciale ale microcontrolerului ATMEGA 16. Buffer-ele de ieire ale portului B au i ele
caracteristici de amplificare.

Port C (PC7PC0)
Portul C este un port I/O de 8 bii bidirecional cu rezistori interni (opionali), poate ndeplini i functii
ale interfeei JTAG (de depanare), ct i alte funcii speciale ale microcontrolerului ATMEGA 16.
Buffer-ele de ieire ale portului C au caracteristici de amplificare. Dac interfaa JTAG (de depanare)
este activat, rezistorii pinilor PC5(TDI), PC3(TMS) i PC2(TCK) vor fi activai, chiar dac are loc o
resetare.

Port D (PD7PD0)
Portul D este un port I/O de 8 bii bidirecional cu rezistori interni conectai opional la sursa de curent
Vcc (selectai pentru fiecare bit), dar poate ndeplini i functii speciale ale microcontrolerului
ATMEGA 16. Buffer-ele de ieire ale portului D au caracteristici de amplificare.

RESET - Un nivel sczut la acest pin mai mare ca durat dect o valoare prestabilit, va genera o
iniializare.
XTAL 1 - reprezint intrare pentru amplificatorul inversor al oscilatorului.
XTAL 2 - reprezint ieire pentru amplificatorul inversor al oscilatorului.

AVCC - este pinul de alimentare pentru portul A i convertorul A/D. Trebuie conectat extern la Vcc,
chiar dac convertorul analog-digital nu este folosit. Dac convertorul analog-digital este folosit, ar
trebui conectat la sursa de curent Vcc printr-un filtru trece-jos.

AREF - este pinul de referin analogic pentru convertorul A/D.
5

Unitatea central de prelucrare pentru AVR

Funcia principal a nucleului unitii centrale de prelucrare (UCP) este aceea de a asigura
execuia corect a programului. Din acest motiv, nucleul UCP este capabil s acceseze memoriile, s
execute calcule, s controleze perifericele i ntreruperile.


Figura 1 Schema bloc a nucleului UCP la microcontrolere AVR

Pentru a maximiza performana, AVR folosete o arhitectur Harvard cu memorii i magistrale
separate pentru program i date. Instruciunile din memoria programului sunt executate ntr-un singur
nivel n timp ce o instruciune este executat i urmtoarea este adus de la memoria de program. Acest
concept permite executarea instruciunilor la fiecare ciclu de ceas. Memoria de program este o memorie
de tip FLASH reprogramabil.
Registrele la AVR sunt n numr de 328 bii fiecare, scopul acestor microcontrolere fiind acela
de a accesa registrele ntr-un singur ciclu de ceas. Acest singur timp de acces se datoreaz unitii
aritmetice i logice (UAL=Unitatea Aritmetic i Logic). ntr-o unitate aritmetic i logic operaia are
loc astfel: operanzii sunt scoi din registru, se efectueaz operaia i rezultatul este introdus n regitri,
toate acestea fiind executate ntr-un singur ciclu de ceas. ase din cele 32 de registre pot fi folosite ca
trei registre de 16 bii cu acces indirect la informaii, permind astfel calcularea eficient a adresei. Una
dintre aceste adrese poate fi folosit pentru a cuta tabele n memoria de program.
Unitatea aritmetic i logic efectueaz (suport) operaii aritmetice i logice ntre registre sau
ntre o constant i un registru. Dup efectuarea unei operaii aritmetice registrul afieaz rezultatul
operaiei.
Programul furnizeaz salturi condiionate, necondiionate i apelri de instruciuni capabile s
acceseze tot spaiul de adres. Majoritatea instruciunilor AVR sunt formate dintr-un cuvnt de16 bii.
Spaiul memoriei de program (FLASH) este mprit n dou seciuni, seciunea BOOT i
seciunea de aplicare a programelor. Seciunea BOOT are bii speciali pentru protecia la scriere i
citire/scriere. De exempl u i nstruciunea SPM cu ajutorul creia se scrie n memoria FLASH
aplicaii trebuie s fie n seciunea BOOT.
n timpul ntreruperilor sau a apelrii subrutinelor, adresa de ntoarcere este coninut n stiv.
Stiva este efectiv alocat n informaiile generale SRAM i n consecin mrimea ei este limitat doar
de mrimea total a SRAM i de uzura ei. Toi utilizatorii de program trebuie s iniializeze
6

indicatorul de stiv SP (Stack Pointer) nainte ca subrutina sau ntreruperea s fie executat. SP se poate
citi/scrie n spaiul de I/O. Informaiile din SRAM pot fi accesate cu uurin prin cele cinci moduri
diferite de adresare suportate de arhitectura AVR.
Spaiile de memorie n arhitectura AVR sunt liniare i normale.
Modulele ntreruperilor au registrele de control n spaiul I/O i n Registrul STATUS se afl
bitul de ntreupere global. Toate ntreruperile au prioritate n funcie de locul ocupat n tabelul de
vectori de ntrerupere. Cu ct este mai jos situat n tabel vectorul de ntrerupere cu att acea ntrerupere
are prioritate mai mare. Prioritatea mai mare o are ntreruperea cu vectorul cel mai slab plasat n tabel.
Spaiul de memorie I/O conine 64 de adrese pentru funciuni periferice ale UCP precum:
controlul registrelor, indicatorul SPI sau alte funcii de I/O. Memoria I/O poate fi accesat direct sau
indirect.


Execuia n timp a instruciunilor
Aceast parte descrie n general timpul necesar executrii instructiunilor. UCP a MC
AVR este controlat de ceasul UCP generat direct de la surs. Nu se folosete nici un ceas interior.
Figura 6 ne prezint pipeline-ul de execuie al unei instruciuni permis n arhitectura Harvard
i accesul rapid la fiierul de registre. Acesta este conceptul de baz pentru a obine mai mult de 1
MIPS/MHz i cele mai bune rezultate din punct de vedere funciuni/cost, funciuni/timp i
funciuni/unitate.


Figura 6 - Instruciuni paralele de execuie

Figura 7 ne arat timpul de lucru cu registrele. ntr-un singur ciclu de ceas o operaie a UAL
folosete 2 registre pentru a executa calculul respectiv, iar rezultatul este stocat napoi n registrul de
destinaie.



Figura 7 - Operaii UAL ntr-un singur ciclu de ceas







7

ntreruperile

MC AVR furnizeaz mai multe tipuri de ntreruperi. Aceste ntreruperi i vectorul de resetare au
cte un vector de program fiecare aflat n spaiul memoriei de program. Tuturor ntreruperilor le sunt
alocate individual bii care trebuie scrii logic o dat cu bitul GIE (Global Interrupt Enable) n registrul
de stare cu scopul de a permite ntreruperea. n funcie de starea n care se afl PC (Program Counter),
ntreruperile pot fi invalidate, atunci cnd Boot Loader-ul este programat. Aceast tehnic
mbunattete securitatea.
Cele mai joase adrese din memoria de program sunt definite ca vectori de resetare i ntrerupere.
n funcie de list se determin i nivelurile de prioritate ale diferitelor ntreruperi. Cu ct ntreruperea
are nivelul mai jos, cu att prioritatea este mai mare. RESET are cea mai mare prioritate, iar dup
aceasta este INT0 - cererea de ntrerupere extern 0. Vectorii de ntrerupere pot fi mutai la nceputul
seciunii Boot Flash prin setarea bitului IV SEL din registrul global de control al ntreruperilor (GICR).
Vectorul de RESET poate fi, de asemenea, mutat la nceputul aceleiai seciuni prin programarea
seciunii BOOTRST.
Cnd apare o ntrerupere, bitul GIE (bitul I de ntrerupere) este ters i toate ntreruperile sunt
invalidate. Utilizatorul de software poate scrie 1 logic n bitul I pentru a permite executarea
ntreruperilor. Toate ntreruperile permise pot, la rndul lor, ntrerupe ntreruperile de rutin. Bitul I este
automat corectat cnd instruciunea RETI este executat.
Practic sunt dou tipuri de ntreruperi:
1. Primul tip este declanat de evenimentele care seteaz indicatorul de ntrerupere. Pentru
aceste ntreruperi PC este trimis la vectorii de ntrerupere n scopul executrii ntreruperilor de
rutin i hardware-ul terge indicatorul de ntrerupere corespunztor. Indicatorul de ntrerupere poate
fi ters i prin scrierea cu 1 logic. Dac se ntmpl o ntrerupere n timpul n care bitul care permite
ntreruperea este ters, atunci indicatorul de ntrerupere va fi setat s rein ntreruperea pn cnd
aceasta va putea fi permis sau indicatorul este ters de software. n caz similar se procedeaz atunci
cnd este vorba de tergerea indicatorului GIE.
2. Cel de-al doilea tip de ntreruperi este dat atta timp ct condiia de ntrerupere este
prezent. Aceste ntreruperi nu au neaprat indicator de ntrerupere. Dac condiia de ntrerupere
dispare nainte ca ntreruperea s fie permis, ntreruperea nu va mai fi executat. Cnd AVR iese dintr-
o ntrerupere se ntoarce la programul principal i mai execut o dat instruciunile nainte de a interveni
alt ntrerupere. Starea registrului nu este automat stocat cnd apare o ntrerupere de rutin, nici cnd
revine din ntreruperea de rutin. Acesta trebuie susinut de software.

De exemplu:
1. Cnd se folosete instruciunea CLI (Clear Interrupt) pentru invalidarea ntreruperilor,
ntreruperea va fi invalidat imediat. Nici o ntrerupere nu va mai fi executat dup
acionarea instruciunii CLI, chiar dac se ntmpl simultan cu instruciunea CLI.
2. Cnd se folosete instructiunea SEI (Set Interrupt) pentru a permite ntreruperi,
instruciunea SEI este rulat naintea oricrei instruciuni aflate n ateptare.

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

  • Microcontrolere
    Microcontrolere
    Document22 pagini
    Microcontrolere
    Alexandru-Iulian Ifrim
    Încă nu există evaluări
  • Microcontrolerul 8051
    Microcontrolerul 8051
    Document19 pagini
    Microcontrolerul 8051
    Dana Vrabii
    100% (1)
  • PMP c01
    PMP c01
    Document30 pagini
    PMP c01
    Raluca Ralu
    Încă nu există evaluări
  • 5b Exemple MC
    5b Exemple MC
    Document56 pagini
    5b Exemple MC
    Raluca Ralu
    Încă nu există evaluări
  • ATMEL
    ATMEL
    Document20 pagini
    ATMEL
    Anghel Nicolae
    Încă nu există evaluări
  • Lucrarea 3 Img
    Lucrarea 3 Img
    Document22 pagini
    Lucrarea 3 Img
    Raluca Ralu
    Încă nu există evaluări
  • Manual 1623 - 1625
    Manual 1623 - 1625
    Document16 pagini
    Manual 1623 - 1625
    Raluca Ralu
    Încă nu există evaluări
  • Lab 5
    Lab 5
    Document9 pagini
    Lab 5
    Raluca Ralu
    Încă nu există evaluări
  • Lab 2
    Lab 2
    Document17 pagini
    Lab 2
    Raluca Ralu
    Încă nu există evaluări
  • Analog-Digital Converter
    Analog-Digital Converter
    Document8 pagini
    Analog-Digital Converter
    Andrei Puican
    Încă nu există evaluări
  • Lab 6
    Lab 6
    Document7 pagini
    Lab 6
    Raluca Ralu
    Încă nu există evaluări
  • PMP c05
    PMP c05
    Document24 pagini
    PMP c05
    Raluca Ralu
    Încă nu există evaluări
  • At Mega
    At Mega
    Document19 pagini
    At Mega
    Ungureanu Bianka
    Încă nu există evaluări
  • PMP c06
    PMP c06
    Document27 pagini
    PMP c06
    Raluca Ralu
    Încă nu există evaluări
  • Lab 1
    Lab 1
    Document8 pagini
    Lab 1
    Raluca Ralu
    Încă nu există evaluări
  • PMP c04
    PMP c04
    Document36 pagini
    PMP c04
    Raluca Ralu
    Încă nu există evaluări
  • PMP c02
    PMP c02
    Document26 pagini
    PMP c02
    Raluca Ralu
    Încă nu există evaluări
  • PMP c03
    PMP c03
    Document27 pagini
    PMP c03
    Raluca Ralu
    Încă nu există evaluări
  • Comp Let Are Curs Micro Con
    Comp Let Are Curs Micro Con
    Document10 pagini
    Comp Let Are Curs Micro Con
    Diner Demergian
    Încă nu există evaluări
  • Partea II
    Partea II
    Document22 pagini
    Partea II
    Raluca Ralu
    Încă nu există evaluări
  • Lab 4
    Lab 4
    Document7 pagini
    Lab 4
    Raluca Ralu
    Încă nu există evaluări