AVR. Apmācības kurss. Arhitektūra. AVR programmēšana. AVR mikrokontrolleru programmēšana iesācējiem AVR saimes mikrokontrolleru parametri

Viena mikroshēmas mikrokontrolleri tiek plaši izmantoti dažādās jomās: no mērinstrumentiem, kamerām un videokamerām, printeriem, skeneriem un kopētājiem līdz elektroniskiem izklaides produktiem un visa veida sadzīves ierīcēm.

Kopš pirmo mikroprocesoru ieviešanas 1970. gados to sarežģītība ir nepārtraukti palielinājusies, ieviešot jaunus aparatūras risinājumus un pievienojot jaunas instrukcijas, kas paredzētas jaunu problēmu risināšanai. Tā pamazām attīstījās arhitektūra, kas vēlāk ieguva nosaukumu CISC (Complete Instruction Set Computers – datori ar sarežģītu instrukciju kopu). Pēc tam parādījās vēl viens virziens un tika aktīvi attīstīts: RISC arhitektūra (Reduced Instruction Set Computers — datori ar samazinātu instrukciju kopu). Šī arhitektūra ietver AVR mikrokontrollerus no Atmel un PIC no Microchip, kuriem šī grāmata ir veltīta.

Galvenā RISC procesoru priekšrocība ir tā, ka tie ir vienkārši, izpilda ierobežotu instrukciju kopumu un līdz ar to ir ļoti ātri. Tas samazina to programmēšanas izmaksas un sarežģītību.

RISC arhitektūras mīnuss bija nepieciešamība izveidot papildu instrukcijas montāžas valodā, kas tiek ieviestas aparatūrā CISC ierīcēm. Piemēram, tā vietā, lai vienkārši izsauktu dalīšanas instrukciju, kas ir raksturīga CISC ierīcēm, dizainerim, kas nodarbojas ar RISC procesoru, ir jāizmanto vairākas secīgas atņemšanas instrukcijas. Tomēr šo trūkumu vairāk nekā kompensē RISC ierīču cena un ātrums. Turklāt, ja veidojat programmas C, tad izstrādātājam šādas problēmas vispār vairs nav nozīmīgas, jo tās atrisina kompilators, kas automātiski ģenerē visu trūkstošo montāžas kodu.

Mikroprocesoru rītausmā attīstība programmatūra notika tikai vienā vai citā montāžas valodā, kas vērsta uz konkrēta ierīce. Būtībā šādas valodas bija atbilstošo mašīnu kodu simboliskā mnemonika, un mnemonikas tulkošanu mašīnkodā veica tulks. Tomēr galvenais montāžas valodu trūkums ir tas, ka katra no tām ir saistīta ar noteiktu ierīces veidu un tās darbības loģiku. Turklāt montētājs ir grūti apgūstams, kura apguve prasa diezgan daudz pūļu, kas turklāt izrādās velti, ja vēlāk vajadzēs pāriet uz citu ražotāju mikrokontrolleru izmantošanu.

C valodai, būdama augsta līmeņa valodai, nav šādu trūkumu un ar to var programmēt jebkuru mikroprocesoru, kuram ir kompilators C. C valodā visas datoru veiktās zemā līmeņa darbības tiek uzrādītas formā. abstraktu konstrukciju, ļaujot izstrādātājiem koncentrēties tikai uz vienas loģikas programmēšanu, neuztraucoties par mašīnkodu. Kad esat apguvis C valodu, varat viegli pāriet no vienas mikrokontrolleru saimes uz citu, tērējot daudz mazāk laika izstrādei.


AVR un PIC mikrokontrolleru arhitektūra

Kopumā visi mikrokontrolleri ir veidoti pēc vienas shēmas. Vadības sistēma, kas sastāv no programmu skaitītāja un dekodēšanas ķēdes, veic instrukciju nolasīšanu un dekodēšanu no programmas atmiņas, un darbības bloks ir atbildīgs par aritmētisko un loģiskās operācijas; I/O interfeiss ļauj apmainīties ar datiem ar perifērijas ierīcēm; un visbeidzot, jums ir jābūt atmiņas ierīcei, lai saglabātu programmas un datus (1.1. att.).

Rīsi. 1.1. Vispārināta mikrokontrollera struktūra

Mēs aplūkosim mikrokontrollerus kopumā, bez jebkāda veida AVR mikrokontrolleru piesaistes, tāpēc tālāk aplūkosim tikai atmiņas arhitektūras iezīmes, kas raksturīgas lielākajai daļai mikrokontrolleru, ievades/izejas problēmas, pārtraukumu apstrādi, atiestatīšanu utt.

AVR mikrokontrollera atmiņa

AVR mikrokontrolleros atmiņa tiek realizēta saskaņā ar Hārvardas arhitektūru, kas nozīmē instrukciju un datu atmiņas atdalīšanu. Tas nozīmē, ka komandām tiek piekļūts neatkarīgi no piekļuves datiem. Šīs organizācijas priekšrocība ir atmiņas piekļuves ātruma palielināšanās.

Datu atmiņa

Datu atmiņa ir paredzēta programmu izmantoto datu rakstīšanai/lasīšanai. Tas ir nepastāvīgs, tas ir, ja tiek izslēgta mikrokontrollera strāva, visi tajā saglabātie dati tiks zaudēti. AVR mikrokontrolleros datu atmiņai ir attīstītāka struktūra, salīdzinot ar PIC mikrokontrolleriem, kā parādīts attēlā. 2.1.


Rīsi. 2.1. Datu atmiņas struktūra AVR un PIC mikrokontrolleros

SRAM (Static Random Access Memory) apgabals ir norādīts attēlā. 2.1 ir punktēts, jo to neizmanto visi AVR mikrokontrolleri (tas attiecas gan uz iekšējo, gan ārējo SRAM). Tā sākuma adrese ir 0x060, un tā augšējā adrese dažādās ierīcēs atšķiras.

Dažos AVR mikrokontrolleros varat palielināt SRAM atmiņas vietu, pievienojot ārējos atmiņas blokus līdz 64 KB, taču tas prasa upurēt portus A un C, kas šajā gadījumā tiek izmantoti datu un adrešu pārsūtīšanai.

Vispārējas nozīmes reģistri

Reģistrācijas zona vispārīgs mērķis(darba reģistri) ir paredzēts mainīgo lielumu un rādītāju pagaidu glabāšanai, ko procesors izmanto programmu izpildei. AVR mikrokontrolleros tas sastāv no 32 astoņu bitu reģistriem (adreses diapazons 0x000 - 0x01F). PIC mikrokontrolleros vispārējas nozīmes reģistri ir arī astoņu bitu, taču to skaits un adrešu diapazons ir atkarīgs no konkrētā ierīces veida.

