Ievads par AVR mikročipiem

Sākumlapa Forumi Notepad.lv IT ziņas Raksti Ievads par AVR mikročipiem

Tiek skatīts 1 ieraksts (no 13 kopumā)
  • Autors
    Ieraksti
  • #147681
    deivs001
    Participant

    [imgl]https://notepad.lv/userpix/55_31344vqfp_2.jpg[/imgl]AVR ir viena čipa mikrokontrollers (µC), ko izstrādāja kompānija Atmel 1996. gadā. Š īs saimes µC bija vieni no pirmajiem, kas izmantoja uz čipa esošu flash atmiņu, kurā glabāt progammas.

    Sākt strādāt ar kādu mikročipu var būt diezgan biedējoši. Pirmais, par ko vairums uztrauksies- – kur iegūt informāciju un dokumentāciju, kurā būtu atbildēts uz jautājumu: “Kā iegūt darbojošos AVR programmu?”.

    Š oreiz mēģināsim atrisināt šo jautājumu, lai tālākajā ceļojumā jums jau būtu pamats zem kājām. Kā arī uzsāksim apmācību bez savu līdzekļu tērēšanas, jo mums tak ir krīze. Viss, kas būs vajadzīgs ir dators ar jebkādu Windows operētājsistēmu un interneta pieslēgums, lai varētu lejupielādēt vajadzīgos failus, Tas viss jums ir pieejams, ja jau varat izlasīt šo rakstu.

    Sagatavojam savu PC AVR apgūšanai

    Kas mums ir vajadzīgs? Sāksim ar to, ka lejupielādēsim visu vajadzīgo, arī to, kas būs nepieciešams vēlāk. Protams, vajadzētu saglabāt dokumentus, kas būs nepieciešami lasīšanai turpmāk, lai tie vienmēr būtu pie rokas, nevis jāmeklē kur tad īsti atradās tas un tas. Lai vēlāk būtu vieglāk savākt galus – iesaku izveidot atsevišķu mapi, piemēram, AVR un tajā arī saglabāt visus saistītos failus. Es izveidoju uz C diska šādu mapi AVR un turpmāk tajā atradīsies viss, kas lejupielādēts un saistīts ar AVR izstrādi, programmēšanu utt.

    Sākam ar AVR STUDIO 4 lejupielādi. Sī programma ietver sevī visu, kas nepieciešams, lai sāktu saprasties ar AVR saimes mikročipiem. Tajā ir iekļauts gan simulators, gan redaktors (ar tā palīdzību tiek mainīts programmas kods).

    Lejupielādējam un instalējam šādā secībā: AVR Studio 4, AVR Studio 4 SP 1, AVR Studio SP2.

    Nākošais, ar ko aizpildam sava cietā diska neizmantoto vietu ir:

    samplecode.asm (lejuplādējām šeit) – šeit atrodams kods, kas būs nepieciešams tālāk,

    Doc2512.pdf (lejuplādējam šeit) – AT90S8515 datasheet, šo µC izmantosim mūsu mācību procesā,

    Doc0856.pdf (lejuplādējam šeit) – instrukciju komplekts, noderīga lasāmviela tiem, kas vēlas uzzināt sīku un detalizētu aprakstu par kādu konkrētu komandu/instrukciju.

    AVR saimes arhitektūra:

    [img]https://bildites.lv/images/sliqbkykatdoygeceq6x.gif[/img]

    Ko daram tālāk? Protams, ka izmantojam lejupielādētos AVR Studio 4 instalācijas failus un uzstādām šo programmu uz sava datora. Atceramies, ka instalējam šādā secībā – 1. AVR Studio 4, 2. AVR Studio 4 SP 1, 3. AVR Studio SP2. Kad sākam instalēšanu, der atcerēties kur un ko mēs instalējam, kādā mapē. Tā kā es jau iepriekš izveidoju AVR mapi uz C diska, tad tajā arī instalēšu.

    Kad programma uzstādīta, mūsu īpašumā ir viss vajadzīgais, lai sāktu rakstīt programmas AVR saimes mikročipiem.

    [img]https://bildites.lv/images/v70jv32o30i3508vr9qm.jpg[/img]

    Pamatzināšanas par AVR

    AVR ir moderna mikrokontrolleru/mikročipu arhitektūra, kas radīta, kā jau minēju, 1996. gadā. Kad būs saprasti pamati, tad tikai sāksies pats interesantākais, jo varēsiet patstāvīgi izpētīt un izglītoties dziļāk šajā jomā.

    AVR mikrokontrolleri tiek iedalīti 3 grupās:

    tinyAVR,

    – AVR (Classic AVR),

    megaAVR/ATmega.

    Atšķirība stapr šīm grupām ir to fīču sarakstā. Piemēram, tinyAVR parasti ir µC ar mazāku kājiņu vai samazinātu iespēju/fīču skaitu salīdzinājumā ar megaAVR. Visu grupu mikrokontrolieri prot izpildīt vienas tās pašas instrukcijas, tādēļ uzsākt darbu ar kādu no šīm trīs grupas µC nebūs problēmu, ja pirms tam jau esat bijis iepazinies ar kadas citas grupas darbības principiem.

    Dažos AVR ir iekļauti SRAM, EEPROM, UART, utt. Ja salīdzināsim tinyAVR un megaAVR, izģērbsim kailus, tad zem tā slēpsies vienāds skelets – AVR core jeb AVR kodols. Š o kodolu sevī slēpj katrs AVR saimes pārstāvis.

    Varam secināt, ka, lai izvēlētos “pareizo” mikročipu, ir jāpārzin, ko kurš indivīds spēj paveikt programmēšanas jomā. Vēl svarīgāk ir zināt, ko mēs vēlamies no čipa “izspiest”. Tā kā mēs nevēlamies pagaidām neko specifisku radīt, tad sākumam pietiek iegādāties lētāko vai pieejamāko modeli.

    Mācamies rakstīt AVR kodu

    [imgr]https://bildites.lv/images/y2n7ktuhvfrfcdmepl2t.jpg[/imgr]

    Kā jau mēs visi zinām, jaunu lietu apgūšana var būt interesants pasākums, kura garums var būt sākot no pārdesmit minūtēm un beidzot ar mūža garumu, bet ir arī melnā puse šādām lietām. Diezgan bieži jaunais mūs nobiedē vai pieviļ gaidītās cerības un mēs atmetam visam ar roku un aizmirstam par to. Lai nebūtu jānoliek malā apņemšanās apgūt vismaz elementāras lietas, AVR programmēšanas jomā nevajadzētu sākt mācības tikai ar mikročipu datasheet lasīšanu un mācīšanos no šī materiāla. Š is paņēmiens arī nav slikts, bet ir jāmāk sevi pierunāt nepadoties, jo šāds veids prasa lielu pacietību un laiku. Vieglāks veids, manuprāt, ir šāds:

    1. Atrast strādājošu, jau uzrakstītu kodu,

    2. Izprast tā darbību,

    3. Izmainīt to tā, lai tas izpildītu jūsu vajadzības.

    Tie, kas pirmo reizi iepazīsies ar šiem mikročipiem, sāks to ar AT90S8515, kura cena elfa.lv ir 4.18 Ls, jo šis modelis ir ar labu perifēriju kombināciju. Nākamais solis, kas ir jāizpilda ir jāpārlūko šī µC datasheet.

    Kā lietot AVR datasheet

    Ja esat iepriekš jau lejupielādējuši visu to, kas tika minēts iepriekš, tad jums uz sava cietā diska ir jāmeklē PDF formāta fails ar nosaukumu – Doc2512. Tikko atverot šo failu un apskatoties lappušu skaitu ir viegli nobīties no šī skaitļa. Lai gan AT90S8515 datasheet sastāv no 255 lapām, piemēram, ATmega128(L) datasheet sastāv no 386 lapām. Kā jau saprotams, lai izlasītu šo materiālu ir nepieciešams diezgan daudz laika, bet par laimi šī darbība nav obligāta. Š īs dokumentācijas uzdevums ir nodrošināt pilnīgu tehnisko izklāstu par ierīci, tā būs lietderīga kā uzziņas vieta, kad vēlēsieties noskaidrot kā darbojas konkrētā fīča vai perifērija. Kad atvērsiet un pārskatīsiet dokumentāciju ievērosiet, ka tā var tikt iedalīta šādi:

  • 1. Pirmā lapa, kas satur ļoti svarīgu un kodolīgu informāciju par produktu,

    2. Arhitektūras pārskats,

    3. Perifēriju apraksts,

    4. Atmiņas programmēšana,

    5. Ierīces raksturīgākās pazīmes,

    6. Reģistru kopsavilkums

    7. Instrukciju/komandu kopu kopsavilkums

    8. Iesaiņošanas informācija


  • [imgr]https://bildites.lv/images/laokobrja30puuqjs74p.gif[/imgr]

    Kad šādi esam sadalījuši dokumentāciju, uzreiz skats uz šo lapu gūzmu ir savādāks, tas liekas ērtāks.

    Kad būsim izgājuši cauri šim rakstam un palikuši gudrāki, ieteicams ir pārskatīt mikročipa arhitektūru, kas dos informāciju par AVR atmiņu, adresācija un vēl daudz ko, kas var noderēt turpmāk.

    Vēl pie ieteicamās lasāmvielas būtu jāpievieno instrukciju/komandu kopsavilkums (jau lejupielādētais PDF fails ar nosaukumu Doc0856). Š ajā dokumentā atrodamā informācija būs noderīga, kad jūs paši saviem spēkiem sāksiet rakstīt kodu no nulles. Kā arī šajā dokumentācijā varam izpētīt sīki un smalki kādu interesējošu komandu.

    Labi, pietiks ņemties ar teoriju. Esam sapratuši, ka datasheet, mikročipa dokumentācija sevī slēpj lielu daudzumu noderīgas informācijas, kas pagaidām mums ir pilnīgi nevajadzīga. Kā arī zinam, ka ir dažādu veidu µC AVR saimē. Tad nu laiks ir ķerties klāt praksei!

    Startējam AVR Studio 4

    Pirms atverat programmu, vai kamēr tā atveras – apskatīsim, kas tad īsti ir AVR Studio 4. AVR Studio® ir IDE (Integrated Development Environment), kas paredzēta AVR aplikāciju, programmu rakstīšanai un atkļūdošanai. Tā darbojas uz Windows platformas un sadzīvo ar Windows 98/XP/ME/2000, kā arī Vista. Š ī programma piedāvā: projekta pārvaldīšanu, sākumkoda rediģētāju, čipu simulatoru.

    Pirmais solis: Sākam jaunu projektu

    Lai sāktu jauna projekta izveido, mums ir jāstartē jau iepriekš uzinstalētā programma – AVR Studio 4. Visticamāk tā būs atrodama zem Start => Programs (WinXP)/All Programs (WinVista) => Atmel AVR Tools. Sarakstā, protams, izvēlamies – AVR Studio 4.

    [img]https://bildites.lv/images/u6gs6zh9tuw0dj2e424e.jpg[/img]

    Ja viss ir pareizis nospiests, būtu jāatveras šādam logam:

    [img]https://bildites.lv/images/vjnlp17cj067rs087h.jpg[/img]

    Tā kā mūsu mērķis ir sākt jaunu projektu, tad izvēlamies New Project

    [img]https://bildites.lv/images/3ncx1tw07r4884wte4uo.jpg[/img]

    Otrais solis: Izveidojam projekta setingus jeb īpašības

    Š is solis aptver tādas lietas kā projekta tipa izvēli (1), projekta vārda izveidi (2), sākumfaila (Initial File) nosaukuma izveidi (3), saglabāšanas vietas norādīšanu (4), ja vēl atceraties, tad ieteicu izveidot vienu mapi, kurā saglabāt visu, kas saistīts ar AVR. Man šī mape atrodas C:AVR.

    [img]https://bildites.lv/images/oxjib7et6xa9gx0ej7fw.jpg[/img]

    Ja esam visu aizpildījuši, tad nedomājot varam spiest Next un nākamais logs, kas mums atklājas, ir šāds:

    [img]https://bildites.lv/images/b3mw7nlfpxrgqzcd9a87.jpg[/img]

    Š eit mēs pievēršam uzmanību, Debug Platform un Device izvēlei.

    [img]https://bildites.lv/images/7czgqwmx472oliytcpki.jpg[/img]

    Kad atlasīti parādītie uzstādījumu, atkal nedomājot, varam spiest pogu – [img]https://bildites.lv/images/a24q18ibin4z9wpzfd.jpg[/img]

    Nospiežot pogu Finish esam apstiprinājuši, ka visi projekta parametri/īpašības mūs apmierina un programma mums dod iespēju uzsākt darbu šajā logā, ar ko sākas

    Solis trešais: Rakstam pirmā projekta pirmās koda rindas:

    [img]https://bildites.lv/images/gfixjve189e1y3tl9nei.jpg[/img]

    Lai pēc mēneša, gada mēs atcerētos, ka šis bija mūsu pirmais projekts – ierakstīsim to pašā projektā kā komentāru. AVR Studio visu, kas rakstīts aiz ;, semikola simbola uzskata par komentāru. Kamēr vēl neesam aizmirsuši ierakstam ko vajadzēja rediģēšanas logā:

    [img]https://bildites.lv/images/av33m5x8evytgq8vlpj.jpg[/img]

    Strādājot ar svarīgiem projektiem mēs nekad nevaram būt droši, ka mūsu datoru pēkšņi nevar ietekmēt strāvas zudums vai arī kāds cits nevēlams gadījums, kas var “palīdzēt” mums pazaudēt projekta kodu rindas. Tādēļ ieteicams ik pēc brīža saglabāt projektu – tos datus, kurus veidojam. Tas visnotaļ attiecas arī uz referātiem, zīmējumiem un citām lietām, kas tiek darītas pie datora. AVR Studio programmā saglabāt rindas varam saglabāt ar ātro taustiņu palīdzību: Ctrl+S vai arī doties uz rīkjoslu File => Save. (Jūs tak to jau zinājāt, vai ne?)

    [img]https://bildites.lv/images/iuysjcub99cssgxjq6p.jpg[/img]

    Tā kā esam saglabājuši savu darbu, tagad droši varam apskatīties apkārt un iepazīties ar AVR Studio 4 GUI (Graphical User Interface/Grafisko lietotāja interfeisu).

    AVR Studio 4 GUI

    Kā redzams apakšējā zīmējumā, visu GUI esam iedalījuši 7 daļās.

    1. Izvēlnes rinda (Menu), kurā atrodamas jau pazīstamās komandas – save, open, close, kā arī specifiskas komandas kā – debug, tools.

    [img]https://bildites.lv/images/r410mhqabnfld8ef0975.jpg[/img] [img]https://bildites.lv/images/2a4spdcpw46egpuqtd9r.jpg[/img]

    2. Rīku josla (Toolbars), šeit atrodas īsceļi (shortcuts) uz biežāk lietojamām komandām. Piemēram, Saglabāt (Save), Atvērt (open), Kopēt (Copy) un daudzas citas.

    3. Darba logs Project. Š ajā logā varam veikt darbības ar projekta failiem, dzēst, pievienot failus utt.

    4. Logs – Editor. Š ajā logā mums ir iespāja labot, atvērt, apskatīt jau esošu programmu kodus, kā arī šeit mēs veidosim savas kodu rindiņas.

    5. Output Window. Uzrāda informāciju par statusu, kas notiek programmā.

    6. Š o mazo strīpiņu sauc par System Try. Š eit varam sameklēt informāciju par to kādā režīmā strādā AVR Studio, tā kā mēs pašlaik strādājam ar čipu AT90S8515 simulācijas režīmā, tas viss ir redzams tur.

    7. I/O View. Atrodam informācija par µC Input/Output portiem, kurus mēs izmantojam dzīvē.

    Lai iepazītos sīkāk ar GUI iesaku izlasīt AVR Studio User Guide.

    [img]https://bildites.lv/images/o8k36t9rilsmtp7j5bv3.jpg[/img]

    Nu jau jūtamies mājīgāk iekš GUI un varam sākt “rakstīt” savu pirmo programmu.

    Rakstām pirmo AVR programmu

    Tagad droši varam turpināt savu iesākto LED projektu, kas līdz šīm sastāvēja no vienas rindiņas.

    Code:

    ; Mans pirmais AVR projekts


    Ar šādu kodu mēs neko nepanāksim, un ne jau tādēļ, ka tas sastāv no 4 vārdiem, bet gan tādēļ, ka tas viss ir komentārs. Pietiek gaidīt un turpinām paplašīnāt mūsu pirmās progammas iespējas. Pilns programmas kods izskatās šāds:

    [img]https://bildites.lv/images/z6832hnm71b63ilyp4c3.jpg[/img]

    Tiem, kas nevēlas visu pārrakstīt ar roku, atgādināšu, ka jums bija iespēja lejupielādēt failu ar nosaukumu – samplecode.asm, kas arī ir pilna formāta programmas kods. Kad tas veiksmīgi pārrakstīts vai vienkārši iekopēts editora logā varēsim izmantot komandu Build and run. Pirms tam gan gribu pievērst jūsu uzmanību tam, ka ierakstītais teksts maina krāsu. Tas ir normāli un pat parocīgi, šādu funkciju sauc par sintakses iekrāsošanu. Tā palīdz orientēties burtu, vārdu mudžeklī, kas bieži vien mēdz izveidoties garos programmas kodos, cilvēkiem, kas neievēro nekādu kārtību kā viņi programmē. Bet mēs taču tādi neesam?!

    Lai izpildītu iepriekš pieminēto komandu Build and Run mums ir divas iespējas. Izmantot ātro taustiņu kombināciju Ctrl + F7, bet ja nejūtam pirkstos tik lielu veiklību varam to mierīgāk izdarīt izvēloties “Izvēlnes” rindas (Menu) sekciju Build un izvēloties variantu Build and Run.

    [img]https://bildites.lv/images/7358fv8snd9zxyf23trv.jpg[/img]

    Ja viss ir pareizi izdarīts, tad Output Window logā mums būtu jāredz, ka Assembly complete, 0 errors. 0 warnings/montāža pabeigta, 0 kļūdas, 0 brīdinājumi. Vēl mums tiek parādīta informācija par to cik lielu daļu no mikročipa atmiņas procentuāli aizņems gatavais programmas kods.

    [img]https://bildites.lv/images/5f8hymedcc9co2ku1e09.jpg[/img]

    Varat apsveikt sevi ar pirmo programmu, kas paredzēts AVR čipam.

    Varam arī ievērtēt reklāmas klipu, kas prezentē AVR Tools:

    [youtube]https://www.youtube.com/watch?v=7FCJjqEw0qg[/youtube]

    Aicinu cilvēkus, kam šī lieta patīk, izglītot arī pārējos. Dodat ziņu un mēģināsim turpināt šos izglītojošos rakstus.

    Izmantotie materiāli: Wikipedia Atmel AVR, Newbie’s Guide To AVR Development, Novices Guide to AVR Development, A COMPLETE SOFTWARE ENVIRONMENT TO DEVELOP AVR® APPLICATIONS. IT’S FREE!, AVR Studio User Guide, AVRwiki, AVRBeginners, AVR-mcu.dxp.pl, piclist.com, AVRfreaks.net, ibrtses.com, AVR Assembler Help, attiny.com,

