AVR programiranje. Programiranje AVR mikrokontrolera za početnike

Mikrokontroleri su mali, ali u isto vrijeme i vrlo pogodni uređaji za one koji žele stvoriti razne nevjerojatne robotizirane ili automatizirane stvari kod kuće. U ovom članku će se razmatrati AVR programiranje za početnike, različiti aspekti i nijanse ovog procesa.

Opće informacije

Mikrokontroleri se mogu naći svugdje. Oni su u hladnjacima, perilicama, uređajima, alatnim strojevima u proizvodnji, pametnim kućama, pa čak iu raznim tehničkim uređajima. Njihova raširena upotreba posljedica je mogućnosti zamjene složenijih i velikih analognih sklopova. Programiranje MC AVR omogućuje autonomnu kontrolu elektroničkih uređaja. Ovi mikrokontroleri mogu biti predstavljeni kao najlakše računalo koje može komunicirati s vanjskim hardverom. Da, mogu otvoriti /zatvoriti tranzistore, primiti podatke od senzora i prikazati ih na zaslonima. Također, mikrokontroleri mogu obavljati različite obrade ulaznih informacija, slično osobnom računalu. Ako ovladate programiranjem AVR-a od nule i dođete do razine profesionalca, tada će biti praktički neograničene mogućnosti za upravljanje različitim uređajima putem I /O portova, kao i mijenjanje njihovog koda.


Malo o AVR-u