Programmās, kas rakstītas C valodā, tieša piekļuve vispārējas nozīmes reģistriem parasti nav nepieciešama, ja vien netiek izmantots montāžas valodas kods.

PIC mikrokontrolleru speciālo funkciju reģistri

PIC mikrokontrolleros tiek izmantoti īpaši funkciju reģistri dažādu darbību vadīšanai. Tāpat kā vispārējas nozīmes reģistros, to skaits un adrese dažādās ierīcēs atšķiras. Programmās, kas rakstītas C valodā, tieša piekļuve īpašo funkciju reģistriem parasti nav nepieciešama, ja vien netiek izmantoti montāžas valodas fragmenti.

AVR mikrokontrolleru I/O zona

AVR mikrokontrolleru I/O apgabalā ir 64 reģistri, ko izmanto, lai kontrolētu vai uzglabātu datus no perifērijas ierīcēm. Katram no šiem reģistriem var piekļūt, izmantojot I/O adresi (sākot ar 0x000) vai SRAM adresi (tādā gadījumā I/O adresei jāpievieno 0x020). C programmās parasti tiek izmantoti parastie I/O reģistru nosaukumi, un adresēm ir nozīme tikai montāžas valodas programmām.

Vārdi, I/O un SRAM adreses un Īss apraksts reģistri no AVR mikrokontrolleru ievades/izvades apgabala ir parādīti tabulā. 2.1. Jāpiebilst, ka iekš dažādi modeļi mikrokontrolleri, daži no uzskaitītajiem reģistriem netiek izmantoti, un adreses nav norādītas tabulā. 2.1 ir rezervēti Atmel izmantošanai nākotnē.

2.1. tabula. Reģistru apraksts no I/O zonas

Reģistrēt vārdu I/O adrese SRAM adrese Apraksts
ACSR 0x08 0x28 Analogā komparatora kontrole un statusa reģistrs
UBRR 0x09 0x29 UART pārraides ātruma reģistrs
UCR 0x0A 0x2A UART raiduztvērēju vadības reģistrs
USR 0x0V 0x2V UART raiduztvērēja statusa reģistrs
UDR 0х0С 0x2С UART raiduztvērēju datu reģistrs
SPCR 0x0D 0x2D SPI interfeisa vadības reģistrs
SPSR 0x0E 0x2E SPI interfeisa statusa reģistrs
SPDR 0x0F 0x2F SPI datu I/O reģistrs
PIND 0x10 0x30 Porta D tapas
DDRD 0x11 0x31 Porta D datu virzienu reģistrs
PORTD 0x12 0x32 Porta D datu reģistrs
PINC 0x13 0x33 Porta C tapas
DDRC 0x14 0x34 Porta C datu virzienu reģistrs
PORTC 0x15 0x35 Porta C datu reģistrs
PINB 0x16 0x36 Porta B tapas
DDRB 0x17 0x37 Porta B datu virzienu reģistrs
PORTB 0x18 0x38 Porta B datu reģistrs
PINA 0x19 0x39 Porta A tapas
DDRA 0x1A 0x3A Porta A datu virzienu reģistrs
PORTA 0x1V 0x3V Porta A datu reģistrs
EECR 0x1С 0x3С EEPROM atmiņas kontroles reģistrs
EEDR 0x1D 0x3D EEPROM datu reģistrs
EEARL 0x1E 0x3E EEPROM atmiņas adrešu reģistrs (mazs baits)
EEARH 0x1F 0x3F EEPROM atmiņas adrešu reģistrs (augsts baits)
WDTCR 0x21 0x41 Watchdog taimera kontroles reģistrs
ICR1L 0x24 0x44
ICR1H 0x25 0x45 Taimera/skaitītāja uztveršanas reģistrs T/C1 (zems baits)
OCR1BL 0x28 0x48 Taimera T/C1 salīdzināšanas reģistrs B (zems baits)
OCR1BH 0x29 0x49 Taimera T/C1 salīdzināšanas reģistrs B (augsts baits)
OCR1AL 0x2A 0x4A Taimera T/C1 salīdzināšanas reģistrs A (zems baits)
OCR1AH 0x2V 0x4V Taimera T/C1 salīdzināšanas reģistrs A (augsts baits)
TCNT1L 0x2С 0х4С Taimera/skaitītāja T/C1 skaitīšanas reģistrs (zems baits)
TCNT1H 0x2D 0x4D Taimera/skaitītāja T/C1 skaitīšanas reģistrs (augsts baits)
TCCR1B 0x2E 0x4E Taimera/skaitītāja T/C1 vadības reģistrs B
TCCR1A 0x2F 0x4F Taimera/skaitītāja T/C1 vadības reģistrs A
TCNT0 0x32 0x52 Taimera/skaitītāja T/C0 skaitīšanas reģistrs
TCCR0 0x33 0x53 Taimera/skaitītāja vadības reģistrs T/C0
MCUCR 0x35 0x55 Mikrokontrolleru vadības reģistrs
TIFR 0x38 0x58 Taimera/skaitītāja pārtraukuma karogu reģistrs
TIMSK 0x39 0x59 Taimera pārtraukuma maskēšanas reģistrs
GIFR 0x3A 0x5A Vispārējo pārtraukumu karogu reģistrs
GIMSK 0x3V 0x5V Vispārējais pārtraukumu maskēšanas reģistrs
SPL 0x3D 0x5D Steka rādītājs (zems baits)
SPH 0x3E 0x5E Stack rādītājs (augsts baits)
SREG 0x3F 0x5F Statusu reģistrs

AVR mikrokontrolleru SREG statusu reģistrs

Statusa reģistrā ir AVR mikrokontrolleru stāvokļa karodziņi, un tas atrodas I/O apgabalā adresē $3F (SRAM adrese ir $5F). Pēc atiestatīšanas signāla došanas tas tiek inicializēts uz nullēm.

