Sida 1 av 1

Blips och avrdude

Postat: 17 april 2007, 19:38:51
av dayzleaper
I en projektkurs inom inbyggda system på universitetet här i stan (Mittuniversitetet) håller vi på att programmera ett positioneringssystem baserat på en ZigBee-modul (CC2420) och en atmega128.

Utvecklingskortet vi använder är ansluten via en USB->RS232-brygga (CP2101). Vi använder dessutom bootloadern Blips för att flasha om atmegan, men programvaran till Blips finns bara till Windows, och det är här problemet uppkommer. Enligt Blips specifikationer så ska bootloadern vara kompatibel med Atmels AVR109 Application Note, och det ska tydligen avrdude också vara, men tydligen så är det något som strular.

När Avrdude försöker läsa EEPROM-innehållet från atmegan så får den inget svar. Blipsprogramvaran för Windows fungerar alldeles utmärkt, men avrdude vill helt enkelt inte.

Är det någon som har stött på samma problem eller har tips på andra Linuxbaserade programmerare som klarar av AVR109? Jag har provat med Avrdude 5.1, 5.2 och 5.3.1, utan resultat. Det är den senaste versionen av Blips (v3.0) som sitter i atmegan.

Hur ska jag börja felsöka?

Jag kan tillägga att det förmodligen kommer en projekttråd om allting när vi börjar få något att visa upp också :)

En lite snyggare variant på hemsidan för Blips finns på http://www.poweruser.se/projekt/sentio/index.php/BLIPS . Innehållet är detsamma som sidan på avrfreaks, men jag tänkte att det underlättar om man kan läsa utan att behöva skapa ett konto.

Avrdude bor på http://www.esnips.com/web/blips .

En loggfil för mina anslutningsförsök finns på http://www.poweruser.se/projekt/sentio/ ... de_problem

Jag vore väldigt tacksam för all hjälp jag kan få :)

/ Robert

Postat: 17 april 2007, 22:05:02
av cykze
1. Fungerar andra kommandon (t ex skriva/läsa Flash:et)?

2. Fungerar det med Avrdude i Windows?

Postat: 18 april 2007, 12:10:15
av dayzleaper
1. Nej, jag kan inte använda någon form av kommunikation överhuvudtaget, avrdude kommer lite olika långt varje gång, men den hänger sig alltid efter någon/några byte när den ska läsa EEPROMet. jag förstår dock inte varför den alltid vill läsa EEPROM-minnet när den ska skriva/läsa flashen, det känns lite onödigt. Det finns dock ingen parameter för att skippa den kollen.

2. Jag har ännu inte hittat någon version av avrdude till Windows, finns det binärpaket att hämta någonstans?

Postat: 18 april 2007, 15:51:29
av karlstedt
Avrdude till windows finns i paketet som heterWinAVR. Ladda hem! :)

EDIT: Länkade WinAVR

Postat: 18 april 2007, 15:52:47
av dayzleaper
Åhå, var det så lätt :D

Ska kolla upp det när jag kommer hem och se vad jag får för resultat.

Tack för tipset :)

Postat: 18 april 2007, 16:25:48
av dayzleaper
Hemma nu, med en ny installation av WinAVR. Tyvärr så har windowsversionen av avrdude samma problem, jag får exakt samma resultat.

Några fler förslag? :?

Postat: 18 april 2007, 16:53:09
av thepirateboy
Rent spontant så skulle jag i iaf prova på en PC med riktig serieport då jag är lite allergisk mot vissa USB-serie adaptrar.

Postat: 18 april 2007, 17:00:21
av dayzleaper
Jo, jag skulle också mycket hellre använda en riktig serieport, men problemet är snarare att utvecklingskortet jag använder har en USB-krets monterad redan. Så det är lite svårt att använda "riktig" serieportskommunikation utan att löda (och med mina lödkunskaper också förstöra) utvecklingskortet. :roll:

Jag kan kanske tillägga att jag endast använder 57600 bps på serieöverföringen för att minimera överföringsproblem.

Postat: 18 april 2007, 17:39:03
av karlstedt
Hehe, kallar du 57600 att minimera? kör lägre hastighet om det går.
Det gånger jag har gjort egna utvecklingskort med rs232-interface så har 57600 varit det absolut snabbaste jag har kunnat kört asynkront.

Postat: 18 april 2007, 21:15:44
av dayzleaper
Mja, det är väl kanske lite i överkant. Jag kan iaf skylla på att det inte är mitt val, utan vi fick modulerna förinställda så av instutitionen på universitetet :roll:

Tror dock inte att det är det som är problemet, eftersom det funkar med windowsprogramvaran som följer med Blips. Jag har spånat igenom assemblerkoden till bootloadern lite, och det verkar som att vissa funktioner som hanterar EEPROM:et inte är fullt implementerade för att få ner storleken på koden. 512 byte för en bootloader känns rätt minimerat ändå, fast det är klart, jag har inte så mycket att jämföra med, jag är rätt ny vad gäller mikrokontrollers och dylikt.

Postat: 18 april 2007, 22:16:03
av cykze
Vilka parametrar skickar du till avrdude?

Kan du prova att köra avrdude i interaktivt läge (-t)?

Postat: 27 april 2007, 18:15:54
av dayzleaper
Jag har nu provat med senaste cvs-versionen av avrdude, med exakt samma resultat.

Kör för tillfället med parametrarna

Kod: Markera allt

./avrdude -p m128 -b 57600 -c avr109 -P /dev/ttyUSB0 -C /etc/avrdude.conf -vvvvvv -u
Interaktivt läge ger samma resultat... :cry: