Difference between revisions of "AVR forritun"

From Fab Lab Wiki - by NMÍ Kvikan
Jump to: navigation, search
Line 8: Line 8:
 
== Skref fyrir skref ==
 
== Skref fyrir skref ==
 
=== Búa til rafrás ===
 
=== Búa til rafrás ===
 +
Sjá [[rafrásagerð]].
  
 
=== Skrifa forrit fyrir örgjörvann ===
 
=== Skrifa forrit fyrir örgjörvann ===

Revision as of 10:59, 27 May 2009

Forritun AVR örgjörva fer fram í nokkrum skrefum:

  1. Búa til rafrásina
  2. Skrifa forrit fyrir örgjörvann
  3. Þýða forritið yfir í vélamál
  4. Flytja forritið yfir á örgjörvann

Skref fyrir skref

Búa til rafrás

Sjá rafrásagerð.

Skrifa forrit fyrir örgjörvann

Forrit fyrir örgjörvanna má skrifa í ótal málum. Örgjörvarnir sjálfir skilja í rauninni bara eitt mál, vélamál, en það eru til önnur forrit, svokallaðir þýðendur sem þýða úr öðrum málum yfir í vélamál. Það er mjög erfitt að skrifa forrit á vélamáli og því kýs fólk að skrifa forrit frekar á öðru máli. Tvö mál eru algeng í þessu, og verða þau tekin fyrir hér:

  • Smalamál (assembler)
  • C

Smalamál

Smalamál, eða assembler er misjafnt milli örgjörva. Allir AVR örgjörvar skilja þó í grunnatriðum sama málið. Hver skipun í smalamáli samsvarar nákvæmlega einni skipun á vélamáli.

Það eru rúmlega 120 skipanir í smalamáli AVR örgjörva. Lista yfir þessar skipanir má finna í handbókum viðkomandi örgjörva - til dæmis, fyrir ATTiny45. Allir örgjörvarnir eru með svokallað Product Card, en ATTiny45 product card má finna hér.

AVR örgjörvar hafa 32 almenn minnishólf, nokkur sértækari minnihólf, og svo almennt vinnsluminni, flash minni og EEPROM minni.

C

C forritunarmálið hefur þann kost umfram smalamál að vera eins allsstaðar. C forrit eru auk þess mun þægilegari í lestri fyrir menn heldur en smalamálsforrit.

Til að forrita í C fyrir AVR örgjörva þarf þó C þýðanda sem skilur vélamál AVR. Einn mjög góður þýðandi er GCC en hann er til fyrir vel flesta örgjörva sem notaðir eru í dag.

Þýða forritið yfir í vélamál

Til að þýða forritið yfir í vélamál þarf þýðanda. Góður og einfaldur þýðandi fyrir smalamál er gavrasm, en svo eru öflugari þýðendur sem fylgja stærri pökkum eins og AVR Studio.

Fyrir C er GCC þýðandinn afskaplega góður. AVR útgáfu af GCC má nálgast hér fyrir Windows og á Linux í gegnum pakkakerfið - gcc-avr í Ubuntu. Einnig þarf libc útgáfu fyrir AVR; það fylgir með WinAVR, en í pakkakerf Ubuntu fæst það sem avr-libc.

Önnur leið er að nota Arduino þróunarumhverfið, en góður C þýðandi fylgir með því. Til að geta notað það þarf þó að setja svokallaðan Arduino bootloader á örstýringuna fyrst. Nánar um það á Arduino.

Flytja forritið yfir á örgjörvann

AVR örgjörvar bjóða upp á ISP, eða In-System Programming. Þá eru notaðir fimm pinnar á örstýringunni (MISO, MOSI, SCK, RESET og GND) til að flytja forrit yfir á örstýringuna. Til að þetta sé hægt þarf að tengja þessa fimm pinna við tölvu á þannig hátt að tölvan geti sent boð. Ótal aðferðir eru til þess, en fyrst og fremst eru þrjú forrit sem geta séð um það fyrir mann:

  • avrdude er lítið en tiltölulega flókið forrit sem getur notað mjög margar aðferðir til að skrifa frá tölvunni.
  • AVR Studio, sem minnst var á áðan, getur flutt forrit yfir.
  • Arduino umhverfið er líka með innbyggða aðferð til að flytja forrit yfir.

Tegundir AVR örgjörva

Hér eru bara taldar upp nokkrar gerðir:

  • ATTiny13 (mjög ódýrir og vinsælir, sömu pinnar og ATTiny45 sem er öflugari. Víða á netinu eru leiðbeiningar um notkun ATTiny13, en þá má nota ATTiny45 í staðinn án breytinga.)
  • ATTiny45 (Til í Fab Labinu. Dýrari en Tiny13 og með meira minni)
  • ATTiny44 (Til í Fab Labinu. Mun öflugari en Tiny45, meira minni, og með fleiri pinnum. Sömuleiðis dýrari)
  • ATMega88 (Til í Fab Labinu. 32 pinna pakkning, 20MHz, 8kb flash, 8kb SDRAM. Hefur hliðræn úttök.)
  • ATMega168 (Notað í Arduino.)

Verkfæri

  • GCC - Vinsæll C þýðandi
  • gavrasm - Smalamálsþýðandi fyrir AVR smalamálskóða
  • avrdude - Forritunarforrit fyrir AVR örgjörva; notað til að koma forritinu inn á kubbinn.
  • Forritunarkaplar

Bækur