Mikrokontrolleri (turpmāk tekstā MK) ir stingri ienākuši mūsu dzīvē, internetā var atrast daudz interesantu shēmu, kas tiek izpildītas MK. Ko nevar salikt uz MK: dažādi indikatori, voltmetri, sadzīves tehnika (aizsardzības ierīces, komutācijas ierīces, termometri...), metāla detektori, dažādas rotaļlietas, roboti utt. Saraksts var aizņemt ļoti ilgu laiku. Pirmo mikrokontrollera ķēdi redzēju pirms 5–6 gadiem kādā radio žurnālā un gandrīz uzreiz pāršķiru lapu, pie sevis nodomājot: "Es joprojām nevarēšu to samontēt." Patiešām, tajā laikā MK man bija ļoti sarežģīta un pārprasta ierīce; man nebija ne jausmas, kā tie darbojas, kā tos zibspuldzi un ko ar tiem darīt nepareizas programmaparatūras gadījumā. Bet apmēram pirms gada es pirmo reizi samontēju savu pirmo ķēdi uz MK, tā bija ķēde digitālais voltmetrs uz 7 segmentu indikatoriem un ATmega8 mikrokontrolleri. Sanāca tā, ka nejauši nopirku mikrokontrolleri, kad stāvēju radio komponentu nodaļā, čalis man priekšā pērk MK, un arī es nolēmu nopirkt un mēģināt kaut ko salikt. Savos rakstos es jums pastāstīšu par AVR mikrokontrolleri, es iemācīšu jums strādāt ar tiem, mēs apskatīsim programmaparatūras programmas, mēs izveidosim vienkāršu un uzticamu programmētāju, mēs apskatīsim programmaparatūras procesu un, pats galvenais, problēmas, kas var rasties, ne tikai iesācējiem.

Dažu AVR saimes mikrokontrolleru pamatparametri:

Mikrokontrolleris

Zibatmiņa

RAM atmiņa

EEPROM atmiņa

I/O porti

U spēks

AVR mega mikrokontrollera papildu parametri:

Darba temperatūra: -55…+125*С
Uzglabāšanas temperatūra: -65…+150*С
Spriegums pie RESET tapas attiecībā pret GND: max 13V
Maksimālais barošanas spriegums: 6.0V
Maksimālā I/O līnijas strāva: 40mA
Maksimālā barošanas avota strāva VCC un GND: 200mA

ATmega 8X modeļa pinouts

Spraudņi ATmega48x, 88x, 168x modeļiem

Tapu izkārtojums ATmega8515x modeļiem

Tapu izkārtojums ATmega8535x modeļiem

Tapu izkārtojums ATmega16, 32x modeļiem

Tapas izkārtojums ATtiny2313 modeļiem

Arhīvs ar dažu mikrokontrolleru datu lapām ir pievienots raksta beigās.

MK AVR instalācijas FUSE biti

Atcerieties, ka ieprogrammēts drošinātājs ir 0, neprogrammēts ir 1. Iestatot drošinātājus, jābūt uzmanīgiem, jo ​​nepareizi ieprogrammēts drošinātājs var bloķēt mikrokontrolleri. Ja neesat pārliecināts, kurš drošinātājs ir jāieprogrammē, labāk pirmo reizi uzzibināt MK bez drošinātājiem.

Radioamatieru vidū populārākie mikrokontrolleri ir ATmega8, kam seko ATmega48, 16, 32, ATtiny2313 un citi. Mikrokontrolleri tiek pārdoti TQFP un DIP pakotnēs, iesācējiem iesaku iegādāties DIP. Ja jūs pērkat TQFP, būs problemātiskāk tos mirgot; jums būs jāpērk vai jāpielodē plate, jo viņu kājas atrodas ļoti tuvu viena otrai. Iesaku uzstādīt mikrokontrollerus DIP pakotnēs uz speciālām ligzdām, tas ir ērti un praktiski, nav jāatlodē MK, ja vēlies to pārtīt vai izmantot citam dizainam.

Gandrīz visiem mūsdienu MK ir iespēja iekļaut ISP programmēšanu ķēdē, t.i. Ja jūsu mikrokontrolleris ir pielodēts pie plates, tad, lai mainītu programmaparatūru, mums tas nebūs jāatlodē no plates.

Programmēšanai tiek izmantoti 6 tapas:
RESET- Pieteikties MK
VCC- Plus barošanas avots, 3-5V, atkarīgs no MK
GND- Kopējais vads, mīnus jauda.
MOSI- MK ieeja (informācijas signāls MK)
MISO- MK izeja (informācijas signāls no MK)
SCK- MK ieeja (pulksteņa signāls MK)

Dažreiz viņi izmanto arī tapas XTAL 1 un XTAL2; kvarcs ir pievienots šīm tapām, ja MK darbina ārējs oscilators; ATmega 64 un 128 modeļos MOSI un MISO tapas netiek izmantotas ISP programmēšanai; tā vietā tiek izmantotas MOSI tapas. savienots ar tapu PE0 un MISO ar tapu PE1. Pieslēdzot mikrokontrolleri programmētājam, savienojuma vadiem jābūt pēc iespējas īsākiem, un kabelim, kas iet no programmētāja uz LPT portu, arī nevajadzētu būt pārāk garam.

Mikrokontrollera marķējumā var būt dīvaini burti ar cipariem, piemēram, Atmega 8L 16PU, 8 16AU, 8A PU uc Burts L nozīmē, ka MK darbojas ar zemāku spriegumu nekā MK bez burta L, parasti 2,7V. Cipari aiz defises vai atstarpes 16PU vai 8AU norāda MK esošā ģeneratora iekšējo frekvenci. Ja drošinātāji ir iestatīti darbībai no ārēja kvarca, kvarca frekvence ir jāiestata uz frekvenci, kas nepārsniedz maksimālo saskaņā ar datu lapu, tas ir 20 MHz ATmega48/88/168 un 16 MHz citām atmegām.

AVR mikrokontrolleri. Programmēšanas pamati

AVR mikrokontrolleru uzbūve un galvenie raksturlielumi

Šajā rakstā mēs mēģināsim vispārīgi ieskicēt, galvenās īpašības, kas ir “iekšā”, kas nepieciešams, lai sāktu strādāt ar AVR mikrokontrolleriem utt.

Kas ir Tiny, Mega?

Uzņēmums Atmel ražo plašu astoņu bitu mikrokontrolleru līniju, pamatojoties uz AVR kodolu, kas sadalīta vairākās apakšgrupās, kas atšķiras tehniskās specifikācijas, pielietojuma jomas, cena:

  • ATtiny- ģimene AVR mikrokontrolleri optimizēta lietojumprogrammām, kurām nepieciešama salīdzinoši augsta veiktspēja (līdz 1,0 MIPS un kas spēj darboties frekvencēs līdz 20,0 MHz), energoefektivitāte (ATtiny ir vienīgā saime, kas spēj darboties no 0,7 V barošanas sprieguma!) un kompaktums (ir mikrokontrolleri SOT23-6 pakotnē - tikai 6 kontakti, un katrai tapai ir vairākas funkcijas, piemēram: I/O ports, ADC ieeja, PWM izeja utt.). Šeit parādās to pielietojuma joma: ierīces, kas ir ļoti svarīgas cenai, enerģijas patēriņam, izmēram utt.
  • ATmega– AVR mikrokontrolleru saime, kas paredzēta lietošanai dažādās jomās, pateicoties ļoti liels komplekts perifērijas ierīces, liels programmu atmiņas apjoms, ievades/izvades porti utt. Vārdu sakot, ir kur paplašināties.
  • ATxmega– jauna AVR mikrokontrolleru saime ar vairāk liels komplekts perifērijas ierīces nekā ATmega (pievienota tiešās atmiņas piekļuves ierīce, DAC, CRC modulis, pilna USB interfeiss, ātrāks ADC utt.), ar darba frekvencēm līdz 32,0 MHz.

