Ievads par AVR mikročipiem

Moderatori: janis.wd, Vecākie lietotāji

deivs001
Vecākais lietotājs
Atbildes: 2011
Pievienojies: 14 Mar 2007, 13:45
Reputācija: 0

Ievads par AVR mikročipiem

Post no deivs001 » 08 Dec 2008, 11:00

[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:
Image

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.

Image

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]http://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]http://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[sup]®[/sup] 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.

Image

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

Image

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

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.

Image

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

Image

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

Image

Kad atlasīti parādītie uzstādījumu, atkal nedomājot, varam spiest pogu - Image
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:

Image

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ā:

Image

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?)

Image

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.

Image Image

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.

Image

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: Select all

; 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:

Image

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.

Image

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.

Image

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

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

[youtube]http://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,
Last edited by deivs001 on 08 Dec 2008, 17:37, edited 2 times in total.

User avatar
Tvinky
E-žurnālists
Atbildes: 454
Pievienojies: 17 Apr 2007, 13:11
Reputācija: 0

Post no Tvinky » 08 Dec 2008, 15:53

Milzīgs, jo milzīgs tev paldies!

akels14
Reģistrēts lietotājs
Atbildes: 34
Pievienojies: 05 Nov 2008, 17:00
Reputācija: 0

Post no akels14 » 08 Dec 2008, 15:55

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

User avatar
Tvinky
E-žurnālists
Atbildes: 454
Pievienojies: 17 Apr 2007, 13:11
Reputācija: 0

Post no Tvinky » 08 Dec 2008, 16:11

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)

deivs001
Vecākais lietotājs
Atbildes: 2011
Pievienojies: 14 Mar 2007, 13:45
Reputācija: 0

Post no deivs001 » 08 Dec 2008, 16:13

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.
"You can't expect to hit the jackpot if you don't put a few nickels in the machine" / Flip Wilson
Image

User avatar
samurajs
Administrators
Atbildes: 14988
Pievienojies: 06 Mar 2007, 15:04
Reputācija: 0
Atrodas: Liepājas anomālā zona

Post no samurajs » 08 Dec 2008, 16:17

Labs materiāls, paldies autoram!
Image

User avatar
Tvinky
E-žurnālists
Atbildes: 454
Pievienojies: 17 Apr 2007, 13:11
Reputācija: 0

Post no Tvinky » 08 Dec 2008, 16:38

YY linki ir atteikuši, AVR SP1 un SP2 laikam var atrast šeit: http://www.atmel.com/dyn/products/tools ... ol_id=2725 - tulīt notestēšu.

deivs001
Vecākais lietotājs
Atbildes: 2011
Pievienojies: 14 Mar 2007, 13:45
Reputācija: 0

Post no deivs001 » 08 Dec 2008, 17:10

Faili tagad dzīvojas uz "failiem.lv"
SP1
SP2
"You can't expect to hit the jackpot if you don't put a few nickels in the machine" / Flip Wilson
Image

User avatar
Tvinky
E-žurnālists
Atbildes: 454
Pievienojies: 17 Apr 2007, 13:11
Reputācija: 0

Post no Tvinky » 08 Dec 2008, 17:28

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 :)

deivs001
Vecākais lietotājs
Atbildes: 2011
Pievienojies: 14 Mar 2007, 13:45
Reputācija: 0

Post no deivs001 » 08 Dec 2008, 17:37

Done!
Atjaunots!
yy.lv sample kods
"You can't expect to hit the jackpot if you don't put a few nickels in the machine" / Flip Wilson
Image

User avatar
Tvinky
E-žurnālists
Atbildes: 454
Pievienojies: 17 Apr 2007, 13:11
Reputācija: 0

Post no Tvinky » 08 Dec 2008, 17:45

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 :[]

deivs001
Vecākais lietotājs
Atbildes: 2011
Pievienojies: 14 Mar 2007, 13:45
Reputācija: 0

Post no deivs001 » 08 Dec 2008, 17:50

Nē, nevarēšu līdzēt ar C kodu. Pats ņemos ar ASM tādēļ arī seit tas figurē.
"You can't expect to hit the jackpot if you don't put a few nickels in the machine" / Flip Wilson
Image

neirons
Reģistrēts lietotājs
Atbildes: 2
Pievienojies: 02 Feb 2009, 15:38
Reputācija: 0
Atrodas: Liepāja

Post no neirons » 02 Feb 2009, 16:07

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

*
toggle_led.c
Copyright (C) 2006 Micah Carrick <email>

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 <util>
#include <avr>

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);
}

Pievienot atbildi

Return to “Raksti”