Forum: Compiler & IDEs USBasp win32 avrdude


von Marten (Gast)


Lesenswert?

Hallo,

hat hier  schonmal jemand erfolgreich avrdude (win32) zum kommunizieren 
mit dem USBasp bewegt?

Hab hier eine compilierte Version von avrdude, die allerdings nicht 
funktioniert. (usbasp_transmit: error sending control message: .. beim 
schreiben)
Vielleicht kann mir ja jemand ein paar Tipps geben, bzw. mal einen 
funktionierenden avrdude als Anhang hochladen.

von Anton (Gast)


Lesenswert?

Ich habe mir das Programmiergerät auf Lochrasterplatine aufgebaut.
Mit der neuesten Firmware (usbasp.2006-09-16) und avrdude 5.2 bekam ich 
immer eine Fehlermeldung und konnte den AVR nicht beschreiben (genaue 
Meldung weiss ich leider nicht mehr).
Löschen, Reset und Terminal-Mode gingen aber.
Unter Linux hatte ich das gleiche Phänomen.

Dann probierte ich die Vorgängerversion (usbasp.2005-11-14) aus, mit der 
ging alles einwandfrei. Sowohl mit WinXP als auch Linux.
Ich fragte beim Autor (fischl.de) an, der wußte aber auch nicht weiter.

Hast Du die neueste Version (5.2) von avrdude? Die hab ich vor einiger 
Zeit noch nicht als kompilierte Version gefunden, deshalb dann selber 
kompiliert.
Wenn ich dran denke, lade ich sie heute Abend hoch. Oder Du gibst mir 
Deine eMail-Adresse.

Dann hab ich mir ein zweites Gerät aufgebaut, genau gleiches Verhalten. 
Also hab auch die ältere Firmware drauf.
Bei diesem Gerät habe ich aber das Problem, dass das Schreiben des Flash 
sehr lange dauert (ca. 1 Minute im Gegensatz einige Sekunden beim 
Anderen).
Woran das liegt, hab ich auch noch nicht rausgefunden ...
Ungünstiger Aufbau der Schaltung? Hatten den AVR schon getauscht, 
Signale vom Quarz angeschaut, war aber auch nicht die Ursache.


Gruß,
Anton

von Marten (Gast)


Lesenswert?

Danke für deine Antwort!
Also das mit der älteren Version war wirklich ein guter Tipp!
Hab einfach den alten Treiber installiert und die avrdude Version 
genommen die mit im tar-file war. Scheint alles zu funktionieren.
Hab testweise mal nen ATmega644 gelesen und wieder beschrieben. Geht 
auch ziemlich flott (16s)
Nutzt du direkt die 5V vom USB als Betriebsspannung für usbasp?
Hatte zeitweise auch mal das Problem das dass Gerät manchmal nicht 
erkannt wird. Keine Ahnung obs dann an den Quarz liegt der nicht 
anschwingen will ..
Jetzt gehts sehr stabil ...
Wie gross hast du die Kondensatoren für den Quarz gewählt?

von Anton (Gast)


Angehängte Dateien:

Lesenswert?

Ich verwende die 5V vom USB als Betriebsspannung.
Ich habe je einen 22pF Kondensator am Quarz.

Folgende Fehlermeldung kam, wenn ich die neuesten Firmware drauf hatte:
avrdude: Device signature = 0x1e9502
avrdude: safemode: lfuse reads as 3F
avrdude: safemode: hfuse reads as C9
avrdude: erasing chip
avrdude: reading input file "main.hex"
avrdude: input file main.hex auto detected as Intel Hex
avrdude: writing flash (8264 bytes):

Writing |                                                    | 0% 0.00s
avrdude: error: usbasp_transmit: error sending control message: 
Connection timed out


Wenn Du das gleiche Problem hast, könntest Du dem Thomas Fischl ja mal 
schreiben. Adresse findest Du auf seiner Seite.
Er sagte mir nämlich, daß außer mir noch nie jemand dieses Phänomen 
hatte.

Das das Gerät nicht erkannt hatte, hatte ich übrigens noch nie.

