Programare AVR. Programarea microcontrolerelor AVR pentru incepatori

Microcontrolerele sunt mici, dar în același timp și dispozitive foarte convenabile pentru cei care doresc să creeze diferite domenii uimitoare robotizate sau automate. În cadrul acestui articol, va fi luată în considerare programarea AVR pentru începători, diverse aspecte și nuanțe ale acestui proces.

Informații generale

programare avrMicrocontrolerele se găsesc peste tot. Ele sunt în frigidere, mașini de spălat, telefoane, mașini-unelte în producție, case inteligente și în multe alte dispozitive tehnice. Aplicația lor omniprezentă se datorează posibilității înlocuirii circuitelor dispozitivelor analogice mai complexe și mai mari. Programarea AVR vă permite să vă asigurați controlul autonom asupra dispozitivelor electronice. Aceste microcontrolere pot fi reprezentate ca un computer simplu care poate interacționa cu echipamente externe. Deci, pot deschide / închide tranzistori, recepționează date de la senzori și le afișează pe ecrane. De asemenea, microcontrolerele pot efectua diverse procesări ale informațiilor de intrare, cum ar fi un computer personal. Dacă AVR învețe programare de la zero și să ajungă la nivel profesional, se va deschide posibilități nelimitate de a controla dispozitive diferite prin porturile I / O, precum și modificări în codul lor.

Un pic despre AVR

Programarea în CÎn cadrul acestui articol, familia de microcontrolere produse de Atmel va fi luată în considerare. Ele au o performanță destul de bună, care le permite să fie utilizate în multe dispozitive amatori. Utilizată pe scară largă în industrie. Vă puteți întâlni în această tehnică:

  1. De uz casnic. Mașini de spălat, frigidere, cuptoare cu microunde și așa mai departe.
  2. Mobile. Roboți, mijloace de comunicare și așa mai departe.
  3. Computing. Sisteme de gestionare a dispozitivelor periferice, plăci de bază.
  4. Divertisment. Ornamente și jucării pentru copii.
  5. Transport. Sisteme de securitate și managementul motorului.
  6. Echipament industrial. Sisteme de control al mașinilor.

Aceasta, desigur, nu este toate sferele. Ele sunt utilizate acolo unde este avantajos să nu se utilizeze un set de microcircuite de control, ci un microcontroler. Acest lucru este posibil datorită consumului redus de energie și producția simplificată. Pentru scrierea programelor, C și Assembler sunt folosite, ușor modificate pentru o familie de microcontrolere. O astfel de schimbare este necesară din cauza capacităților slabe de calcul, care sunt de obicei calculate în zeci de kilobyte. Programarea AVR fără a învăța aceste limbi nu este posibilă.

Cum să obțineți primul microcontroler?

Programarea AVR necesită:

  1. Prezența mediului de dezvoltare necesar.
  2. Microcontrolerele reale.

Al doilea element va fi discutat în detaliu. Există trei posibilități de a achiziționa dispozitivul necesar:

  1. Cumpărați direct microcontrolerul.
  2. Obțineți un dispozitiv ca parte a constructorului (de exemplu - Arduino).
  3. Asamblați singur microcontrolerul.

În primul paragraf, nu este nimic complicat, așa că vom merge direct la al doilea și al treilea.

Obțineți un dispozitiv ca parte a designerului

cursuri de programareCa exemplu, faimosul Arduino va fi ales. Asta este constructor electronic, part-time platforma convenabilă pentru dezvoltarea rapidă și de înaltă calitate a diferitelor dispozitive electronice. Placa Arduino include un anumit set de componente pentru lucru (există configurații diferite). Acesta include în mod necesar un controler AVR. Această abordare ne permite să dezvolte rapid dispozitive care nu necesită aptitudini speciale, are capacitate semnificativă de a conecta carduri suplimentare, precum și pe internet pot găsi o mulțime de informații cu privire la întrebările. Dar nu fără păcate. Cumpărarea Arduino, un om se privează de posibilitatea de o scufundare mai adânc în AVR-programare, pentru a cunoaște un microcontroler, specificul muncii sale. De asemenea, o linie relativ mică de modele adaugă un negativ, care necesită adesea plăci de cumpărare pentru anumite sarcini. Particularitatea este și faptul că programarea pe "SI" diferă destul de puternic față de formularul standard. În ciuda tuturor neajunsurilor sale, Arduino este potrivit pentru explorarea începătorilor. Dar nu abuzați.

asamblare

Trebuie remarcat faptul că microcontrolerele AVR sunt destul de prietenoase pentru începători. Puteți să le colectați singur cu accesorii accesibile, simple și ieftine. Dacă vorbim despre profesioniști, atunci această abordare vă permite să vă familiarizați mai bine cu dispozitivul, să alegeți singuri componentele necesare, să ajustați rezultatul final la cerințele prezentate, să utilizați limbi de programare standard și ieftinătate. Dintre minusuri, putem nota doar complexitatea auto-adunării, atunci când se desfășoară pentru prima dată și nu există cunoștințe și abilități necesare.