#186549
Tvinky
Participant

Milzīgs, jo milzīgs tev paldies!

#186550
akels14
Participant

Kā kods nonāk uz tā čipa?

#186551
Tvinky
Participant

Caur USB, LPT, COM portu slēdzas programmētājs, vai plate uz kuras ir čips. Kods kompilējas mašinkodā un iekšā ceļo. (Vismaz man tā liekas)

#186552
deivs001
Participant

Kods mikročipos tiek iešūts ar programmatora palīdzību. Ir dažāda izskata un izmaksu programmatori sākot no šāda un beidzot pat ar šādu.

#186553
samurajs
Participant

Labs materiāls, paldies autoram!

#186554
Tvinky
Participant

YY linki ir atteikuši, AVR SP1 un SP2 laikam var atrast šeit: https://www.atmel.com/dyn/products/tools_card.asp?tool_id=2725 – tulīt notestēšu.

#186555
deivs001
Participant

Faili tagad dzīvojas uz “failiem.lv”

SP1

SP2

#186556
Tvinky
Participant

deivs001 wrote:

Faili tagad dzīvojas uz “failiem.lv”

SP1

SP2

Priekš slinkajiem vēl example kodu vari turpat ielikt, jo cik noprotu no YY tas arī ir nozudis 🙂

#186557
deivs001
Participant