Im Anhang ist die neueste avrdude-Version.

von Marten (Gast)


Lesenswert?

Hab die neuste avrdude-Version mal ausprobiert. Funktioniert nur mit der 
älteren Firmware. Die neue Firmware bringt mir auch den Fehler.In nem 
andren Forum scheint auch jemand dasselbe Problem zu haben:
http://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=24318
Werds mal mailen.

Danke nochmal!

von AL3X (Gast)


Lesenswert?

Die ganze neue geht bei mir auch!! also 29.12.06 oder so..hatte 
mitlerweiel das andere Forum auch gefunden ;)

von Frank U. (fulbrich)


Lesenswert?

Hallo,
ich versuche zur Zeit den USBasp mit der firmware 2006-12-29 und AVRDUDE 
5.4 und 5.3.1  - WIN32 zum Laufen zu bekommen. AVRDUDE meckert, daß die 
Signatur vom Target (ein ATMEL32) nicht stimmen würde.  Ich weiß keinen 
Rat mehr.

Hat jemand eine erprobte ARVDUDE.CONF  (für Windows) Version 5.4 oder 
5.3.1 für mich .... von der man weiß, daß sie funktioniert ? Ich denke 
es muß was mit der Konfigurationsdatei zu tun haben.

Ich wäre Euch dankbar.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Kannst du nicht mal die Meldungen von avrdude copy&pasten?

von Philipp (Gast)


Lesenswert?

Einer der Unterschiede zwischen der alten und der neuen Version ist, 
dass des Pointer der auf die zu beschreibende Adresse im Flash zeigt 
nicht mehr nur 8bit gross ist, dondern 9 oder 10 (weiss nicht genau). 
Daher kann man mit der neueren Version auch AVRs mit mehr als 64k Flash 
beschreiben (z.B. atmega128).
Das heisst, dass Ihr nicht nur die neue Firmware sondern auch die 
neueren Treiber für den PC nemen müsst. Ich empfehle euch alle alten 
Dateien zu suchen und zu entfernen, und danach durch neuere ersetzten.

P.S. BurnOMat ist eine super GUI für AVRDude
http://avr8-burn-o-mat.aaabbb.de/

von Frank U. (fulbrich)


Lesenswert?

Jörg Wunsch wrote:
> Kannst du nicht mal die Meldungen von avrdude copy&pasten?

Die Meldung sieht dann so aus :

----> schnipp <---------
C:\afu\avrdude_5_4>avrdude -P usb -c usbasp -p m32
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 
0.02s

avrdude: Device signature = 0x000102
avrdude: Expected signature for ATMEGA32 is 1E 95 02
         Double check chip, or use -F to override this check.

avrdude done.  Thank you.
------> schnapp <--------

Kann das an der Firmware liegen oder ist es mehr ein AVRDUDE Problem ?
Gibt es Erfahrungen ?

firmware 2006-12-29 und AVRDUDE
5.4 und 5.3.1  - WIN32

TestLib USB :
DLL version:  0.1.12.1
Driver version:  0.1.12.1





von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Frank Ulbrich wrote:

> avrdude: Device signature = 0x000102

Das ist das Echo, was du da siehst.  Kann es sein, dass die ISP-Frequenz
des USBasp zu hoch ist für deinen AVR?

von Frank U. (fulbrich)


Lesenswert?

>
> Das ist das Echo, was du da siehst.  Kann es sein, dass die ISP-Frequenz
> des USBasp zu hoch ist für deinen AVR?

Hmm, das Target ist mit einem 12MHz Quarz bestückt und der USBasp 
ebenfalls.
Es ist wohl auf dem Brenner keine Brücke zum Runtertakten vorgesehen. 
Komischerweise fällt mir nun auf, daß der erste Versuch das Target 
anzusprechen (nach dem Spannung angelegt ist) funktioniert, die weiteren 
Male kommt dann die Fehlermeldung mit der falschen Signatur.
 Wenn ich dann die Spannung am Target abklemme und wieder anklemme, 