U članku će se razmatrati obitelj mikrokontrolera proizvođača Atmel. Imaju vrlo dobre performanse, što im omogućuje da ih koristeamaterski uređaji. Široko se koristi u industriji. Možete se susresti u sljedećim tehnikama:
  • Domaći. Perilice rublja, hladnjaci, mikrovalne pećnice i još mnogo toga.
  • Mobitel. Radovi, komunikacijski objekti i tako dalje.
  • Računalna. Sustavi za upravljanje perifernim uređajima, matične ploče.
  • Zabavno. Ukrasi i dječje igračke.
  • Prijevoz. Sigurnosni sustavi i upravljanje motorom automobila.
  • Industrijska oprema. Sustavi upravljanja alatnim strojevima. To, naravno, nisu sve sfere. Koriste se tamo gdje je korisno ne koristiti skup kontrolnih čipova, već jedan mikrokontroler. To je moguće zbog niske potrošnje energije i pojednostavljene proizvodnje. Za pisanje programa koriste se jezici C i Assembler, pomalo modificirani za obitelj mikrokontrolera. Takve su promjene nužne zbog slabih računalnih mogućnosti, koje se obično izračunavaju u desecima kilobajta. AVR programiranje bez učenja tih jezika nije moguće.


    Kako dobiti svoj prvi mikrokontroler?

    Programiranje AVR-a zahtijeva:
  • dostupnost potrebnog razvojnog okruženja.
  • Zapravo i sami mikrokontroleri.
  • Druga se točka detaljnije razmatra. Postoje tri mogućnosti za stjecanje potrebnog uređaja:
  • Kupite sam mikrokontroler.
  • Nabavite uređaj u dizajneru (na primjer - Arduino).
  • Sami sakupite mikrokontroler.
  • U prvom paragrafu nema ništa komplicirano, tako da odmah idite na drugi i treći.

    Dobitiuređaj u projektantu

    Kao primjer, bit će odabran poznati Arduino. To je elektronički dizajner, kombinacija praktične platforme za brz i kvalitetan razvoj raznih elektroničkih uređaja. Arduino ploča uključuje određeni skup komponenata za rad (postoje različite konfiguracije). Mora imati AVR kontroler. Ovaj pristup vam omogućuje da brzo započnete razvoj uređaja, ne zahtijevaju posebne vještine, ima značajne mogućnosti u smislu povezivanja dodatnih ploča, kao i na internetu, možete pronaći mnogo informacija o tom pitanju. Ali to nije bilo bez nedostataka. Kupnjom Arduina osoba se lišava mogućnosti dubljeg uranjanja u AVR programiranje, bolje je poznavati mikrokontroler, specifičnosti njegova rada. Također, negativan i dodaje relativno usku liniju modela, zbog čega se često mora kupiti ploča za određene zadatke. Još jedna značajka je da se programiranje "SI" ovdje prilično razlikuje od standardnog obrasca. Unatoč svim nedostacima, Arduino je pogodan za početnike. Ali ne smijete zlostavljati.

    Nezavisna montaža

    Treba napomenuti da su mikrokontroleri AVR dovoljno prijateljski prema pridošlicama. Možete ih prikupiti neovisno o pristupačnim, jednostavnim i jeftinim komponentama. Ako govorimo o prednostima, onda ovaj pristup vam omogućuje da se upoznaju s uređajem, odaberite potrebne komponente samostalno, krojenje konačni rezultat na zahtjeve, korištenje standardnih programskih jezika i jeftinoća. Od minusa koje možete zapisatisamo složenost samostalne zbirke, kada se provodi prvi put, a nema potrebnih znanja i vještina.

    Kako raditi?

    Pretpostavimo da je stvar s mikrokontrolerom odlučila. Pretpostavit će se da je kupljen ili kupljen samostalno. Što je još potrebno za ovladavanje AVR programiranjem? U tu svrhu vam je potrebna razvojna okolina (kao osnova i uobičajena prijenosna računala, ali preporučujem da se zadržite na Notepad ++). Iako postoje i druge aplikacije za programiranje AVR-a, ovo jamstvo će moći ispuniti sve zahtjeve. Također vam je potreban programer. Može se kupiti u najbližoj trgovini, naručiti on-line ili prikupiti sami. To ne ometa tiskanu ploču. To nije potrebno, ali njegovo korištenje omogućuje vam da spasite živce i vrijeme. Također ste kupili /stvorili sami. I posljednji je izvor energije. Za AVR je potrebno osigurati priljev od 5V.

    Gdje i kako studirati?

    Izraditi remek-djela od nule ne izlaze. Ona zahtijeva znanje, iskustvo i praksu. Ali gdje ih dobiti? Postoji nekoliko načina. U početku možete samostalno pretraživati ​​informacije koje su vam potrebne na World Wide Webu. Možete pisati na programskim tečajevima (udaljenost ili oko) da biste stekli osnovne vještine. Svaki pristup ima svoje prednosti. Da, tečajevi daljinskog programiranja će biti jeftiniji, a možda i besplatni. Ali ako nešto ne izađe, onda će na lekcijama na lekciji iskusni programer moći brzo pronaći uzrok problema. Također, nije suvišno upoznati se s književnošću koja je slobodnapristup. Naravno, jedna knjiga neće napustiti, ali osnovno znanje o uređaju, programiranju "SI", "Asembler" i drugim radnim trenucima može se dobiti.

    Ulazni /izlazni priključci

    Ovo je iznimno važna tema. Bez razumijevanja kako I /O portovi rade, AVR programiranje uopće nije moguće. Uostalom, interakcija mikrokontrolera s vanjskim uređajima provodi se upravo posredovanjem. Na prvi pogled, početnik može činiti da je luka prilično složen mehanizam. Kako bismo izbjegli takav dojam, nećemo detaljno ispitati shemu njegova rada, već samo dobiti općenitu ideju o tome. Razmotrite realizaciju programa. Kao primjer uređaja odabran je mikrokontroler AtMega8, jedan od najpopularnijih u cijeloj AVR obitelji. I /O port predstavlja tri registra koji su odgovorni za njegov rad. Na fizičkoj razini, primjenjuju se kao noge. Svaki od njih odgovara određenom bitu kontrolnog registra. Svaka noga može raditi i za unos podataka i za izlaz. Na primjer, može objesiti funkciju paljenja diode koja emitira svjetlo ili obradu dodirnog gumba. Usput, tri spomenuta registra su PORTx, PINx i DDRx. Svaki od njih je osam bitni (ne zaboravite da razmatramo AtMega8). To jest, jedan bit se bavi određenom nogom.

    Registrirajte rad

    Upravitelj DDRx-a je najvažniji u smislu ciljanja. Također je i osam bitova. Vrijednosti za njega mogu biti napisane 0 ili 1. Kako se rad kontrolora mijenja kada se koristinule i jedinice? Ako postavite 0 na određeni bit, odgovarajuća noga će se prebaciti na način prijave. I iz njega će biti moguće čitati podatke koji dolaze iz vanjskih uređaja. Ako ste postavili 1, onda mikrokontroler će moći kontrolirati nešto (na primjer, dati tranzistor naredbe preskočiti napon i osvijetliti LED). Drugi najvažniji je PORTx. On je zadužen za stanje noge. Pogledajmo primjer. Pretpostavimo da imamo izlaznu priključnicu. Ako logičku jedinicu postavimo na PORTx, šalje se signal s mikrokontrolera kontrolnog kontrolera da bi se započelo. Na primjer, uključite LED. Kada su postavljene nule, ona će se ugasiti. To znači da nema potrebe za radom s upraviteljem DDRx registara u svakom trenutku. I napokon razgovarajmo o PINx-u. Ovaj registar je odgovoran za prikaz stanja nogu kontrolera kada je konfiguriran za ulazno stanje. Treba napomenuti da PINx može raditi samo u načinu samo za čitanje. Za snimanje neće raditi. Ali od čitanja trenutnog stanja nogu - to nije problem.

    Rad s analogima

    AVR nije jedini mikrokontroler. Ovo tržište je podijeljeno između nekoliko velikih proizvođača, kao i brojnih kineskih imitacija uređaja i izrade. U mnogim su aspektima slični. Na primjer, programiranje PIC /AVR se ne razlikuje mnogo. A ako postoji razumijevanje nečega, onda će sve ostalo biti lako razumljivo. Međutim, još uvijek preporučujemo da se počne s AVR-om zbog njegove kompetentne strukture, dobre volje prema razvijatelju i dostupnosti velikog broja pomoćnih materijala, zbog čega se proces razvoja može značajno ubrzati.

    Sigurnosna tehnologija

    Prilikom programiranja AVR mikrokontrolera na "SI" ili "Asembler" potrebno je raditi vrlo pažljivo. Činjenica je da stavljanjem određene kombinacije registara i promjenom internih postavki možete sigurno zaključati mikrokontroler. To posebno vrijedi za fjuze. Ako niste sigurni u ispravnost svojih postupaka, bolje je odbiti njihovu upotrebu. Isto vrijedi i za programere. Ako kupite tvorničku opremu, tada će se mikrokontroleri učvrstiti bez problema. Prilikom sastavljanja vlastitih ruku može doći do tužne situacije u kojoj programer blokira uređaj. To se može dogoditi zbog grešaka u programskom kodu i zbog problema u njemu. Usput rečeno, o još jednom (ovaj put pozitivnom) trenutku, koji je prethodno ukratko spomenut, ali nije u potpunosti objavljen. Sada gotovo svi moderni mikrokontroleri imaju funkciju programiranja unutar sklopa. Što to znači? Pretpostavimo da je uređaj zapečaćen na ploči. A da biste promijenili svoj firmware, sada ga ne morate piti, jer takva intervencija može oštetiti sam mikrokontroler. Dovoljno je povezati se s relevantnim zaključcima i reprogramirati njihovim posredovanjem.

    Koji model odabrati?

    U okviru članka razmatran je AtMega8. To je sasvim osrednji mikrokontroler, koji je, međutim, dovoljan za većinu proizvoda. Ako postoji želja za stvaranjem nečeg velikog, već možete uzeti neku vrstu čudovišta kao što je Atmega128. Ali oni su osmišljeni za iskusnijeprogrameri. Stoga, ako nema dovoljno iskustva, bolje je početi s malim i jednostavnim uređajima. Osim toga, oni su mnogo jeftiniji. Slažete se, jedna stvar je slučajno blokirati mikrokontroler za sto rubalja, a sasvim drugo - za pola tisuće. Bolje je ispuniti svoju ruku i razumjeti u različitim aspektima funkcioniranja, tako da u budućnosti ne izgubiti značajne sume. Prvo možete početi s AtMega8, a zatim se kretati prema vašim potrebama.

    Zaključak

    Dakle, tema AVR programiranja razmatrana je u najopćenitijem smislu. Naravno, još uvijek ima dosta toga za razgovor. Tako se, na primjer, nije razmatralo označavanje mikrokontrolera. I može puno toga reći. Da, u osnovi mikrokontroleri rade na naponu od 5V. Dok prisutnost, na primjer, slova L može reći da je za uređaj dovoljno samo 27 Art. Kao što možete vidjeti, ponekad poznavanje označavanja može odigrati vrlo važnu ulogu u smislu pravilnog i trajnog rada uređaja. Vrijeme rada mikrokontrolera također je zanimljiva tema. Svaki je uređaj dizajniran za određeno razdoblje. Da, neki mogu raditi za tisuću sati. Drugi imaju jamstvo od 10.000!

    Povezane publikacije