Ir vērts atzīmēt galvenā iezīme visas iepriekš minētās ierīces: tām visām ir viena arhitektūra, un tas atvieglo koda pārsūtīšanu no viena mikrokontrollera uz otru.
Mikrokontrolleri ir pieejami gan DIP, gan SMD pakotnēs (katrai savi plusi un mīnusi).

Populārākie iepakošanas gadījumi ir:

  • DIP (Dual Inline Package) - korpuss ar divām kontaktu rindām
  • QFP (Quad Flat Package) - plakana pakete ar četrām kontaktu rindām
  • SOIC (Small-Outline Integrated Circuit) – maza izmēra (maza laukuma) integrālās shēmas

Kas attiecas uz radioamatieru praksi, tad, protams, vislielāko interesi rada mikrokontrolleri DIP pakete, jo ar tiem ir visvieglāk strādāt - tiem ir diezgan liels solis starp tapām un papildus tiem var izmantot ligzdas (tas ir īpašs savienotājs, kur var uzstādīt mikroshēmas bez lodēšanas).
Kopumā ligzda ir ārkārtīgi ērts izgudrojums - tapas vienmēr ir neskartas, un jūs varat atkārtoti noņemt un ievietot mikroshēmu, un ir daudz vieglāk izgatavot nākotnes ierīču prototipus.

AVR mikrokontrolleru barošana un pulksteņa signāls

AVR mikrokontrolleri būvēts, izmantojot CMOS tehnoloģiju, kas nodrošina ļoti zemu enerģijas patēriņu. Praksē elektroenerģijas patēriņš lineāri un tieši proporcionāls darba frekvencei (jo augstāka frekvence, jo lielāks enerģijas patēriņš).



AVR mikrokontrolleru barošanas spriegums svārstās no 2,7 līdz 5,5 V(6.0V ir maksimums, lai gan mans AVR kaut kā nostrādāja pie 7V - un nekas, tas ir dzīvs līdz šai dienai). Tas nozīmē, ka AVR var tieši kontrolēt, apmainīties ar datiem utt. Ar dažādas ierīces(gan 3.3V tolerants, gan 5V tolerants) bez nepieciešamības izmantot loģikas līmeņa pārveidotājus. Precīzākai analogo signālu apstrādei AVR nodrošina atsevišķas tapas mikrokontrollera analogās daļas barošanai, kas ietver tādas ierīces kā ADC, DAC un Analog komparators. Turklāt AVR mikrokontrolleriem ir vairāki “miega režīmi”, lai nodrošinātu vislabāko iespējamo enerģijas taupīšanu.

Arī katra mikrokontrollera tapa (atkarībā no darba frekvences un barošanas sprieguma) var darbināt ārējās ierīces strāva līdz 40,0 mA(maksimums!), bet visu var “lejupielādēt/lejupielādēt” no mikrokontrollera līdz 200,0 mA(maksimums!).

Pulksteņa signālu frekvenču diapazons atšķiras atkarībā no “ģimenes darba stāža” (ATtiny ir jaunākā AVR mikrokontrolleru saime, bet ATxMega – vecākā) Dažiem pārstāvjiem, īpaši ATtiny saimei, darba frekvence var sasniegt 20,0 MHz, ATmega – tā. nepārsniedz 16.0 MHz , savukārt ATxMega nepārsniedz 32.0 MHz Tāpat katram AVR mikrokontrollerim ir iekšējais RC oscilators līdz 8.0 MHz, kas ļauj iztikt bez ārējais avots laika signāls.

Atmel ražo mikrokontrollerus ar maksimālo darba frekvenci, kas ir uz pusi mazāka par standartu (lai palielinātu enerģijas ietaupījumu), tāpēc, iegādājoties tos, jāpievērš uzmanība mikrokontrolleru kodēšanai. Detalizēta informācija par to, kurš mikrokontrolleris darbojas ar kādām frekvencēm un barošanas spriegumiem, kādi kodējumi un iepakojumi ir pieejami šim mikrokontrollerim utt. var atrast katras datu lapas sadaļā “Pasūtīšanas informācija”.

Zemāk ir tabulas piemērs no mikrokontrollera datu lapas ATtiny13. Kolonnā "Pasūtīšanas kods" var redzēt atšķirības starp kodējumiem un nav grūti uzminēt, ar ko tie ir saistīti.



Kas atrodas AVR mikrokontrollerī?

Kā jau minēts priekšvārdā, AVR mikrokontrolleri ir Hārvardas arhitektūra ( galvenā īpašībaŠī arhitektūra ir tāda, ka programmu atmiņa un operatīvā atmiņa, kā arī to piekļuves kopnes tiek atdalītas, lai palielinātu instrukciju izpildes ātrumu: kamēr tiek izpildīta viena instrukcija, nākamā tiek izgūta no programmas atmiņas) ar RISC procesoru ar ātrumu. no 1,0 MIPS. Visiem mikrokontrolleriem, neatkarīgi no to modeļa un izkārtojuma, ir viens un tas pats centrālais procesors (procesors/kodols). Viens kodols jebkurā valodā rakstītu programmu padara universālāku un, ja vēlas, jebkurā projektā var nomainīt, teiksim, dārgāku kontrolieri ar citu lētāku, ar minimālām izmaiņām kodā.

RISC(Reduced Instruction Set Computer) – procesors ar vienkāršu montāžas instrukciju kopu (saskaitīt, atņemt, pārvietot pa kreisi/pa labi, “loģiski UN” utt.), visām instrukcijām ir fiksēts garums, procesors satur lielu skaitu vispārīgo mērķa reģistri utt. Lai, piemēram, aprēķinātu kādu vidējo matemātisko vienādojumu, procesoram būs jāizpilda vairākas vienkāršas montāžas instrukcijas, atšķirībā no CISC procesora, kuram ir instrukcijas “visiem gadījumiem”. Taču AVR nav gluži RISC -procesors, jo ne visām montāžas instrukcijām ir fiksēts formāts.Lielākā daļa ir 16 bitu formātā, pārējās ir 32 bitu.Tas nozīmē, ka katra instrukcija aizņem 16 vai 32 bitus programmas atmiņā.Starp citu, nefiksētā montāžas instrukciju garums ir tas, kas padara to par procesoru: uzlabots virtuālais RISC procesors (AVR).

