Forum: Mikrocontroller und Digitale Elektronik Nach Neuinstallation: Kann Atmega nicht flashen, avrdude,gcc,usbasp


von Jens N. (midibrain)


Angehängte Dateien:

Lesenswert?

Hallo,
nach einer Neuinstallation von Lubuntu kann ich den Atmega nicht mehr 
flashen.

Der Atmega wird zwar ins Reset gezogen, antwortet aber laut 
Fehlermeldung nicht. Auch als root das selbe Problem.

Verwendet werden:
-Lubuntu 20.4
-Geany
-avrdude
-gcc-avr
-usbasp

Fehlermeldung ist die Übliche:
avrdude: set SCK frequency to 16000 Hz
avrdude: error: program 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.

Das gesamte System hat vor der Neuinstallation funktioniert, der Atmega 
läuft auch und führt sein Programm aus was noch aus alten Zeiten im 
Flash ist.

Hab mit den Rechten und der udev probiert, keine Änderung.

Was nun, was tun, wie kann ich den Fehler eingrenzen?

Jens

von Stefan F. (Gast)


Lesenswert?

Weil diese Frage öfter gestellt wird, habe ich dazu einen Artikel 
geschrieben, der die mögliche Ursache und Lösungsmöglichkeiten erklärt:

http://stefanfrings.de/avr_verfused/index.html

von hufnala (Gast)


Lesenswert?

Hi, ich habe seit einem Update irgendwie das Problem, dass das USB 
Interface nicht ordentlich erkannt wird bzw der Name/ das handle 
zugeordnet wird. Mal an- und abstecken und über dmesg beobachten was 
passiert.

Fehlermeldungen waren unterschiedliche, u.a auch die von Dir genannte, 
der Fehler dass USB gar nicht funktioniert war nich offensichtlich.

//hufnala

von Jens N. (midibrain)


Lesenswert?

Wie beobachtet man mit dmesg die USB Schnittstellen?

von Stefan F. (Gast)


Lesenswert?

Jens N. schrieb:
> Wie beobachtet man mit dmesg die USB Schnittstellen?

sudo dmesg -c

USB Gerät anstecken, 3 Sekunden warten

sudo dmesg -c

Du siehst dann ob und wie der Kernel das Gerät erkannt hat.

von Andreas B. (bitverdreher)


Lesenswert?

Jens N. schrieb:
> Was nun, was tun, wie kann ich den Fehler eingrenzen?
mal langsamer laufen lassen:
> avrdude -p m32 -c usbasp  -B 100
Was gibt er jetzt aus?

Stefan ⛄ F. schrieb:
> Du siehst dann ob und wie der Kernel das Gerät erkannt hat.
Hat er, sonst käme das nicht:

Jens N. schrieb:
> avrdude: error: program enable: target doesn't answer. 1

: Bearbeitet durch User
von Jens N. (midibrain)


Lesenswert?

Hallo,
mit der sudo dmesg -c Methode kann ich erkennen das der Programmer mit 
den richtigen IDs und der richtigen Bezeichnung erkannt wird.

Wie gesagt: Der Programmer reagiert wenn ich flashen möchte, zieht den 
Atmega ins Reset, scheint aber nicht in der Laage zu sein die 
Rückantwort vom Atmega an den PC/avrdude zu senden.

Ist es möglich das ich den USB-Port nicht lesen kann, auch als root 
nicht?

Jens

von Andreas B. (bitverdreher)


Lesenswert?

?
avrdude -p m32 -c usbasp  -B 100

von Thosch (Gast)


Lesenswert?

Welche Programmer-Hardware verwendest du?

Es hat mich mal einen halben Tag Fehlersuche gekostet, als ich ein 1:1 
10-pol-Kabel am ATATMEL-ICE verwendet hab...

Der ATATMEL-ICE braucht um 180° gedrehte Kabel, nicht 1:1. Darauf muß 
man auch erstmal kommen...

von Jens N. (midibrain)


Lesenswert?

@Andreas:
Nein, leider nützt auch eine niedrige ISP-Geschwinigkeit nichts.
Der Atmega läuft ja auch mit seinem Quarz(14745600Hz).

Ich vermute das Problem eher bei der Kommunikation zwichen Soft- und 
Hardware des PCs.

Wie kann ich die Rechte an den USB-Anschlüssen testen/sehen?

Jens

von Jens N. (midibrain)


Lesenswert?

@Thosch:

Ich habe inzwischen 2 Fischl USBASP probiert die beide fast Fehlerfrei 
bis zur Neuinstallation des PCs funktioniert haben.

Jens

von Stefan F. (Gast)


Lesenswert?

Hast du meinen Tipp mit dem Dauer-Reset versucht?

von Alexander S. (alesi)


Lesenswert?

Jens N. schrieb:
> Hab mit den Rechten und der udev probiert, keine Änderung.

Jens N. schrieb:
> Wie kann ich die Rechte an den USB-Anschlüssen testen/sehen?

Was genau hast Du probiert. Geht es als root? Gehörst du als normaler 
Nutzer zur Gruppe dialout und evtl. noch zu plugdev?
1
$> lsusb
2
Bus 003 Device 002: ID iijj:00nn Intel Corp. Integrated Rate Matching Hub
3
$> ls -l /dev/bus/usb/003/002
4
crw-rw-r-- 1 root root nnn, mmm Dec  6 11:23 /dev/bus/usb/003/002

