Hallo, nach vielen Jahren habe ich meinen AVR Dragon mal wieder rausgeholt. Dabei ist mir ein Problem aufgefallen, was ich schon vor 15 Jahren auch so hatte: Wenn man versucht einen Controller zu programmieren, z.B. so: avrdude -P usb -c dragon_isp -p atmega8 -B 10 \ -Uflash:w:netmon.hex:i und das fehl schlägt. Hier im Beispiel war die Versorgungsspannung des Controllers viel zu gering, dann passiert folgendes: avrdude: jtagmkII_getsync(): sign-on command: status -1 avrdude: jtagmkII_setparm(): bad response to set parameter command: RSP_FAILED avrdude: jtagmkII_getsync(): ISP activation failed, trying debugWire avrdude: jtagmkII_setparm(): bad response to set parameter command: RSP_DEBUGWIRE_SYNC_FAILED avrdude: failed to sync with the AVR Dragon in ISP mode Soweit alles ok! Nur lässt sich anschließend der Dragon erst wieder zu weiterer Zusammenarbeit mit avrdude bewegen wenn man ihn vom USB Bus ab- und wieder ansteckt. (Es leuchtet sonst auch nur noch eine der beiden LEDs) Das ist jetzt nicht weiter schlimm, aber manchmal etwas nervig. Gibt es keine andere Möglichkeit? Liegt es daran weil avrdude versucht mit debugWire etwas zu erreichen nachdem ISP fehlschlägt? Kann man das verhindern? Macht es evtl. Sinn mal die Firmware auf dem Dragon zu aktualisieren? Soweit ich weiß geht das ja mit dem AVR Studio. Seither gibt es mindestens 4 neue major Versionen. Kann man damit einen so alten Dragon noch updaten? Und läuft die neue Firmware besser? Oder handelt man sich damit evtl. andere Probleme ein? Abgesehen von dem beschriebenen Problem lief das Ding nämlich immer nur vollsten Zufriedenheit.
Mein Dragon ist schon recht alt (ohne Firmware upgrade) und kann jedenfalls Problemlos zwischen ISP und DW Modus umschalten. Probiert habe ich das allerdings nicht mit avrdude, sondern mit dem AVR Studio. Deswegen vermute ich den Knackpunkt eher beim Target, nicht beim Dragon. Vermutlich ist in deinem Mikrocontroller die DWEN Fuse aktiviert. Dadurch ist implizit ISP deaktiviert, der Chip ist nur im Debug-Wire Modus ansprechbar. Jetzt kann man im Debug-Wire Modus temporär auf ISP umschalten. Das hält dann so lange an, bis man die Stromversorgung aus und wieder ein schaltet. Danach ist er wieder im Debug-Wire Modus weil die Fuse immer noch aktiviert ist. Ich würde einfach mal die Fuse kontrollieren und ggf. abschalten.
Hm, ne, das lässt sich ja auch völlig ohne Target reproduzieren. Mit dem Dragon ist dann per USB keine Kommunikation mehr möglich. Bis man ihn Aus- und wieder Ansteckt. Wohlgemerkt bezieht sich das alles auf avrdude als Software. avrdude version 6.3-20171130
Klaus W. schrieb: > Hm, ne, das lässt sich ja auch völlig ohne Target reproduzieren. Schade, dann ist es wirklich was anderes.
Also grundsätzlich scheint es so zu sein, dass sich der dragon nach
jedem erfolgreichen Programmiervorgang mit avrdude am usb Bus neu
anmeldet.
Und falls er das mal nicht tut, weil der Vorgang nicht korrekt
abgeschlossen werden konnte, lässt er sich nur durch ab- und Anstecken
vom Bus wieder zur Mitarbeit bewegen.
Update habe ich inzwischen gemacht:
Programmer Type : DRAGON_DW
Description : Atmel AVR Dragon in debugWire mode
M_MCU hardware version: 1
M_MCU firmware version: 7.38
S_MCU hardware version: 6
S_MCU firmware version: 7.38
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.