MIPS(Miljons instrukciju sekundē) - AVR mikrokontrolleri spēj izpildīt (aptuveni) miljonu instrukciju ar frekvenci 1,0 MHz, vai vienkārši sakot, lielākā daļa montāžas instrukciju tiek izpildītas vienā pulksteņa ciklā.



AVR mikrokontrollera smadzenes ir tā centrālais procesors (CPU/kodols).

Dažas procesora sastāvdaļas:

Aritmētiskā loģiskā vienība

Programmu skaitītājs

Stack Pointer

  • Statusu reģistrs
  • Flash programmas atmiņa
  • Datu atmiņa

Vispārējiem reģistriem

Perifērijas reģistri (I/O reģistri)

RAM atmiņa

Pulksteņu sistēma. Šī sistēma var salīdzināt ar sirds un asinsvadu sistēmu

Pārtraukšanas vienība

Perifērijas ierīces, es uzskaitīšu dažas no tām:

I/O porti

EEPROM atmiņa

USB (tikai xMega), USART, I2C, SPI, JTAG saskarnes

Watchdog, taimeris/skaitītājs (ar PWM oscilatoru, uztveršana/salīdzināšana utt.)

ADC, DAC (tikai xMega), analogais komparators

Ārējie pārtraukumu moduļi

Perifērijas ierīču komplekts dažādās ģimenēs (Tiny, Mega un xMega) un dažādi šo saimju mikrokontrolleri ir atšķirīgs. Ir mikrokontrolleri, kas pieblīvēti līdz malām ar dažādām perifērijas ierīcēm, bet arī izmaksu ziņā kritiskām izstrādnēm ir arī mikrokontrolleri ar nelielu (nepieciešamu) perifērijas komplektu.

Viena no AVR mikrokontrolleru priekšrocībām ir iespēja izmantot perifērijas ierīces dažādos kopīgas darbības režīmos, kas ļoti bieži vien atvieglo izstrādātāja uzdevumu. AVR ir arī iebūvēta barošanas sprieguma līmeņa atiestatīšanas un uzraudzības sistēma (System Control and Reset), kas nodrošina normālu mikrokontrollera iedarbināšanu un, ja nepieciešams, drošu izslēgšanu.

Perifērijas vadības/statusa reģistri atrodas datu atmiņas apgabalā, starp vispārējas nozīmes reģistriem un RAM, kas nodrošina augstu veiktspēju, strādājot ar perifērijas ierīcēm. Izstrādātājam, protams, ir pilna piekļuve šiem reģistriem (I/O Registers).

Kas nepieciešams, lai mikrokontrolleris darbotos?

  • uzrakstīt programmu (programma). Lai uzrakstītu programmu/algoritmu, kurai mikrokontrolleris darbosies, būs nepieciešama integrēta AVR mikrokontrolleru izstrādes vide, kas ietver koda/teksta redaktoru, kompilatoru, linkeri un citas utilītas.
  • ķēdes dizains. Ar programmu vien nepietiek, lai mikrokontrolleris darbotos; tai ir nepieciešams arī minimāls korpusa komplekts (ārējais komplekts elektroniskās ierīces), nodrošināt mikrokontrolleri ar barošanas spriegumu un pulksteņa signālu, lai darbotos vismaz mikrokontrollera kodols.
Nākamajā attēlā parādīts “klasiskais” mikrokontrollera komplekts, kas nepieciešams normālai darbībai.


Attēlā parādītas minimālās ķēdes prasības mikrokontrolleram ATmega16. Ar šo komutācijas shēmu sāk darboties AVR mikrokontrollera kodols, var izmantot visus ievades/izvades portus utt. perifērijas ierīces. Īsāk sakot, mikrokontrolleris ir pilnā kaujas gatavībā. Lai, piemēram, sāktu lietot ADC vai Analog Comparator, vispirms programmatiski jākonfigurē perifērijas ierīce, izmantojot tās vadības/uzraudzības reģistrus, lai iestatītu nepieciešamo darbības režīmu utt., un pēc tam pētāmos signālus ievadiet atbilstošā perifērijas ierīce.

- Kvarcs un kondensatori C1, C2 (katrs 22 pF) nodrošina mikrokontrolleri un visas tā perifērijas ierīces ar augstas kvalitātes pulksteņa signālu (maksimālā frekvence - 16,0 MHz).

Rezistors R1(10K), nodrošina augstu līmeni pie RESET ieejas, kas nepieciešams stabilai mikrokontrollera darbībai. Ja mikrokontrollera darbības laikā spriegums uz šīs tapas nokrītas zem noteikta līmeņa, mikrokontrolleris tiks atiestatīts un var tikt traucēta paredzētā algoritma darbība.

- ISP savienotājs izmanto in-ķēdes programmēšanai, tas ir, jūsu ierakstītā programma ir jāieraksta mikrokontrollera atmiņā tieši uz tāfeles (neizņemot mikrokontrolleri no ierīces).

- Droseļvārsts L1 un kondensatori C3, C4 nodrošina barošanas spriegumu analogajām perifērijas ierīcēm, kā arī dažiem I/O portu reģistriem. Ja mikrokontrollerim nav analogās daļas, tad nav analogo barošanas kontaktu, kā rezultātā šie komponenti nav nepieciešami. Mikrokontrollera vienkāršotā elektroinstalācija ir šāda: pirmkārt, tā kā mikrokontrolleram tika liegta ārējā pulksteņa funkcija, tam jānorāda, ka pulksteņa signāls nāks no iekšējā RC oscilatora, iestatot atbilstošos drošinātāju bitus (sava ​​veida ierobežojoši mikrokontrollera darbības parametri). ).
Iekšējā oscilatora maksimālā frekvence ir 8,0 MHz, kas nozīmē, ka mikrokontrolleris nespēs darboties ar savu maksimālo frekvenci (veiktspēju).
Otrkārt, mikrokontrollera analogajai daļai (kā arī dažiem ievades/izvades portu reģistriem) nav barošanas avota, kas liedz tos izmantot.
Treškārt, nav savienotāja programmēšanai ķēdē, tāpēc, lai ierakstītu programmaparatūru mikrokontrollera atmiņā, jums tā būs jāizņem no ierīces, jāieraksta kaut kur un pēc tam jāatgriež vietā. Kā jūs pats saprotat, tas nav īpaši ērti (izņemt/ievietot, pielodēt/atlodēt), un var tikt bojāts gan pats mikrokontrollers (var salūzt kājas, pārkarst no lodēšanas utt.), gan tuvumā esošās ierīces – savienotājs, sliedes. uz klāja utt.

