Microcontrollerele din familia AVR prezinta o organizare de tipul RISC executand
o instuctiune / ciclu masina. Prezenta unor blocuri interne ca : oscilator intern , timere ,
unitate UART , SPI , rezistoare pull-up , PWM ( pulse widith modulation) , ADC ,
comparatoare, determina utilizarea acestor microcontrollere intr-o gama foarte larga de
aplicatii.
Instructiunile acestei familii de microcontrollere au fost proiectate pentru a
reduce dimensiunea unui program scris in limbaj C sau in limbaj de asamblare.
Posibilitatea programarii memoriei FLASH si a memoriei EEPROM, determina ca
aceste microcontrollere sa aiba o larga utilizare datorata costului mic de dezvoltare a unei
aplicatii (timpul de proiectare scurt).
O alta calitate remarcabila a acestor microcontrollere este consumul foarte mic
de energie. Domeniul tensiunilor de alimentare este cuprins intre 1.8 si 5V.Prezinta 6
moduri diferite de stand-by ceea ce ne asigura ca aceste microcontrollere nu vor consuma
energie decat atunci cand este nevoie.
Controlul software al frecventei garanteaza o viteza maxima de executie atunci
cand este nevoie , iar in restul timpului microcontrolerul poate trece in stand-by unde
consumul de energie este minim.
Utilizarea acestor microcontrollere poate reduce semnificativ timpul de dezvoltare
a unei aplicatii datorita prezentei pe acestea a unui bloc de depanare in timp real ,
circuitul aflandu-se chiar pe placa ce reprezinta aplicatia. Se pot face in timp real operatii
de "watch" asupra unor registri , operatii de rulare pas cu pas , operatii de oprire in
breakpoint.
Sunt produse microcontrollere de uz general precum si microcontrollere cu functii
specializate.
Printre cele mai utilizate microcontrollere de uz general putem specifica :
ATMEGA 8 , ATMEGA 16 , ATMEGA 128, ATMEGA 162. etc.
Microcontrollerele cu functii specializate se impart in mai multe catagorii :
- Ligthing AVR : contin un procesor de semnal si este special conceput pentru
controlul motoarelor de curent continuu.
- LCD AVR : contin un controler pentr adresarea dispozitivelor LCD
- CAN AVR : contin implementata hardware o interfata CAN.
CAP. 2 ATmega 16 ARHITECTURA
2.1 INTRODUCERE
ATmega 16 este un microcontroler CMOS de 8 - biti de mica putere bazat pe
arhitectura RISC AVR imbunatatita.
Dispune de un set de 131 instructiuni si 32 de registre de uz general. Cele 32 de
registre sunt direct adresabile de Unitatea Logica Aritmetica (ALU), permitand accesarea a
doua registre independente intr-o singura instructiune. Se obtine astfel o eficienta sporita in
executie (de pana la zece ori mai rapide decat microcontrorelerele convetionale CISC).
2
ATmega16 este un microcontroler RISC pe 8 biti realizat de firma Atmel.
Caracteristicile principale ale acestuia sunt:
- 16KB de memorie Flash reinscriptibila pentru stocarea programelor
- 1KB de memorie RAM
- 512B de memorie EEPROM
- doua numaratoare/temporizatoare de 8 biti
- un numarator/temporizator de 16 biti
- contine un convertor analog - digital de 10 biti, cu intrari multiple
- contine un comparator analogic
- contine un modul USART pentru comunicatie seriala (port serial)
- dispune de un cronometru cu oscilator intern
- ofera 32 de linii I/O organizate in patru porturi (PA, PB, PC, PD).
Structura interna generala a controlerului este prezentata in Figura 1. Se poate
observa ca exista o magistrala generala de date la care sunt conectate mai multe module:
- unitatea aritmetica si logica (ALU)
- registrele generale
- memoria RAM si memoria EEPROM
- liniile de intrare (porturile - I/O Lines) si celelalte blocuri de intrare/iesire. Aceste
ultime module sunt controlate de un set special de registre, fiecare modul avand
asociat un numar de registre specifice.
Memoria Flash de program impreuna cu intreg blocul de extragere a instructiunilor,
decodare si executie comunica printr-o magistrala proprie, separata de magistrala de date
mentionata mai sus. Acest tip de organizare este conform principiilor unei arhitecturi
Harvad si permite controlerului sa execute instructiunile foarte rapid.
Modul Power-down salveaza continutul registrelor, dar blocheaza Oscilatorul,
dezactivand toate celelalte functii al chip-ului pana la urmatoarea Intrerupere Externa sau
Reset hardware. In modul Power-save, timer-ul asincron continua sa mearga, permitind userului
sa mentina o baza de timp in timp ce restul dispozitivului este oprit.
In modul Standby , Oscilatorul functioneaza in timp ce restul despozitivului este oprit.
Acest lucru permite un start foarte rapid combinat cu un consum redus de energie. In modul
stanby extins(Extended Stanby Mode), atat Oscilatorul principal cat si timer-ul asincron
continua sa functioneze.
Memoria flash (On-chip) permite sa fie reprogaramata printr-o interfata seriala SPI , de
catre un programator de memorie nonvolatila conventional, sau de catre un program de boot
On-chip ce ruleaza pe baza AVR. Programul de boot poate folosi orice interfata sa incarce
programul aplicatie in memoria Flash de aplicatie.
Combinand un CPU RISC de 8 biti cu un Flash In-system auto - programabil pe un chip
monolithic, ATmega 16 este un microcontroler puternic ce ofera o solutie extrem de flexibila si
cu un cost redus in comparatie cu multe altele de pe piata.
ATmega 16 AVR este sustinut de o serie completa de instrumente de program si de
dezvoltare a sistemului, care include: compilatoare C, macroasambloare, programe debug/
simulare etc.
Diagrama bloc :
Documentul este oferit gratuit,
trebuie doar să te autentifici in contul tău.