Done!

Atjaunots!

yy.lv sample kods

#186558
Tvinky
Participant

Jautājums: Varbūt pa rokai kaut kur mētājās sample kods C valodā? Ar ASM būs pasmagāk, nekā ar C man liekas :[]

#186559
deivs001
Participant

Nē, nevarēšu līdzēt ar C kodu. Pats ņemos ar ASM tādēļ arī seit tas figurē.

#186560
neirons
Participant

Ja nu ir interese par kadu “HelloWorld” līmeņa piemēru AVR procesoram C vidē:

*

toggle_led.c

Copyright (C) 2006 Micah Carrick

This program is free software; you can redistribute it and/or modify

it under the terms of the GNU General Public License as published by

the Free Software Foundation; either version 2 of the License, or

(at your option) any later version.

This program is distributed in the hope that it will be useful,

but WITHOUT ANY WARRANTY; without even the implied warranty of

MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the

GNU General Public License for more details.

You should have received a copy of the GNU General Public License

along with this program; if not, write to the Free Software

Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

*/

#define F_CPU 1000000UL /* Procesora takstfrekvence. Konstante izmantojas funkcijā

_delay_ms()*/

#include

#include

int

main (void)

{

DDRC = _BV (PC0); /* PC0 ir digitālā izeja */

while (1) /* Mūžīgais cikls */

{

/* Uzstāda PORTC bitu PC0 (loģiskais vieninieks) un aizture uz 500mS */

PORTC &= ~_BV(PC0);

_delay_ms(500);

/* Nodzēš PORTC bitu PC0 (loģiskā nulle) un aizture uz 500mS */

PORTC |= _BV(PC0);

_delay_ms(500);

}

return (0);

}

Tiek skatīts 1 ieraksts (no 13 kopumā)
  • Jums ir jāpieslēdzas sistēmai, lai varētu komentēt šo tēmu.
Jaunākais portālā