Mikrokontrolleris tas ir, varētu teikt, mazs dators. kam ir savs Procesors (reģistri, vadības bloks un aritmētiskās loģikas bloks), atmiņa, kā arī dažādas perifērijā, patīk I/O porti, taimeri, pārtraukumu kontrolieri, dažādi impulsu ģeneratori un pat analogie pārveidotāji. Nevar visu uzskaitīt. Nav iespējams uzskaitīt visus mikrokontrolleru lietojumus.

Bet, ja mēs visu ievērojami vienkāršojam, tad mikrokontrollera galvenā funkcija ir “lēkt ar kājām”. Tie. tai ir vairākas tapas (no 6 līdz vairākiem desmitiem atkarībā no modeļa), un uz šīm tapām atkarībā no programmatūras var iestatīt vai nu 1 (augstsprieguma līmenis, piemēram, +5 volti) vai 0 (zemsprieguma līmenis, apmēram 0,1 volts). algoritms ir iestrādāts tā atmiņā. Mikrokontrolleris var arī noteikt signāla stāvokli uz savām kājām (šim nolūkam tie ir jākonfigurē kā ieeja) - vai spriegums tur ir augsts vai zems (nulle vai viens). Mūsdienu mikrokontrolleros gandrīz visur ir arī analogais-digitālais pārveidotājs - tas ir līdzīgs voltmetram, tas ļauj ne tikai izsekot 0 vai 1 ieejā, bet arī pilnībā izmērīt spriegumu no 0 līdz atsaucei. (parasti atsauce ir vienāda ar barošanas spriegumu) un norādiet to kā skaitli no 0 līdz 1024 (vai 255, atkarībā no ADC bitu lieluma)

No tā jūs varat pagatavot gudra māja, un smadzenes mājas robotam, inteliģentai akvārija vadības sistēmai vai vienkārši skaistam LED displejam ar tekošu tekstu. Starp MK elektroniskajiem komponentiem šī ir viena no daudzpusīgākajām ierīcēm. Piemēram, izstrādājot nākamo ierīci, es labprātāk nemokos ar dažāda veida ķēžu dizaina perversijām, bet visas ieejas un izejas savienot ar mikrokontrolleru un visu darba loģiku veikt programmatūrā. Tas ievērojami ietaupa gan laiku, gan naudu, kas nozīmē naudu kvadrātā.

Ir ļoti, ļoti daudz mikrokontrolleru. Gandrīz katrs sevi cienošs uzņēmums, kas ražo radio komponentus, ražo savu kontrolieri. Tomēr šajā daudzveidībā ir kārtība. MK ir sadalītas ģimenēs, visas neuzskaitīšu, bet aprakstīšu tikai pašas elementārākās astoņu bitu ģimenes.

MSC-51
Visplašākā un attīstītākā ir MSC-51, vecākais no visiem, nāk no Intel 8051 un tagad to ražo daudzi uzņēmumi. Dažreiz sauc īsi C51. Šī ir 8 bitu arhitektūra, kas atšķiras no vairuma citu astoņu bitu arhitektūru ar to CISC arhitektūra. Tie. Viena komanda dažkārt var veikt diezgan sarežģītu darbību, taču komandas tiek izpildītas lielā skaitā pulksteņa ciklu (parasti 12 vai 24 pulksteņa cikli, atkarībā no komandas veida), ir dažāda garuma, un to ir daudz, visiem gadījumiem. . Starp arhitektūras kontrolieriem MSC-51 satiekas kā dinozauri AT89C51, kam ir minimāls perifērijas ierīču skaits, neliela atmiņa un nesvarīga veiktspēja, kā arī monstriem līdzīgi produkti Silīcija laboratorijas ar ļoti gaļīgu dažāda izmēra perifērijas ierīču maltu gaļu, milzīgas RAM un pastāvīgās atmiņas tvertnes, jaudīgus interfeisus no vienkāršas UART‘a iepriekš USB Un VAR, un arī brutāli ātrs kodols, nodrošinot līdz 100 miljoniem operāciju sekundē. Kas attiecas uz mani personīgi, es dievinu C51 arhitektūru par tās sasodīti jauko montētāju, kuru rakstīt ir vienkārši patīkami. Šai arhitektūrai jau ir uzrakstīti gigabaiti koda, ir izveidoti visi iedomājamie un neiedomājamie algoritmi.

Atmel AVR
Mana otrā mīļākā ģimene ir AVR no uzņēmuma Atmel. Pavisam Atmel ražo un MSC-51 kontrolieriem, bet tomēr viņi koncentrējas uz AVR. Šiem kontrolieriem jau ir 8 biti RISC arhitektūru un izpildīt vienu komandu vienā pulksteņa ciklā, taču atšķirībā no klasiskās RISC serdeņiem ir ļoti plaša komandu sistēma, lai gan ne tik ērta kā C51, tāpēc man tie nepatīk. Bet AVR vienmēr aprīkots it kā karam un vienkārši piebāzts ar dažādām perifērijas ierīcēm, īpaši apakšsaimes kontrolieriem ATMega. Tās ir arī ļoti viegli mirgojamas; tam nav nepieciešami specializēti programmētāji vai cits sarežģīts aprīkojums. Vajag tikai piecus vadus un datoru ar LPT osta. Mācīšanās vieglums ir ļāvis šim kontrolierim stingri iekrist daudzu jo daudzu radioamatieru sirdīs visā pasaulē.

Mikročipa PIC.
Vēl viens 8 bitu RISC Mikrokontrolleris izceļas ar ļoti perversu komandu sistēmu, kas sastāv tikai no pāris desmitiem komandu. Katra komanda tiek izpildīta četros pulksteņa ciklos. ir vairākas priekšrocības, galvenokārt zems enerģijas patēriņš un ātrs sākums. Vidēji PIC kontrolierim nav tik daudz perifērijas ierīču kā AVR, bet gan pašas modifikācijas PIC Kontrolieru ir tik daudz, ka vienmēr var izvēlēties kristālu ar perifērijas ierīcēm, kas atbilst tieši uzdevumam, ne vairāk, ne mazāk. Ieslēgts PIC'cirvis tradicionāli iebūvēti borta datori automašīnām, kā arī daudzas sadzīves signalizācijas.

Kuru ģimeni izvēlēties? Ak, tas ir grūts jautājums. Daudzos forumos un konferencēs joprojām notiek sīvas cīņas par tēmu, kura ģimene ir labāka, fani AVR strīdēties ar sekotājiem MSC-51, pa ceļam, neaizmirstot iespert nieres PIC“aitas, uz ko viņi atbild tādā veidā.