Cum sa lucrezi?



programe pentru programarea avrDeci, să spunem că problema cu microcontrolerul a fost rezolvată. În plus, se va considera că a fost achiziționată sau cumpărată independent. Ce altceva trebuie să înveți programarea AVR? În acest scop, aveți nevoie de un mediu de dezvoltare (notepad-ul obișnuit este potrivit ca bază, dar recomand să vă opresc pe Notepad ++). Deși există alte programe pentru programarea AVR, securitatea dată poate face față tuturor cerințelor. De asemenea, este nevoie de un programator. Poate fi achiziționat de la un magazin din apropiere, comandat online sau colectat independent. Nu interferați și plăcile de circuite imprimate. Nu este necesar, dar utilizarea lui vă permite să vă salvați nervii și timpul. De asemenea, cumparat / creat independent. Și ultima este o sursă de energie. Pentru AVR, este necesar să se asigure o tensiune de 5V.

Unde și cum să învățați?

Crearea capodoperelor de la zero nu funcționează. Aceasta necesită cunoștințe, experiență și practică. Dar unde să le aducem? Există mai multe moduri. Inițial, puteți căuta în mod independent informațiile necesare în rețeaua globală. Puteți scrie pentru cursuri de programare (distanță sau full-time) pentru a obține abilități de bază. Fiecare abordare are avantajele sale. Deci, cursurile de programare la distanță vor fi mai ieftine, și poate gratuit. Dar dacă ceva nu funcționează, atunci în cadrul sesiunilor personale, un dezvoltator cu experiență poate găsi rapid cauza problemei. De asemenea, nu este inutil să te familiarizezi cu literatura care are acces liber. Desigur, pe unele cărți nu puteți pleca, dar puteți obține cunoștințe de bază despre dispozitiv, programare pe "SI", "Assembler" și alte momente de lucru.

Porturi I / O

programare avAcesta este un subiect extrem de important. Fără a înțelege modul în care funcționează porturile I / O, nu este posibil să programați programarea AVR în circuit. La urma urmei, interacțiunea microcontrolerului cu dispozitive externe se realizează tocmai prin intermedierea lor. La prima vedere, un începător poate crede că portul este un mecanism destul de confuz. Pentru a evita o astfel de impresie, nu vom analiza în detaliu schema lucrării sale, ci doar o idee generală despre acest lucru. Luați în considerare o implementare a software-ului. Ca un exemplu de dispozitiv a fost ales microcontroler AtMega8 - unul dintre cele mai populare din intreaga familie de AVR. Portul I / O este cele trei registre care sunt responsabile de funcționarea acestuia. La nivel fizic, ele sunt realizate ca picioare. Fiecare dintre ele corespunde unui anumit bit din registrul de control. Fiecare picior poate funcționa atât pentru introducerea informațiilor, cât și pentru ieșirea lor. De exemplu, poate suspenda funcția de aprindere a LED-ului sau de prelucrare a butonului. Apropo, trei registre, care au fost menționate, sunt: ​​PORTx, PINx și DDRx. Fiecare dintre ele este de opt biți (nu uitați că avem în vedere AtMega8). Adică, un pic este angajat într-un anumit picior.

Activitatea registrelor

Cel mai important în ceea ce privește orientarea este managerul DDRx. De asemenea, este de opt biți. Valorile pentru aceasta pot fi scrise 0 sau 1. Cum funcționează controlerul când se folosesc zerouri și altele? Dacă setați 0 la un anumit bit, piciorul corespunzător va fi comutat în modul de intrare. Și cu aceasta puteți citi datele provenite de la dispozitive externe. Dacă este setat la 1, microcontrolerul va putea să controleze ceva (de exemplu, să dea o comandă tranzistorului să sări peste tensiune și să lumineze LED-ul). Al doilea cel mai important este PORTx. El este implicat în gestionarea piciorului. Să ne uităm la un exemplu. Să presupunem că avem un port de ieșire. Dacă setăm unitatea logică în PORTx, atunci semnalul de la microcontroler este trimis către dispozitivul de comandă pentru a începe să funcționeze. De exemplu, aprindeți LED-ul. Când setați zero, va fi stins. Adică nu este nevoie să lucrați permanent cu managerul de registru DDRx. Și, în cele din urmă, să vorbim despre PINx. Acest registru este responsabil pentru afișarea stării piciorului controlerului atunci când este setat la starea de intrare. Trebuie remarcat faptul că PINx poate funcționa numai în modul citire. Scrie-o nu funcționează. Dar aici pentru a citi starea actuală a picioarelor - nu este o problemă.

Lucrați cu analogi

