Hallo, habe nun div. Fehler mit dem USBasp hinter mir. Die Fuses sind auch auf c9 bzw. ef gesetzt. Wenn ich nun den Adapter mit Avrdude anwende: sudo avrdude -V -F -P USB -c USBasp -p m32 -U flash:w:./bin/main.hex erhalte ich die Meldung: avrdude: error: usbasp_transmit: error sending control message: Timer expired make: *** [flash] Fehler 1 Was bedeutet hier die Timerüberschreitung, oder der -Ablauf. Wenn ich den Atmega8 flashe erscheint am Ende allerdings: avrdude: verification error, first mismatch at byte 0x008b 0xef != 0xe0 avrdude: verification error; content mismatch Hängen die beiden Fehler zusammen? Schwingt vielleicht der Quartz nicht? Wie kann ich das überprüfen? Danke für Eure geduldige Hilfe.
Aus den Fehlermeldungen mit dem USBasp würde ich mal darauf schliessen, daß der Bittakt der ISP Programmierung zu hoch ist. Mit welchem Takt läuft der zu programmierende Controller? Versuche mal, mit '-B' Parameter den Takt zu erniedrigen, also etwa: sudo avrdude -V -F -P USB -c USBasp -B 10 -p m32 -U flash:w:./bin/main.hex Vorausgesetzt, Du hat die neue USBasp Firmware vom 28.2.2009 und neuen avrdude 5.10, die das unterstützen. Falls du noch alte Versionen hast, dann setze mal den Jumper für die niedrigere Geschwindigkeit. P.S.: Wenn Du das "sudo" wegkriegen willst, schau doch mal folgendes an: Beitrag "Re: USBASP zum laufen bringen"
Hallo Bernhard, vorab danke für den Tipp mit dem "sudo". Leider hat sich das Problem mit -B 10 nicht gelöst: avrdude -V -F -P USB -c USBasp -B 10 -p m32 -U flash:w:./bin/main.hex avrdude: set SCK frequency to 93.75 kHz avrdude: error: usbasp_transmit: error sending control message: Timer expired make: *** [flash] Fehler 1 Habe den Takt noch weiter runtergesetzt un d auch die Variante mit JP 2 probiert, das Ergebnis ist immer die gleiche Fehlermeldung. Kann das doch mit der Fehlermeldung beim flashen avrdude: verification error, first mismatch at byte 0x008b 0xef != 0xe0 avrdude: verification error; content mismatch zusammenhängen? Kann der Atmega8 einen Fehler haben, von wegen "verification error"? Könnte vielleicht auch mein Quartz nicht anschwingen? Kann ich das mit einem alten Oszi prüfen?
Mit welchem Takt läuft denn Dein zu programmierender Controller? Ich hatte ähnliche Effekte auch schon, wenn der Takt viel zu niedrig war, dann allerdings hauptsächlich beim EEPROM programmieren. Wobei Dein erster Fehler mit dem Timeout auch auftreten kann, wenn Du avrdude 5.8 hast und nicht 5.10... Hast Du schon mal alle möglichen Takte durchprobiert? Also -B .5 -B 1 -B 2 -B 5 -B 10 -B 31 -B 62 -B 125 -B 250 -B 500 -B 1000 -B 2000 (die letzten 3 sind nicht unbedingt sinnvoll....)
Dietmar P. schrieb: > Kann der Atmega8 einen Fehler haben, von wegen "verification error"? > Könnte vielleicht auch mein Quartz nicht anschwingen? Kann ich das mit > einem alten Oszi prüfen? Dann geht doch gar nichts, wenn der nicht anschwingt, dann wird der USBasp doch von avrdude gar nicht gefunden...
Programmieren will ich einen Atmega32. Bisher habe ich ihn über die Parallelschnittstelle geflasht. Ich habe keinen externen Quartz, also müssten das intern 1 MHz sein. Ich habe alle Taktvorgaben B .5 bis 500 ausprobiert, negativ. Was ich noch festgestellt habe ist, dass der Fehler mit dem Timer auch dann kommt, wenn an der ISP-Schnittstelle garnichts angeschlossen ist. Weiterhin, wenn ich den Adapter nicht am USB vom PC abziehen, sondern zweimal hintereinander make flash mache, dann kommt noch zusätzlich die Meldung, dass er den USBasp nicht findet: sudo avrdude -V -F -P USB -c USBasp -B 500 -p m32 -U flash:w:./bin/main.hex avrdude: Warning: cannot query manufacturer for device: error sending control message: Timer expired avrdude: error: could not find USB device "USBasp" with vid=0x16c0 pid=0x5dc make: *** [flash] Fehler 1 Noch ein Tipp?
Nachtrag: Habe gerade gesehen, dass ich die Avrdude-Version 5.8.1 habe. Wenn ich Avrdude aufrufe ist der Parameter - B und auch der USBasp vorhanden. Muss ich dann trotzdem die 5.10 Version installieren?
Nicht unbedingt... In der 5.10 ist noch ein timeout Fehler behoben... In den den Versionen devor ist der USB-timeout fest. Allerdings dauert bei niedrigen Bit-Clocks (hohen -B Werten..) das Schreiben länger als der Timeout. In der 5.10 ist das behoben. Bei Dir sollte das aber kein Problem machen, bei mir ist es erst bei -B 500 bei einem ATmega 8 aufgetreten. Und so viel größer dürfte die Page beim Mega 32 auch nicht sein...
Schade, habe keinen Erfolg, auch nicht nachdem ich die Version 5.10-1 installiert e und damit den Atmega8 nochmals geflasht habe. Ob mit oder ohne "Zielhardware" der Fehler bleibt gleich.
Wie sehen Deine letzen Zeilen von dmesg aus wenn Du den USB-Adapter abziehst und wieder ansteckst ? Gruß Sven P.S.: Bitte auch ein Bild vom Aufbau zeigen.
In dmesg (/var/log) tut sich garnichts. Die einzige Reaktion habe ich in /var/log/messages: Einstecken: ... usb 2-7: new low speed USB device using ohci_hcd and address 10 ... usb 2-7: configuration #1 chosen from 1 choice Abziehen: ... usb 2-7: USB disconnect, address 10 Irgendwo ist da der Knuddel drin. Bild 1 ist der USBasp-Adapter beim flashen (STK200, parport0) Bild 2 im eigentlichen Adapter-Betrieb USB zu ISP
Hmm, ich habe mal im Anhang eine Ausgabe wie es unter Debian aussieht. Mit lsusb versuche mal das Device genau so anzuzeigen. (siehe Screenshot) Ich vermute das der AVR immer noch nicht gescheit läuft. Gruß Sven
Stimmt, da fehlt offenbar noch was. Bei mir bringt dmesg nur: ... usb 2-7: new low speed USB device using ohci_hcd and address 5 ... usb 2-7: configuration #1 chosen from 1 choice Die weiteren Angaben wie ... New USB Device found, idVendor ... etc. erscheinen nicht. Der findet offenbar keinen Treiber dazu? Ich das debianbasierte Ubuntu in der neuesten Version (Karmic). Noch zwei Infos. 1. Windows Habe mal den Versuch unter Windows gemacht und mit den Treiber von Fischl heruntergeladen und installiert. Windows hat dann den Adapter erkannt. Also scheint der Teil USB zu Atmega doch iO zu sein. 2. flashen Ich flashe ja über den Parallelport und das geht auch, bis auf den Fehler beim nochmaligen Lesen nach dem Schreiben. avrdude: verification error, first mismatch at byte 0x008b 0xef != 0xe0 avrdude: verification error; content mismatch Wo liegt denn da der Hund begraben? Gruß Dietmar
Nachtrag: Ich habe die ID's gefunden und lsusb wie bei Dir aufgerufen und erhalte die gleichen Angaben. Warum tut das dann nicht. Immer noch der Fehler: avrdude: error: usbasp_transmit: error sending control message: Timer expired
Hallo Dietmar P. schrieb: > 1. Windows > Habe mal den Versuch unter Windows gemacht und mit den Treiber von > Fischl heruntergeladen und installiert. Windows hat dann den Adapter > erkannt. > Also scheint der Teil USB zu Atmega doch iO zu sein. hast du über Windows geflash? > 2. flashen > Ich flashe ja über den Parallelport und das geht auch, bis auf den > Fehler beim nochmaligen Lesen nach dem Schreiben. was meinst du genau?? Windows --> über Parallelport geflash? hast du: Windows --> UBSasp geflash versucht?
in deinem Bild: "cimg4063.jpg" was ist das genau? da gehst du von USBasp über 10 Poliges Kabel nach eine 25 poliger stecker (oder Buchse) oder sehe ich das Falsch? wo geht dann hin?
Hallo Martin, unter Windows habe ich nur den Treiber von Fischl installiert und der Adapter wird erkannt. Geflasht habe ich ihn nicht, weil AVRStudio4 den Programmer STK200 nicht mehr kennt. Das Bild 4043 zeigt den USB-Adapter über den 10-Pin (rechts) gehts zum Programmer STK200, ist ein Paralellport mit dem IC 74HC244. Der Programmer hat keine eigene Stromversorgung, deshalb muss der Adapter an USB anschlossen werden. Dazu werden die entsprechenden Jumper auf der Platine auf "Stromversorgung Zielhardware" und "flashen Firmware" setzt. Das scheint auch zu funktionieren. Habe mir jetz mal avrdude 5.10 installiert und da sieht das Ganze dann aus wie in dem angehängten Bild. Gruß Dietmar
Dietmar P. schrieb: > unter Windows habe ich nur den Treiber von Fischl installiert und der > Adapter wird erkannt. > Geflasht habe ich ihn nicht macht doch! versuche unter Windows ein AVR "nur mit dem USBasp" zu flashen (um Fehler am USBasp auszuschliessen). > Das Bild 4043 zeigt den USB-Adapter über den 10-Pin (rechts) gehts zum > Programmer STK200, ist ein Paralellport mit dem IC 74HC244. also Programmer zum Programmer, verstehe ich es richtig? hmm... funktioniert so was??
Dietmar P. schrieb: > Geflasht habe ich ihn nicht, weil AVRStudio4 den Programmer STK200 nicht > mehr kennt. was willst du genau machen?? du hast ein USBasp und damit willst du flaschen? du hast ein USBasp und ein STK200 und willst der USBasp mit dem SKT200 flaschen? Sorry das kapiere ich nicht ganz! vielleicht habe was übersehen
Hallo Martin, also, ich habe mir den USBasp-Adapter nach Fischl/U.Radig gebaut. Zum Flashen verbinde ich ihn mit dem Parallelport des PC (dieser ist der STK200 - parport0) via ISP-Anschluss. Zusätzlich muss den Adapter für den Flashvorgang auch mit dem USB des PC verbinden, da der Parallelport ein IC, aber keine eigene Stromversorgung hat. Dies ist möglich, weil der entsprechende Jumper gesetzt ist. Wenn das Ding funktioniert will ich damit per USB vom PC einen Atmega32 in einer fertigen Anwendung per ISP flashen können, da immer weniger Laptops den Parallelport haben. Diese Anwendung erfährt ab und zu Verbesserungen, deshalb will ich da per USB dran.
Dietmar P. schrieb: > ich habe mir den USBasp-Adapter nach Fischl/U.Radig gebaut. > Zum Flashen verbinde ich ihn mit dem Parallelport des PC (dieser ist der > STK200 - parport0). das ist genau was ich nicht verstehe! wozu der SKT200? wenn du den USBasp hast dann kannst du PC--> USB Kabel -->UBSasp --> Atmega32 (an ISP) flaschen!
Hallo Martin, Dietmar hat mit dem STK200 Parallel Port Adatper den Mega8 des USBasp erstmalig geflasht, damit dieser überhaupt am USB läuft. @Dietmar: Ich werde heute Abend noch mal meinen USBasp anschliessen und testen. Ich habe zufällig noch einen Mega32 in einer Steuerung. Gruß Sven
Hallo Sven, danke für die Aufklärung meines Vorhabens an Martin und für den Versuch in meinem Sinne mit dem flashen das Atmega32. Bitte schau Dir doch mal das Bild an in dem Beitrag weiter oben. Da scheint doch alles in Ordnung. Den Timerfehler bekomme ich ob ich am ISP etwas anschließe oder nicht. Ich tippe auf einen Defekt im Atmega8? Debian erkennt ihn offenbar als USB und über den ISP kann ich ihn ja flashen. Martin: Genau das ist mein Vorgehen. Ich hatte den ersten ATmega8 auf dem Steckbrett geflasht und ihn dabei kaputt gemacht, deshalb jetzt auf dem Adapter in der beschriebenen Form.
Hallo Sven, könntest Du bitte bei Deinem Versuch mir einen Auszug aus den /var/log/Messages schicken, damit ich sehe welches Device angezogen wird. Bei mir zieht er keinen Treiber und kein Device an. Dasnke Gruß Dietmar
Hallo Dietmar, dieses Problem hat mich jetzt dazu veranlasst eine Linux LiveCD zu brennen. 1. Mein Adapter funktioniert unter Windows XP SP3 mit libusb 0.1.12.1 und avrdude. 2. Versuch unter VMware 6.0.5 mit Debian erkennt den Adapter, kann aber nicht brennen oder lesen. avrdude startet und verliert aber dann die Verbindung. So ein Schei..... 3. LiveCD geladen und gebrannt. http://wiki.rcos.eu/index.php/RCOS-LiveCD Funktioniert bestens. Ergebnisse im Anhang. Ich schlage also vor, das Du das mit der LiveCD ebenso versuchst. Und benutze bitte mal genau die gleichen Kommandos. Spielen kannst Du immer noch ;-) Den USBasp Adapter habe ich vorher immer nativ unter Debian betrieben. Der Versuch mit VMware war ein schneller Versuch. Es scheint da Probleme mit dem Timing zu geben. Gruß Sven
Hallo Sven, zuerst einmal wieder danke für Deine Mühe. Leider habe ich keinen Erfolg, aber der Reihe nach. Mit rcos erzählt mir dmesg schon mehr und das siehst auch aus wie bei Dir: usb 1-5: new low speed USB device using ohci_hcd and address 5 usb 1-5: configuration #1 chosen from 1 choise usb 1-5: New USB device found, idVendor=16c0, idProduct=05dc usb 1-5: New USB device strings: Mfr=1, Product=2, SerialNumber=0 usb 1-5: Product: USBasp usb 1-5: Manufacturer: www.fischl.de Aber beim Aufruf von avrdude erhalte wieder sofort den gleichen Timer-Fehler wie bisher. Der zweite Aufruf von avrdude bringt auch den gleichen Fehler wie bei Dir. Offenbar verliert er das Device. Wenn es wenigstens beim ersten Mal gehen würde. Zusammenfassend ziehe ich daraus den Schluss, dass entweder doch der Atmega8 einen Schuss hat, oder die Schaltung. Ich werde mir einen neuen Mega8 besorgen und flashen (sep. auf dem Steckbrett). Geht es dann auch nicht, werde ich eine neue Platine aufbauen, wollte ursprünglich sowieso noch einen zweiten Adapter für meinen Sohn aufbauen. Oder kennst Du einen besseren Adapter, so dass sich der Aufwand nicht lohnt? Gruß Dietmar
Hallo Dietmar, der zweite Aufruf in der Log Datei heisst nur: Es ist kein AVR zum Programmieren angeschlossen ! > 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. d.h. dies ist ok und bedeutet der Programmieradapter funktioniert. Es gibt ja noch einen Originalen AVR ISP MK2. Der funktioniert auch bei niedrigen Programmierspannungen einwandfrei. Ich habe mir diesen gekauft, weil mir dieses "gebastel" nur unnötig Nerven geraubt hat. Grundsätzlich kann ich aber bestätigen das dieser usbasp läuft, ich habe damit schon einige AVRs programmiert. Gruß Sven
Hallo Dietmar, Zu den Fehlern bei Dir: Es muss dann am AVR oder in der Schaltung etwas nicht stimmen, entweder er ist nicht richtig programmiert oder defekt. Bist Du sicher das Du die Betriebsspannung mit keramischen Kondensatoren ordentlich versorgt hast ? Vielleicht Kontaktprobleme ? Gruß Sven
Hallo Dietmar, mir ist noch etwas im Bild 1 aufgefallen: Du benutzt scheinbar ein Verlängerungskabel vom LPT Port. Bitte nehme mal die kürzeste Verbindung, die irgendwie möglich ist und programmiere den usbasp noch mal neu. (kein Verlängerungskabel LPT) Dies könnte durchaus das Problem sein. Gruß Sven
Hallo Sven, zuerst die gute Nachricht: das M...ding käuft endlich. Die Aktionen: - Flashvorgang auf dem Laptop, ohne Parallelkabelverlängerung - Reduzierung der sck-Geschwindigkeit, d.h. alle drei Jumper des USBasp- Adapters waren setzt (JP1 auch, weil mein Programmer keine eigene Spannungsversorgung hat. Dann war auch der "verification error ..." beim flashen weg und fuses auch nochmals neu gesetzt. Danach konnte ich den Atmega169 (Butterfly) mit dem USBasp flashen. Beim Atmega32 (kein externer Quartz) musste ich sogar runter bis auf 187,5 kHz (avrdude -B 5 - hier nochmals danke an Bernhard). Endlich!!! Übrigens ich kann auch den Flashvorgang mehrmals hintereinander laufen lassen, ohne dass den USBasp die Verbindung verliert. Gruß Dietmar
Hallo Dietmar, das ist doch sehr gut. Es freut mich, das wir mit der Suche erfolgreich waren. Viel Spass beim Programmieren ;-) Gruß Sven P.S.: Die Begründung liegt also in dem nicht sauber programmierten AVR. Das zu lange Kabel am Parallelport kann dazu führen das die Flanken am Ende so verschliffen sind, das dann die Bits kippen und der Flash im AVR nicht richtig programmiert wurde ;-)
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.