sâmbătă, 27 august 2011

Introducere

Ce puteţi învăţa din acest tutorial?
Acest tutorial are ca scop familiarizarea cu un microcontroler, folosirea funcţiilor de bază şi crearea unor aplicaţii simpliste cum ar fi un ceas , afişare unui text pe LCD,un voltmetru,comanda unui motor de curent continuu şi multe altele.Aplicaţiile vor fi mai întâi simulate pe computer apoi încărcate pe o placă de dezvoltare pentru a putea vedea şi rezultatul fizic.De asmea puteţi rămâne doar la faza de simulare pe computer sau să vă creaţi dumneavostră propria placă de dezvoltare pe care să testaţi fizic aplicaţiile.

Înainte de start
Microcontrolerul cu care am ales să lucrez este produs de firma Atmel şi se numeşte ATMega 8. De ce l-am ales pe acesta? Pentru că este perfect pentru începători (şi aici recunosc că şi eu sunt începător), oferind o gamă largă de funcţii şi existând mai multe unelte puternice de dezvoltare pentru softul intern al chip-ului.

Pentru scrierea softului intern am ales IDE-ul CodeVision AVR C Compiler,deoarece oferă un mod wizard care generează automat o parte din cod ,uşurând munca programatorului. Totuşi pentru a scrie un program în acest mediu sunt necesare cunoştinţe de C.Pentru simure voi folosi programul ISIS Proteus 7 iar pentru încărcarea programelor pe microcontroler voi folosi PonyProg.Toate acestea le puteti descărca de la secţiunea Download-Software.

De asemenea şi câteva cunoştinţe de electronică nu ar strica pentru înţelegerea unor montaje electrite,însă chiar şi fără cunoştinţe prea mari veţi putea realiza la sfârşit aplicaţii destul de interesante şi poate chiar utile pentru viaţa de zi cu zi.

Ei bine poate că v-am băgat puţin în ceaţă însă nu vă speriaţi,toate acestea vor fi explicate pe parcurs.

Ce este un Microcontroler?
Un microcontroler poate fi văzut ca un calculator special care îndeplineşte sarcini relativ simple, cum ar fi controlul temperaturii într-o cameră,măsurarea şi afişarea nivelului de lichid dintr-un rezervor,achiziţionarea şi transmisia serială a unor date unui calculator de uz general şi exemplele pot continua.
Cele mai importante caracteristici ale unu microcontroler sunt :
-Structura internă procesorului.Aici ne interesează arhitectura internă, în marea majortate RISC(Reduce Instruction Set Computing) ,deoarece procesoarele cu o arhitectură de acest fel oferă o viteză ridicată de calcul si un număr redus de instrucţiuni. Totuşi , programând microcontrolerul in C instrucţiunile sunt mascate faţă de programator, singurul lucru care ne interesează fiind pe câţi biti este procesorul deoarece toţi regiştrii interni cu care vom lucra vor avea lungimea aceasta.De ce sunt atât de importanţi regiştrii?Deoarece prin ei putem seta o serie de caracteristici ale chip-ului, lucru pe care îl veţi vedea în exemplele ce vor urma.
-Memoria microcontrolerului.În general microcontrolerele au două tipuri de memorie, una nevolatilă în care este păstrat programul şi una volatilă în care sunt păstrate datele temporare.Memoria nevolatilă poate permite doar o dată scrierea (ROM- Read Only Memory) sau de tip FLASH , ea putând fii rescrisă de către utilizator de câteva zeci sau chiar sute de mii de ori.Deobicei memoria ROM se foloseşte atunci când microcontrolerul face parte din produse de serie, iar cea de tip FLASH se foloseşte atunci când se crează un prototip sau un număr redus de aplicaţii asemănătoare.
-Funcţiile oferite.Când vorbim de funcţii ne referim la sistemele periferice ale procesorului intern.Acestea pot fi: sistemul de întreruperi,sistemul de timere,sistemu de comunicare serial,sistemul de conversie analog digital,sistemul PWM şi multe altele.Majoritatea acestor sisteme vor fi prezentate separat pe parcursul tutorialului.
-Frecvenţa la care lucrează unitatea centrală.Este importantă în marea majoritate a aplicaţiilor, deoarece o frecvenţă potrivită poate face ca aplicaţia să lucreze în timp real.De exemplu un microcontroler care are rolul de a măsura distanţa şi viteza unei maşini faţă de un obstacol şi care mai are rolul şi de a frâna maşina pentru a preveni o ciocnire,poate frâna după ce accidentul s-a produs dacă frecveţa este scăzută, lucru complet nedorit.Frecvenţa unui microcontroler,precum şi frecvenţa calculatoarelor de uz general reprezintă numărul de instrucţiuni executate într-o secundă.Ea poate ajunge la nivelul zecilor sau sutelor de megaherţi, frecvenţă suficient de mare pentru rularea programelor în timp real.Sursa de frecvenţă a unui microcontroler poate fi externă sau internă, acest lucru fiind setat de către programator după plac.
-Numărul de pini şi tensiunea de alimentare.Numărul de pini poate fi un criteriu decisiv în alegerea microcontrolerului deoarece unele aplicaţii pot necesita un numar mare sau mic de dispozitive externe conectate, cum ar fi butoanele , LED-uri sau multe alte componente.Tensiunea de alimentare poate fi importantă atunci când vorbim de aplicaţii cu sursă de alimentare mobilă,unde tensiunea de alimentare ar fi bine să fie cât mai mică.De asemenea aici ne mai interesează şi puterea consumată şi care sunt modurile economice de funcţionare ale chip-ului.

Cam acestea ar fi cele mai importante caracteristici pe care trebuie să le urmărim la un microcontroler.Totuşi o alegere corectă se feace doar după ce toate aceste caracteristici au fost analizate cu atenţie.

Microcontrolerul ATMega8 este un microcontroler pe 8 biti,memoria flash este de 8Kb,frecvenţa până la 16MHz, are 32 de regiştrii de uz general,512B memorie volatilă pentru date,oferă sistem de întreruperi,convertoare analog-digitale,timere,module PWM ,interfaţă serial USART şi SPI,comparatoare,ceas de gardă, şi o serie de moduri de funcţionare economică.

În continuare vă voi prezenta pe rând uneltele de care avem nevoie pentru dezvotarea software.

0 comentarii:

Trimiteți un comentariu

Twitter Delicious Facebook Digg Stumbleupon Favorites More