Forum: Mikrocontroller und Digitale Elektronik avrdude win+linux problem mit USBasp und mySmartUSB


von cw (Gast)


Lesenswert?

Hallo Leute,

mal wieder AVRDUDE!

Aber ich komme nicht weiter, auch mit viel Lesen und testen nicht.
Ich würde gerne unter Linux meine Atmels proggen.

Wie oben beschrieben, ich habe zwei Progger einen Eigenbau USBasp und 
einen  mySmartUSB light (stk500v2 fw).

Ich kann eine funktionierendes hex und eep mit z.B. myAVR_ProgTool unter 
Windows per ISP auf einen Atmega8 schreiben. Das funktioniert 
einwandfrei mit beiden Proggern mit unterschiedlichen Einstellungen 
(stk500 / USBasp).

Nun möchte ich jedoch auch unter Linux arbeiten. Mit avrdude bekomme ich 
Verbingung zum Atmega die beiden Files werden auch geschrieben OHNE 
Fehlermeldung, jedoch wird anscheinend Grütze auf dem Atmega 
geschrieben. Zu erkennen an der Ausgabe des LCD. Dies geschieht unter 
Windows und unter Linux.

Folgende Versionen von avrdude habe ich probiert 6.1 und 5.1

Ich nutze folgendes Kommando (beispielshaft für linux):
arvdude -p m8 -c stk500v2 -P /dev/ttyUSB0 -U flash:w:test.hex

Wäre super, wenn ich einen Tip bekommen könnte.

cw



Anbei ein Log:

F:\test>avrdude -p m8 -c usbasp -U flash:w:test.hex

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 
0.02s

avrdude: Device signature = 0x1e9307
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be 
performed

         To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "test.hex"
avrdude: input file test.hex auto detected as Intel Hex
avrdude: writing flash (1894 bytes):

Writing | ################################################## | 100% 
0.94s



avrdude: 1894 bytes of flash written
avrdude: verifying flash memory against test.hex:
avrdude: load data flash data from input file test.hex:
avrdude: input file test.hex auto detected as Intel Hex
avrdude: input file test.hex contains 1894 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 
0.69s



avrdude: verifying ...
avrdude: 1894 bytes of flash verified

avrdude: safemode: Fuses OK

avrdude done.  Thank you.


F:\test>

von isnah (Gast)


Lesenswert?

avrdude arbeitet fehlerlos.
Ist aber beim Programmieren mit "myAVR_ProgTool" und "avrdude" die 
Hex-Datei "test.hex" beide Mal die selbe (Pfade) ?

von cw (Gast)


Lesenswert?

ja, die Datei ist die gleiche im Intel Format

von isnah (Gast)


Lesenswert?

Also mit deiner avrdude-Befehlszeile wird nur ein File, und zwar das 
"test.hex" in den Flashspeicher geschrieben. Wenn du auch 
Anfangsparameter in den EEprombereich schreiben willst, musst du den 
Befehl entsprechend erweitern (siehe avrdude.PDF).

von cw (Gast)


Lesenswert?

ja, ich weis die Erweiterung ist eeprom:w:test.eep aber bringt auch 
nichts.

von holger (Gast)


Lesenswert?

>jedoch wird anscheinend Grütze auf dem Atmega
>geschrieben.

Vieleicht steht diese Grütze ja schon in deiner HEX
Datei, und mit avrdude ist alles in Ordnung.

>Zu erkennen an der Ausgabe des LCD.

Bild zeigen. Programm zeigen.

von Achim K. (aks)


Lesenswert?

Hallo,
ich benutze avrdude 6.0.1 unter Linux (Ubuntu 12.04) hauptsächlich mit 
ATTinys und habe keine Probleme feststellen können. Ich benutze es 
sowohl mit einen AVRDragon wie auch mit dem STK500v2.

w schrieb:
> Ich kann eine funktionierendes hex und eep mit z.B. myAVR_ProgTool unter
> Windows per ISP auf einen Atmega8 schreiben. Das funktioniert
> einwandfrei mit beiden Proggern mit unterschiedlichen Einstellungen
> (stk500 / USBasp).
Was funktioniert einwandfrei ?
Das Programmieren oder das Programm?

>
> Nun möchte ich jedoch auch unter Linux arbeiten. Mit avrdude bekomme ich
> Verbingung zum Atmega die beiden Files werden auch geschrieben OHNE
> Fehlermeldung, jedoch wird anscheinend Grütze auf dem Atmega
> geschrieben. Zu erkennen an der Ausgabe des LCD. Dies geschieht unter
> Windows und unter Linux.
>
Oben tut es unter Windows "einwandfrei" und jetzt ist es auch unter
Windows "Grütze"? Das verstehe ich nicht.
Woher weißt Du, dass "Grütze" geschrieben wird?
Hast Du das Flash mal ausgelesen?
Oder vermutest Du, das es Grütze ist, da das Programm nicht wie gedacht 
funktioniert?

>
>
> avrdude: verifying ...
> avrdude: 1894 bytes of flash verified
>
Zumindest avrdude hat das flash auch ausgelesen und sagt, dass es mit 
der Datei übereinstimmt.

Erzeuge Dir doch zwei unterschiedliche Dateien.
Programmiere dann die eine Datei.
Validiere mit dieser Datei explizit/separat (mit "-U flash:v:<datei>").
Validiere mit der anderen Datei, gibt es Fehlermeldungen?

: Bearbeitet durch User
von cw (Gast)


Lesenswert?

Hallo an alle,

ich habe den Fehler gefunden, Dank dem Austausch mit euch, was nochmals 
zum intensiven Nachdenken führte ;-)

F:\test>avrdude -p m8 -c usbasp -U flash:w:test.hex eeprom:w:test.eep 
(FALSCH)

F:\test>avrdude -p m8 -c usbasp -U flash:w:test.hex -U eeprom:w:test.eep 
(RICHTIG)

Das bedeutet, der EEPROM wurde nicht gebrannt.

DANKE
cw

von Kaj (Gast)


Lesenswert?

cw schrieb:
> ja, ich weis die Erweiterung ist eeprom:w:test.eep aber bringt auch
> nichts.

cw schrieb:
> F:\test>avrdude -p m8 -c usbasp -U flash:w:test.hex -U eeprom:w:test.eep
> (RICHTIG)

...

von Axel S. (a-za-z0-9)


Lesenswert?

Tip zur Fehlersuche: über Kreuz testen. Also mit der funktionierenden 
Kombination den AVR brennen. Dann mit der (bisher) nichtfunktionieren- 
den den AVR auslesen. Stimmen die HEX-Files überein? Wenn ja: das 
ausgelesene Hex-File mit der (bisher) nichtfunktionierenden Kombination 
brennen. Geht es jetzt immer noch? Wenn nicht: AVR wieder mit der 
anderen Kombination auslesen. Wenn das das unsprüngliche .hex File 
ergibt, der AVR aber einmal funktioniert und einmal nicht, dann wäre das 
wirklich ein Rätsel.

Ich tippe aber darauf, daß da vorher irgendwelche Unterschiede zutage 
treten.


XL

von isnah (Gast)


Lesenswert?

Übers Kreuz testen ist nicht mehr nötig - Als die avrdude-Befehlszeile 
von @cw vollständig und später auch noch richtig eingegeben wurde, war 
der Fehler weg. ;-)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.