Šeit situācija kā Starcraftā :) Kurš ir foršāks? Cilvēki? Zergs? Protoss? Tas viss attiecas uz lietojumprogrammu, uzdevumu mērogu un daudziem citiem parametriem. Katrai ģimenei ir savas priekšrocības un trūkumi. Bet personīgi es izvēlētos AVR un šādu iemeslu dēļ:

  • 1. Pieejamība Krievijā. Šie kontrolieri ir pelnīti populāri un cilvēku mīlēti, kas nozīmē, ka mūsu tirgotāji ir gatavi tos nēsāt. Tomēr, piemēram, PIC. Ar MSC-51 situācija ir sliktāka. Nav problēmu iegūt novecojušus AT89C51, bet kam tie ir vajadzīgi? Taču mūsdienu silabi jau ir ekskluzīvi.
  • 2. Zemu cenu. Kopumā PIC ir slavens ar savu zemo cenu pasaulē, bet ironija ir tāda, ka bezmaksas piedāvājumi sākas tikai tad, ja to pērk ar automašīnu. Faktiski uz īsta skaitītāja AVR būs par 30–40 procentiem lētāks nekā PIC ar nedaudz lielāku funkcionalitāti. Ar MSC-51 situācija ir skaidra pirmajā punktā. Ekskluzivitāte ir ne tikai reta parādība, bet arī dārga.
  • 3. Daudz perifērijas ierīču vienlaikus. Sērijas ierīcei tas drīzāk ir trūkums. Ir daudz labāk, ja jums ir tikai tas, kas nepieciešams pašreizējā uzdevuma veikšanai, un ļaujiet pārējiem netraucēt un netērēt enerģiju. Tas ir tas, ar ko PIC ir slavens ar savu izplatību modeļu klāsts, kur varat atrast kontrolieri, kurā būs tas, kas jums nepieciešams, nevis tas, kas jums nav nepieciešams. Bet mēs ejam mācīties un darīt to paši! Tāpēc labāk, ja mums viss ir uzreiz un rezervē. Un šeit AVR ir ar galvu un pleciem virs PIC, atkal un atkal izlaižot arvien vairāk pildītu kontrolieru. Es nopirku sev kādu AtMega16A, un viss, jūs varat mācīties visu ģimeni.
  • 4. Viens kodols. Fakts ir tāds, ka visiem mūsdienu AVR ir viens un tas pats kodols vienota sistēma komandas Perifērijas līmenī ir tikai dažas atšķirības (un tās ir nelielas). Tie. kodu no neliela ATTiny13 var viegli kopēt un ielīmēt ATMega64, un tas darbojas gandrīz bez izmaiņām. Un otrādi, gandrīz bez ierobežojumiem. Tiesa, vecākiem AVR modeļiem (visādi AT90S1200) ir ierobežota saderība no augšas uz leju – tiem ir nedaudz mazāka komandu sistēma. Bet tas ir līdz ar blīkšķi. Mikročipam ir vesela virkne ģimeņu. PIC12/16/18 ar dažādām komandu sistēmām. 12. saime parasti ir sīkums (kā Tiny AVR), un 18 jau ir nopietnāki kontrolieri (analogs Mega AVR) Un ja kodu no 12 var vilkt uz 18, tad atpakaļ att.
  • 5. Plaša komandu sistēma AVR kontrolleriem. AVR ir aptuveni 130 komandas, savukārt Microchip PIC ir tikai 35. Šķiet, ka PIC ir ieguvējs - mazāk komandu, vieglāk apgūt. Jā, tieši tā izklausās mikročipa sauklis, piemēram, “Tikai 35 komandas!” Tikai tas patiesībā ir muļķības. Galu galā, kas ir procesora komanda? Tas ir instruments! Iedomājieties divus kalkulatorus - parasto, grāmatvedības un inženiertehnisko. Grāmatvedību ir daudz vieglāk apgūt nekā inženierzinātnes. Bet mēģināt aprēķināt sinusu par to? Vai arī logaritms? Nē, jūs varat, es nestrīdos, bet cik pogu nospiešanas un starpaprēķinu tas prasīs? Tas pats! Ir daudz ērtāk strādāt, ja pa rokai ir daudz dažādu darbību. Tāpēc, jo lielāka ir komandu sistēma, jo labāk.
  • 6. Bezmaksas starpplatformu C kompilatoru pieejamība. Protams, jūs vienmēr varat atrast plaisu. Kur kur, bet mūsu valstī tā nekad nav bijusi problēma. Bet kāpēc kaut ko zagt, ja jums ir kaut kas bezmaksas? ;)
  • 7. Nu, pēdējais arguments parasti ir visspēcīgākais. Tāda cilvēka klātbūtne, kas mācītu un konsultētu. Palīdzēja ar padomu un virzīja uz pareizā ceļa. Es izvēlējos AVR sev un šajā vietnē (autors vismaz pagaidām) šī konkrētā ģimene tiks pilnībā saprasta, kas nozīmē, ka jums nav daudz izvēles :)))))))

Ak, bet ir vesela kaudze šo pašu AVR. Kuru man ņemt???
Interese Jautājiet. Kopumā uzdevumam labāk izvēlēties MK. Bet, lai to izpētītu, labāk ir paķert kaut ko pildītu.

Vispirms apskatīsim marķējumus, lai no cenrāža uzreiz varētu saprast, kāds dzīvnieks ir tavā priekšā. Šeit ir piemērs jums

