Actions

AVR Programmer 09

From Chalmers Robotics

 !OBS! ett av mostånden på programmeren är inte helt optimalt. R16 (med värdet 4k7) ska bytas ut mot något mycket lägre (mellan 600 och 1k). Värt att notera är också att denna programmerare kan ha problem med att sätta och verifiera fuse-bitarna i processorn. Detta är dock inget större problem i de flesta fall och inget att vara orolig för. !OBS!

Avrprogrammer finished.jpg

AVR Programmer är en "adapter" som man kopplar mellan datorn och sin mikrokontroller för att kunna skicka över sin robotkod. Det har tidigare varit en del problem med denna bit eftersom man fått använda parallellporten eller COM-porten på datorn som inte finns på de flesta datorerna idag. Den nya versionen av programmerare använder därför USB-porten. AVR-programmer fungerar utmärkt att användas till i princip all programmering av AVR-kretsar så länge kretskortet är förberett för ISP-programmering. Vad detta innebär förklaras längre ner. Introbot06-Introbot09 är såklart anpassade för detta.

AVR Programmer är precis som Introbot en byggsats som kommer i delar och som användaren själv löder ihop. Alla komponenter är hålmonterade vilket gör det lättare för nybörjare.

Största delen av programmeraren har hämtats från ett Open Source-projekt som heter AVR-Doper (http://www.obdev.at/products/vusb/avrdoper.html). Det vi har gjort på projektet är att göra en egen layout som passar i en inbyggnadslåda. Det finns även en hel del mer information hos elektronikföreningen på Linköpings universitet, Admittansen, då de har använt denna typ av programmerare i föreningen, (http://wiki.admittansen.se/index.php?title=AVR-ISP-programmerare).

Vill du köpa en programmerare? Kom till lokalen och kontakta någon i styrelsen eller skicka ett mail. Den kostar 100kr och kan endast köpas i samband med en Introbot09. Inbyggnadslådan ingår. Vid behov så kan en 0.6m A-miniB USB-kabel köpas för 10kr.

Förklaring

När man skriver sitt program till sin mikrokontroller används ofta språket C. Detta kompileras och blir till en maskinkod som finns i en fil med filändelsen .hex. Den innehåller en binär representation av hur man vill att minnet på mikrokontrollern ska se ut. Nästa steg är att överföra denna kod till mikrokontrollern och det görs av AVR-programmeraren.

Programmeraren innehåller egentligen bara två kontakter. En USB-kontakt som ansluts till datorn och en 2×3-pinnars stiftlist. Den andra kontakten innehåller de pinnar som behövs för att kunna kommunicera med AVR-kretsen.

Förberedelse

Börja med att kolla så att alla komponenter har följt med. Nedan finns en bild på alla komponenter.

Avrprogrammer komponenter.jpg

Läs igenom hela byggbeskrivningen innan du börjar så att inga onödiga misstag görs!

Byggbeskrivning

I jämförelse med Introbot så finns det inte så många steg för att bygga ihop programmeraren. Eftersom i princip alla komponenter behövs för att kunna testa om något fungerar kan man montera alla komponenter och sedan får man hoppas att det fungerar. Denna metod rekommenderas inte för egna projekt eller Introbot eftersom det väldigt lätt blir något litet fel som kan vara mycket svårt att hitta i efterhand.

Saker man ska tänka på:

  • Avvakta med lysdioderna tills du bestämt dig för hur de ska sitta i lådan. En variant är att borra två hål i lådan och sätta lysdioderna en liten bit upp från kortet som kan ses i bilderna nedan.
  • Vad gäller lysdioderna så har polmarkeringen tyvärr fallit bort. Lysdioderna ska sitta så att pluspolen sitter närmast processorn (alltså till vänster på bilden).
  • ISP-kontakten (2×3 vinklad stiftlist) bör monteras en liten bit från kretskortet så att hylskontakten får plats.

Komponenter

Nedan finns en tabell med vilken beteckning som hör till vilken komponent. Dessa ska sedan lödas på plats på mönsterkortet på respektive plats.

Referens Komponent Typ Antal
C1 Elektrolytkondensator 4,7uF 1
C3,C6 Kondensator 100nF 2
C4,C5 Kondensator 22pF 2
R1,R2 Motstånd 68Ω 2
R4-R6,R8,R13 Motstånd 330Ω 5
R16 Motstånd 750Ω 1
R7 Motstånd 2k2Ω 1
R3,R14,R15,R17 Motstånd 4k7Ω 4
R10,R11 Motstånd 10kΩ 2
R9 Motstånd 22kΩ 1
R12 Motstånd 33kΩ 1
USB USB-kontakt Mini-usb 5-pin, hål, typ B 1
PWRLED LED Grön, 3mm, 3V 1
DLED LED Röd, 3mm, 3V 1
T1-T2 Transistor NPN/BC548 2
HID,SCK,VTarg Stiftlist 1×2 stiftlist, 2.54mm 3
HID,SCK,VTarg Bygling 1×2 bygling, 2.54mm 2
ISP Vinklad stiftlist 2×3 stiftlist, 2.54mm 1
Q1 Kristall 12Mhz HC49 Lågprofil 1
IC1 IC-sockel 28 hål, 0.3"/DIL28 1
IC1 Microcontroller ATMega88 1
D1,D2 Zenerdiod 3,6V Zenerdiod 2
- Kabelhylsdon 6-pol 2
- Flatkabel 6-pol, 20cm 1
- Kretskort CRF USB-programmer 1
- Inbyggnadslåda Svart plastlåda 1

Avrprogrammer board.jpgAvrprogrammer assembled.jpg

Inbyggnadslåda

Kretskortet är anpassat för att sitta i en liten inbyggnadslåda men det är några små modifikationer som behöver göras. De första två är att göra öppningar för kontakterna i varsin ände. Modifikationerna görs i locket (den tjocka biten) med hjälp av t.ex. en skalpell eller mattkniv. På ena sidan ska hålet göras lika stort som USB-kontakten och på andra så att en 6-ledars flatkabel kommer igenom.

Det finns även två lysdioder på programmeraren som man gärna vill se. Dessa kan göras synliga genom att borra två hål i locket. Om kretskortet placeras enligt hålbilden i lådan så kan de två hålen för lysdioderna borras enligt mallen nedan.

För att montera kortet i lådan kan man enklast göra det med lite smältlim.

När en krets ska programmeras måste den få ström på något sätt. Ett sätt är att externt mata sitt kretskort med t.ex. ett batteri. Det andra är att låta programmeraren ta ström från datorn och driva kretsen. Det finns olika åsikter om hur detta ska göras, men möjligheten finns att välja sätt med t.ex. en bygel eller en strömbrytare. Det finns plats att montera något av dessa på lådan med lite smältlim. Man måste dock vara mycket försiktig för man måste undvika att använda båda sätten samtidigt. Det vill säga att det bör undvikas att ha ett batteri inkopplat samtidigt som man låter datorn driva kretsen.

Avrprogrammer inbox.jpg

Inkoppling

På datorsidan kopplas programmeraren in med en vanlig A-miniB USB-kabel.

För att koppla in kretskortet vars mikrokontroller man vill programmera måste en liten adapter-kabel tillverkas. Det medföljer en bit flatkabel och två stycken hylskontakter. De måste pressas ihop som på bilden för att pinne 1 på kontakten alltid ska stämma. Flatkabeln ska inte skalas innan den monteras utan de små stiften i kontakten gör det automatiskt när "locket" pressas på. Det görs enklast med en polygrip men en vanligt flat-tång fungerar bra.

För att kontakten som ska kopplas till programmeraren ska få plats i inbyggnadslådan ska man se till att INTE montera dragavlastningsskyddet.

På varje hylskontakt finns en markering vilken pinne som är nummer 1. Den ser ut som en liten pil. Ett förslag är att göra ett litet rött streck på flatkabeln på den sida som innehåller pinne 1. När kontakten monteras på programmeraren och på målsystemet så ska man se till att pinne 1 alltid hamnar rätt.

Användning

  • För användning på Windows: Sätta upp en AVR-miljö i Eclipse på M$ Windows XP
  • För användning på Linux: AVR, Eclipse och GNU/Linux
  • För användning på Mac: Programmera AVR med Mac OS X

Obs! Om ni inte får det fungera, testa googla lite, och om inte det hjälper, hör av er till oss så ska vi försöka lösa problemet.