tritt das gleiche Verhalten auf... zuerst geht es, dann nicht mehr... 
falsche Signatur. Testweise habe ich auf dem USBasp mal eine firmware 
von 2005 gebrannt.... gleicher Effekt.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

> die weiteren
> Male kommt dann die Fehlermeldung mit der falschen Signatur.

Hmm, das klingt mir so, als würde der Reset nicht funktionieren.
Würde sich lohnen, da mal einen Oszi dranzuklemmen und sich das
anzusehen.

Vielleicht fragst du ja mal Thomas Fischl selbst?

von Frank U. (fulbrich)


Lesenswert?

Jörg Wunsch wrote:
.
> Würde sich lohnen, da mal einen Oszi dranzuklemmen und sich das
> anzusehen.
>

Danke für den Tip, ich werde die Resetleitung mal untersuchen.
73
Frank / DO2FU

von Markus R. (maggggus)


Lesenswert?

Hallo!
Unter Beitrag "USBasp  win32 avrdude" beschreibst du ein 
Problem mit einem Atmel AVr, das ich jetzt auch habe.

Wenn ich meinem Atmega8 Spannung gebe, kann ich ihn mit avrdude 
ansprechen, aber sobald ich versuche, was auf den AVR zu schreiben (egal 
ob Fuses oder Flash) wird er nicht mehr erkannt, bis ich die Spannung 
trenne und wieder neu anstecke.

Hast du damals eine Lösung für das Problem gefunden?

Ich habe bereits 2 verschiedene Schaltungen probiert (die beide schon 
mal funktioniert haben), 2 verschiedene Programmer (usbasp und stk200) 
und 2 verschiedene avrdude versionen.

Kann das am Atmega selbst liegen?

Meine Fuses sind 0xd9 und 0xff, externer Quartz mit 11,0925 MHz.


Gruß und vielen Dank,

Markus

von Jürgen (Gast)


Lesenswert?

Hallo zusammen,

habe nun das gleiche Problem:

Beim ersten mal kann ich das Target ansprechen, beim nächsten Versuch 
nicht mehr. Trenne ich USBasp vom USB-Port gehts wieder - aber nur 
einmal.

************************************************************************ 
***


C:\WinAVR\bin>avrdude -p t84 -c usbasp

avrdude: AVR device initialized and ready to accept instructions

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

avrdude: Device signature = 0x1e930c

avrdude: safemode: Fuses OK

avrdude done.  Thank you.


C:\WinAVR\bin>avrdude -p t84 -c usbasp

avrdude: error: programm enable: target doesn't answer. 1
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.


avrdude done.  Thank you.


************************************************************************ 
***
Kann mir jemand da mal einen Tip geben.

Danke & Gruß
Jürgen

von avion23 (Gast)


Lesenswert?

Hallo Jürgen,
bei mir hat ein
1
 -P usb
 im avrdude Aufruf geholfen, auch wenn es bei dir wahrscheinlich nicht 
daran gelegen hat.
Es könnte sein, dass deine Versorgungsspannung einbricht: Größeren Elko, 
Stützkondensator.
Beim debugen von avrdude hilft ein
1
 -vvv
.

Und ja, ich weiß, dass es Leichenschändung ist ;)

von Andreas B. (andreasb)


Lesenswert?

Hallo zusammen

Ich hatte exakt das gleiche Problem.

Ich hatte den Reset "kurzgeschlossen", also permanent auf Masse, dann 
hatte ich exakt dieses Verhalten erhalten:

- Beim ersten mal klappt alles
- Beim zweiten Mal habe ich "avrdude: Device signature = 0x000102" 
erhalten, oder 0x000000


Also alle die das Problem haben: prüft mal den Pegel am Reset, ggf. habt 
ihr ja das gleiche Problem.


mfg Andreas

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Andreas B. schrieb:
> - Beim zweiten Mal habe ich "avrdude: Device signature = 0x000102"
> erhalten, oder 0x000000

Ja, klar.  Das /RESET ist eine Art chip select für den ISP-Algorithmus,
es dient der Synchronisation des SPI-Protokolls.  Wenn man das
permanent auf low hat, dann kann es sein, dass sich der Algorithmus
"nicht findet".

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.