von Jens N. (midibrain)


Lesenswert?

@Stafan:
Nein, der Programmer hat ja sauber auf Reset gezogen und der Atmega hat 
treu und brav neu gestartet.

Hab jetzt mal ein anderes Projekt/Steckboard angeschlossen und da 
funktioniert es!Allerdings kommt das Geany-Projekt in diesem Fall auch 
von einem angeschlossenem USB-Stick.

Merkwürdig, merkwürdig...

von c-hater (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:

> Jens N. schrieb:
>> Wie beobachtet man mit dmesg die USB Schnittstellen?
>
> sudo dmesg -c
>
> USB Gerät anstecken, 3 Sekunden warten
>
> sudo dmesg -c
>
> Du siehst dann ob und wie der Kernel das Gerät erkannt hat.

Oder immer live zugucken, was passiert:

sudo dmesg -w

Am besten in einer zusätzlichen Konsole.

Abbrechen kann man das dann mit Ctrl+C.

von Andreas B. (bitverdreher)


Lesenswert?

Jens N. schrieb:
> Ich vermute das Problem eher bei der Kommunikation zwichen Soft- und
> Hardware des PCs.

Jens N. schrieb:
> Merkwürdig, merkwürdig...

Da ist nichts merkwürdig. Das Problem liegt nicht am PC oder dem USBASP.
Diese Meldung:
avrdude: error: program enable: target doesn't answer. 1
deutet darauf hin, daß er den uC nicht findet.

von Jens N. (midibrain)


Lesenswert?

@ Alexander S:
Ja, ich bin in der Gruppe dialout und plugdev.
Jetzt mit einem anderen Projekt geht es auch.
Jens

von Jens N. (midibrain)


Lesenswert?

@Stefan:
Schöne Funktion, kann deutlich sehen das der USBASP erkannt wird.

Wie gesagt:

Inzwischen kann ich ein anderes Projekt/Steckboard flashen!

Danke, Jens

von Stefan F. (Gast)


Lesenswert?

Jens N. schrieb:
> Nein, der Programmer hat ja sauber auf Reset gezogen und der Atmega hat
> treu und brav neu gestartet.

Manchmal reicht das nicht. Ein fehlerhaftes Programm kann den ISP Port 
so blockieren, dass er auch nach dem Reset noch hängt. Da werden gleich 
wieder einige Leute widersprechen, aber mir ist genau das passiert und 
mit diesem Tipp konnte ich mindestens einer weiteren Person helfen.

von c-hater (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:

> Manchmal reicht das nicht. Ein fehlerhaftes Programm kann den ISP Port
> so blockieren, dass er auch nach dem Reset noch hängt.

Nein, das ist nicht möglich.

> Da werden gleich
> wieder einige Leute widersprechen, aber mir ist genau das passiert

Nein. Du hast nur nicht erkannt, was dir tatsächlich passiert ist. 
Nämlich: Ein fehlerhaftes Programm, welches das Taktsystem dermaßen 
verkonfiguriert hat, das mit "normalen" Mitteln kein Connect mehr 
möglich ist.

Der ISP-Port ist dabei aber nicht "blockiert", sondern voll 
funktionsfähig, er will halt nur seeeehr langsam angesprochen werden. 
So langsam, dass praktisch kein normaler Programmer mehr in der Lage 
ist, mit dem Teil zu reden.

Du kannst das jederzeit absichtlich herbeiführen, das ist trivial. 
Schnapp dir z.B. einen Tiny25/45/85 und konfiguriere den per Fuses auf 
die interne 128kHz-Taktquelle. In init() schaltest du dann per CLKPR auf 
1/256. Damit beträgt der Systemtakt nur noch 512Hz, der maximale 
ISP-Takt also 128Hz. Das kann kein üblicher ISP-Programmer (meiner 
natürlich schon, selbstgemacht ist halt immer besser, nur dann hat man 
die volle Kontrolle...)

Der Trick bei solcherart Problem ist: Das Target nach dem PowerOn im 
Reset halten, so dass init() nicht zum Zuge kommen kann, erst dann den 
Programmer anwerfen. Im worst case (CLKDIV8-Fuse gesetzt) muss er dann 
auf 128/(8*4)=4kHz runter. Das können alle brauchbaren problemlos, man 
muss es ihnen nur sagen...

von Stefan F. (Gast)


Lesenswert?

c-hater schrieb:
> Nein, das ist nicht möglich.

War ja klar. Deine Wahrheit ist die einzig wahre. Ich habe meine Antwort 
dazu wieder gelöscht, weil sie dem TO nicht hilft. Ein Versuch, mich dir 
gegenüber zu rechtfertigen, hilft niemandem, nicht einmal mir.

Ich möchte lieber dem TO helfen.

Interessant ist, dass du trotzdem meinen Lösungsvorschlag mit dem 
Dauer-Reset wiederholt hast.

von c-hater (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:

> Interessant ist, dass du trotzdem meinen Lösungsvorschlag mit dem
> Dauer-Reset wiederholt hast.

Nun, es besteht schon ein Unterschied, ob man das Problem tatsächlich 
sachlich korrekt beschreiben kann und deswegen die Lösung benutzt oder 
ob man nur zufällig auf einen Workaround um die eigene dramatische 
Unfähigkeit gestoßen ist...

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.