ATmega16A - 16PI

  • AT- ražots Atmel
  • Mega- ģimenes veids. Ir arī Tiny un Xmega (jaunais ir baigais sīkums, pilnīgs helikopters). Vispār tika uzskatīts, ka Tiny bija, piemēram, mazbudžeta ar nelielu maltās gaļas daudzumu un kopumā ar trūkumiem, un Mega, gluži pretēji, bija viss uzreiz. Patiesībā atšķirība starp Tini un Mega ģimenēm maltās gaļas ziņā tagad ir minimāla, taču Tini ir mazāk atmiņas un korpusi, kas nāk ar adatu skaitu no 6 līdz 20.
  • 16 — zibatmiņas apjoms kilobaitos. Patiesībā viss nav tik vienkārši. Atmiņas skaitlis ir divi. Tātad Mega162 nav kontrolieris ar 162KB zibspuldzi, bet gan sava veida Mega16 modifikācija2 ar 16KB atmiņu. Vai arī Mega88 nav 88kb, bet 8kb zibspuldzes, un otrais 8 ir sava veida mājiens, ka šī ir Mega8 tālāka attīstība. Tāpat Mega48 vai Mega168. Tas pats attiecas uz Tini ģimeni. Piemēram, Tini2313 - 2 kilobaiti zibspuldzes. Kas ir 313? Kurš pie velna zina, ko tie domāja :) Vai Tiny12 - 1kb Flash. Kopumā mikroshēma notīrīta.
  • A— enerģijas patēriņa prefikss (parasti). Šī vēstule var neeksistēt, bet jaunajā sērijā tā ir gandrīz visur. Piemēram, V un L sērijas ir zemsprieguma un var darboties no 2,7 voltiem. Tiesa, par zemu spriegumu jāmaksā mazāka frekvence. Bet pārtaktēšana ir iespējama arī šeit, nekas cilvēcisks mums nav svešs :) A un P ir jaunas AVR sērijas ar PicoPower tehnoloģiju t.i. īpaši ekonomisks. Ar to neindeksētajiem modeļiem pildījums un iekšējā struktūra neatšķiras, atšķirība ir tikai visu miega režīmu darbībā un enerģijas patēriņā. Tie. Mega16A var viegli nomainīt uz Mega16 bez A. Un nekas cits nav jāmaina.
  • 16 — Ierobežots pulksteņa frekvence megahercos. Patiesībā jūs varat to pārspīlēt līdz 20 ;)
  • P- apvalka veids. Svarīga īpašība. Fakts ir tāds, ka ne katru gadījumu var pielodēt mājās bez hemoroīdiem. Pagaidām iesaku pievērst uzmanību P-DIP korpusam. Šis ir apjomīgs briesmonis, taču to ir viegli lodēt, un, pats galvenais, tas viegli ielīst speciālā kontaktligzdā un atkal tiek izņemts no tās. Pagaidām labāk ir atstāt malā SOIC (indekss S) vai TQFP (indekss A) korpusus. Bez labas lodēšanas pieredzes un spējas kvalitatīvi kodināt iespiedshēmas plate Labāk ar viņiem neiejaukties.
  • es— Svinu alvošanas veids. I - svina lodēt. U - bez svina. Jums nav absolūti nekādas atšķirības. Paņemiet to, kas ir lētāks.

Es iesaku šādus modeļus:

  • ATMega16A-16PU - lēti (apmēram 100-150 rubļi), daudz tapu, daudz perifērijas ierīču. Pieejams dažādos korpusos. Tas ir vienkārši, mans apmācības kurss un visi turpmākie piemēri ir pielāgoti tam.
  • ATTiny2313-20SU ir ideāls variants visu veidu pulksteņu/modinātāju un citas mazas mājas automatizācijas izgatavošanai. Lēti (40 rubļi), kompakti. Negatīvā puse ir tāda, ka nav ADC.
  • ATmega48/88/168 kāds no šiem kontrolieriem. Kompakts (tqfp gadījumā tas ir plānākais un mazākais no AVR), lēts (100-150 rubļi), pildīts līdz malām.
  • ATmega128 pieredzējušiem. Liels, jaudīgs, daudz atmiņas. Dārgi (apmēram 400r)

Pieņemsim, ka jums ir dots uzdevums - likt mirgot LED.
Apspriedīsim, kā atrisināt šo problēmu:

1. variants ir visvienkāršākais, paņem pārslēgšanas slēdzi/pogu, noliec viņam blakus vergu, kurš ieslēgs/izslēgs LED, izmantojot pārslēgšanas slēdzi. Parasti Krievijā lielākā daļa problēmu tiek atrisinātas šādā veidā. Un kas mirgo?)))
2. iespēja - salieciet multivibratoru. Jau interesantāk. Lai mirgotu, pilnīgi pietiek ar vienu LED labs lēmums. Turklāt tas ir vienkāršs, lēts un uzticams.
3. iespēja - salikt uz mikrokontrollera. Dārgāka nekā multivibratora salikšana, bet, manuprāt, vieglāk. Es uzrakstīju programmu, palaidu to un ieguvu rezultātu. Nav iestatīšanas. Protams, šis ir ideāls gadījums.

Tagad sarežģīsim uzdevumu. Piemēram, 5 gaismas diodes un 5 to mirgošanas iespējas (to mirgošanas ātrums un secība mainās). Pirmā iespēja uzreiz pazūd; var veikt 2. metodi, taču ierīces izmērs strauji palielināsies. 3. iespēja paliks aptuveni tāda pati, vienkārši pievienojiet pāris koda rindiņas. Tāpēc ir dažādi gadījumi, kad bez mikrokontrollera nav iespējams un kur tas ir lieki. Tāpēc vienmēr novērtējiet darbaspēka, laika un finanšu izmaksas.

Tātad, mikrokontrolleris ļauj elastīgi pārvaldīt sistēmas, procesus utt., tam ir mazi izmēri, un funkcionalitātes ziņā tas ir minidators. Mikrokontrollerus ražo dažādi uzņēmumi. Viena no AVR mikrokontrolleru šķirnēm no Atmel. Kāpēc viņi? Veikalā tās ir diezgan viegli atrast, piemērus ir viegli atrast gatavs kods, iebūvētā funkcionalitāte ļauj atrisināt pat sarežģītas problēmas.

Lai mikrokontrolleris saprastu, ko mēs no tā vēlamies, mums tajā jāielādē programmaparatūra - darbību secība, kas tai jāveic. Programmaparatūra ir vieninieku un nulles secība. Lai padarītu to ērtāku, tika izgudrotas programmēšanas valodas. Piemēram, mēs rakstām ieslēgt, un pats kompilators to pārvērš mikrokontrolleram saprotamā vieninieku un nulles secībā. Attēlā parādīta HEX programmaparatūra, ja to atverat, izmantojot piezīmju grāmatiņu.

Mikrokontrolleri parasti tiek ieprogrammēti C vai montāžas valodā. Kopumā nav nekādas atšķirības, uz kā rakstīt. Ņemot vērā lielo gatavo piemēru skaitu, es izdarīju savu izvēli par labu C. Turklāt ir vairākas programmas, kas ļauj rakstīt C valodā. Piemēram, bezmaksas, patentēts AVR studija, CodeVision, WinAVR utt. Lai gan es rakstu CodeVision, es ļoti aktīvi izmantoju AVR Studio kā atkļūdotāju.

Ceru, ka vismaz daļa no tā jums kļuva skaidrs. Manuprāt, visgrūtākais ir spert pirmo soli. Tas, kurš to dara, pārvar savas bailes un slinkumu, noteikti sasniegs rezultātus. Veiksmi mikrokontrolleru apguvē.