AVR-urile nu sunt singurele microcontrolere. Această piață este împărțită între mai mulți producători mari, precum și între numeroase dispozitive de imitație chinezească și obiecte de casă. În multe privințe, ele sunt similare. De exemplu, programarea PIC / AVR nu este mult diferită. Și dacă există o înțelegere a unui lucru, atunci va fi ușor să înțelegeți orice altceva. Dar modul de a începe este recomandată toate aceleași cu AVR, datorită structurii sale competente, prietenos dezvoltator și numărul mare de materiale auxiliare, motiv pentru care procesul de dezvoltare poate fi accelerată în mare măsură.

Măsuri de siguranță

in-circuit de programare avrCând programați microcontrolerele AVR la "SI" sau "Assembler", este necesar să lucrați foarte atent. Faptul este că, prin setarea unei anumite combinații de registre și schimbarea setărilor interne, puteți bloca în siguranță microcontrolerul. Acest lucru este valabil în special pentru fizioterapii. Dacă nu există încredere în corectitudinea acțiunilor lor, este mai bine să renunțăm la folosirea lor. Același lucru este valabil și pentru programatori. Dacă cumpărați echipament din fabrică, atunci acesta va bloca microcontrolerele fără probleme. La asamblarea de către dvs., poate apărea o situație tristă în care programatorul va bloca dispozitivul. Acest lucru se poate întâmpla atât din cauza unei erori în codul programului, cât și printr-o funcționare defectuoasă a acestuia. Apropo, un moment mai mult (moment dat pozitiv), care a fost menționat anterior în trecere, dar nu a fost dezvăluit pe deplin. Acum, aproape toate microcontrolerele moderne au o funcție de programare în circuit. Ce înseamnă asta? Să spunem că dispozitivul a fost sudat pe placă. Și pentru a schimba firmware-ul, acum nu este necesar să-l evaporați, deoarece astfel de interferențe pot deteriora microcontrolerul în sine. Este suficient să vă conectați la ieșirile corespunzătoare și să o reprogramați cu mijloace proprii.

Ce model să alegeți?

În cadrul acestui articol, a fost analizat AtMega8. Acesta este un microcontroler destul de mediocru pentru caracteristicile sale, care, totuși, este suficient pentru majoritatea obiectelor de artizanat. Dacă există dorința de a crea ceva masiv, atunci putem lua monștri deja originali, cum ar fi Atmega128. Dar ele sunt concepute pentru dezvoltatori mai experimentați. Prin urmare, dacă nu există suficientă experiență, este mai bine să începeți cu dispozitive mici și simple. În plus, ele sunt mult mai ieftine. Sunt de acord, este un lucru să blochezi accidental microcontrolerul pentru o sută de ruble, și altul - pentru o jumătate de mie. Este mai bine să vă umpleți mâna și să înțelegeți diferitele aspecte ale funcționării, pentru a nu pierde sume semnificative mai târziu. Inițial, puteți începe cu AtMega8 și apoi navigați deja în funcție de nevoile dvs.

concluzie

programarea pic avrAcesta este subiectul programării AVR în termenii cei mai generali. Desigur, puteți spune mai multe despre asta. De exemplu, marcarea microcontrolerelor nu a fost luată în considerare. Și poate spune foarte mult. Deci, practic microcontrolerele funcționează la o tensiune de 5V. În timp ce prezența, de exemplu, a literelor L poate spune că numai 2,7 V este suficientă pentru a funcționa dispozitivul. După cum puteți vedea, uneori cunoștințele despre marcare pot juca un rol foarte important în ceea ce privește funcționarea corectă și durabilă a dispozitivelor. Timpul de funcționare a microcontrolerelor este, de asemenea, un subiect interesant. Fiecare dispozitiv este proiectat pentru o anumită perioadă. Deci, unii pot lucra o mie de ore. Alții au o marjă de 10.000!

Distribuiți pe rețelele sociale:

înrudit
Microcontrolere - ce este asta?Microcontrolere - ce este asta?
Programator USB (AVR): descriere, scopProgramator USB (AVR): descriere, scop
Programator PIC: descriere, scopul dispozitivuluiProgramator PIC: descriere, scopul dispozitivului
Să ne dăm seama cum să faceți din programator propriile mâiniSă ne dăm seama cum să faceți din programator propriile mâini
Ce este programarea? Programare pentru incepatoriCe este programarea? Programare pentru incepatori
Arduino pentru începători: instrucțiuni pas cu pas. Programare și proiecte Arduino: de unde să…Arduino pentru începători: instrucțiuni pas cu pas. Programare și proiecte Arduino: de unde să…
Cum de a învăța programarea de la zero în limbi de programare populareCum de a învăța programarea de la zero în limbi de programare populare
Microcontrolere de programare pentru începători: ușor și accesibilMicrocontrolere de programare pentru începători: ușor și accesibil
Controler PIC. Programarea controlorilor PIC. Scheme ale controlorilor PICControler PIC. Programarea controlorilor PIC. Scheme ale controlorilor PIC
Cu mâinile mele: "Arduino" - constructor electronicCu mâinile mele: "Arduino" - constructor electronic
» » Programare AVR. Programarea microcontrolerelor AVR pentru incepatori