Hallo auch. Die Suche liefert mir Anwendungsprobleme, wohin Ich glaube, einen echten avrdude-Fehler unter Ubuntu zu haben. Bei meinem Atmega8 (auf dem Gehäuse steht "Atmega8-16PU") liest mir das Programm nach jedem Schreibvorgang die Fuses brav wie folgt aus: avrdude: safemode: Fuses OK (H:FF, E:C1, L:E1) Daraus ergeben sich eine Reihe von Problemen: Die Seite "http://www.engbedded.com/fusecalc" sagt, dass der Atmega8 keine extended Fuses hat. Wenn Ich die extended fuses mittels -U efuse:w: beschreiben will, meldet mir das Programm ebenfalls, dass keine efuses vorhanden sind. Wenn Ich nun aber die low und high fuses programmieren möchte, passiert sowas hier: " root@imperator-PC:~# avrdude -c usbasp -p m8 -U hfuse:w:0xff:m avrdude: warning: cannot set sck period. please check for usbasp firmware update. avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.00s avrdude: Device signature = 0x1e9307 avrdude: reading input file "0xff" avrdude: writing hfuse (1 bytes): Writing | ################################################## | 100% 0.00s avrdude: 1 bytes of hfuse written avrdude: verifying hfuse memory against 0xff: avrdude: load data hfuse data from input file 0xff: avrdude: input file 0xff contains 1 bytes avrdude: reading on-chip hfuse data: Reading | ################################################## | 100% 0.00s avrdude: verifying ... avrdude: 1 bytes of hfuse verified avrdude: safemode: hfuse changed! Was ff, and is now df Would you like this fuse to be changed back? [y/n] y avrdude: safemode: and is now rescued avrdude: safemode: Fuses OK (H:FF, E:FF, L:FF) avrdude done. Thank you. " Oder, wenn Ich nun mit -v den Auslesebefehl gebe, erscheint diese widersprüchliche Ausgabe: avrdude: Device signature = 0x1e9307 avrdude: safemode: lfuse reads as E1 avrdude: safemode: hfuse reads as C1 avrdude: safemode: lfuse reads as E1 avrdude: safemode: hfuse reads as C1 avrdude: safemode: Fuses OK (H:FF, E:C1, L:E1) Ihr seht, dass hier irgendetwas überhaupt nicht stimmen kann. Irgendetwas am auslesen ist völlig falsch, er zeigt mir hier die H als FF an und die E als C1... edit: Ich habs jetzt nochmal binär ausgelesen und in hex umgerechnet: Der Verdacht liegt, wie ihr oben sehen könnt, nahe, dass er low korrekt ausliest, dann high ausliest und es als das extended fuse interpretiert.
:
Bearbeitet durch User
Hallo Philipp, ein paar Fragen von mir: 1. Hast du am µC genügend Abblockkondensatoren? 2. Benutzt du die aktuelle Version des avrdude? 3. Hast du beim USBASP den Jumper J3 gesetzt? 4. Sind die ISP-Pins frei oder sind Komponenten angeschlossen? 5. Versorgst du die Zielschaltung mit dem USBASP?
Fuses die nicht existieren können mit avrdude geschrieben werden, behalten diesen Wert aber nicht. Sie kommen als 0 zurück. Setze sie vorher auf 0 in der Maske und du hast dieses Problem nicht mehr.
Das könnte ein Bug in der Firmware des USBASP sein.
Hi, nimm mal eine aktuelle Version des AVRDUDE, dann tritt das Problem des vertauschten E und H fuses nicht mehr auf. Das ist aber nur in der Anzeige, also kein echtes Problem (wenn man es weiß) Ansonsten hat leeer das eigentliche "Problem" schon beschrieben. Kurz: Alles im grünen Bereich. Gruß Andreas
:
Bearbeitet durch User
Habe gerade diese Zeile entdeckt(ganz oben): Philipp S. schrieb: > please check for usbasp > firmware update. Hast du das schon gemacht?
Stefan U. schrieb: > Das könnte ein Bug in der Firmware des USBASP sein. Nein. Der usbasp behandelt alle Fuses gleich. Genauso wie er alle Adressen im Flash gleich behandelt. Die verschiedenen Fuses sind am Ende auch nur verschiedene Adressen in einem eigenen Adreßraum. @TE: ich empfehle dir, das Manual von avrdude zu lesen. Insbesondere den Teil über den Safemode und warum man den abschalten muß(!) wenn man die Fuses verändern will.
Ist die Version aus den Paketquellen nicht die aktuellste? Soweit Ich weiß, hat avrdude gar keine eigene Homepage. Nichtsdestotrotz: Er vertauscht mir ja nicht nur E und H, sondern zeigt E an, obwohls nicht existiert, setzt die fuses aber dennoch richtig? @Axel: Wenn Ichs richtig verstehe, scheint es ja trotz aktiviertem Safemode funktioniert zu haben :{
:
Bearbeitet durch User
Axel S. schrieb: > Insbesondere den Teil über den Safemode und warum man den abschalten > muß(!) wenn man die Fuses verändern will. Nö, wenn man sie vorsätzlich ändert, wird das automatisch einbezogen. Der safemode soll ja nur gegen unfreiwillige Änderungen schützen. @TE: was passiert denn, wenn du den safemode abschaltest (-u), ist denn die eigentliche Programmierung in Ordnung? Kann gut sein, dass safemode irgendwie verbuggt ist, wenn ein Controller keine efuse hat, das würde ich mal nicht ausschließen wollen.
Ja, mit deaktiviertem savemode programmiert er schon ordnungsgemäß und zeigt nach der Programmierung die fuses nicht an, wie es sein soll.
:
Bearbeitet durch User
Dann wird wohl der safemode buggy sein. Kannst gern einen Bugreport dafür abfassen.
Andreas hat ja oben einen alten Fall verlinkt, bei dem das Problem ebenfalls schon auftrat. Ich habe Version 6.0.1 aus den Paketquellen. Weiß nicht, ob es vielleicht mit 6.3 schon behoben ist. Ich habe aber auch keine Ahnung, wie man diese installieren könnte :0 http://download.savannah.gnu.org/releases/avrdude/ Scheint mehr für Windows gedacht zu sein, glaube Ich.
Philipp S. schrieb: > Scheint mehr für Windows gedacht zu sein, glaube Ich. Nicht im geringsten. Auspacken, ./configure, make all install.
Mag er nicht :/ /bin/bash ./ylwrap config_gram.y y.tab.c config_gram.c y.tab.h `echo config_gram.c | sed -e s/cc$/hh/ -e s/cpp$/hpp/ -e s/cxx$/hxx/ -e s/c++$/h++/ -e s/c$/h/` y.output config_gram.output -- yacc -d ./ylwrap: Zeile 111: yacc: Befehl nicht gefunden make: *** [config_gram.c] Fehler 1
Ja, einen yacc oder bison (und einen flex) musst du vorher installieren. Die werden zum Parsen der Konfigurationsdatei benötigt. Leider gibt's keine vernünftigen autoconf-Makros dafür, die dann auch sagen, dass da was fehlt. Die, die es gibt, können nur erkennen, ob es yacc oder bison und flex oder lex sind und dann entsprechend reagieren.
:
Bearbeitet durch Moderator
Never change a running system. Installation haut hin, unterstützt aber kein usb. "Compile again with usblib installed" oder sowas. Entfernen mittels apt-get remove geht auch nicht mehr, da entfernt er nur den aus den offiziellen Paketquellen.
Philipp S. schrieb: > Compile again with usblib installed libusb-dev (sowohl 1.0 als auch 0.1) gleich auch noch libhidapi-dev installieren
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.