Forum: Mikrocontroller und Digitale Elektronik Atmega32: Kaputtflashen?


von Julian W. (julian-w) Benutzerseite


Lesenswert?

Hallo,
ich entwickle gerade eine kleines Projekt und bin nun an der "Firmeware" 
angekommen. Zum übertragen der Softwae benutz ich den USB->ISP - Adapter 
von Ulrich Radig, der auch bis jetzt prima funktioniert hat.

Nun flashe ich damit immer die aktuelle Version meiner Software. Doch 
bekomme ich viele Schreib-Fehler von avrdude gemeldet. Die betreffenden 
Speicherstellen sind auch immer andere. Ich hab auch schon beide 
Speed-Modi ausporbiert, jedoch immer mit dem selben Ergebniss. Nach 
einiger Zeit dauerhaften flashens (also flashen -> Fehler -> direkt 
nochmal flashen) meldet avrdude nur noch:

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

Und dabei bleibt es dann auch. Die Atmega32 machen danach nichts mehr. 
Da hilft bei mir nur noch, einen neuen Atmega in die Schaltung 
einzusetzten. Ein HV-Programmer steht mir aber leider nicht zur 
Verfügung. So ging es mir jetzt schon bei einem Atmega16 und 2 Atmega32.

Kennt einer dieses Phänomen und weiß, wie ich dieses Problem lösen kann?

MfG
Julian

von Uwe .. (uwegw)


Lesenswert?

Das Flash soll laut Datenblatt mindestens 10000 Schreibzyklen vertragen. 
Und selbst danach ist es nicht schlagartig hinüber, sondern die Daten 
werden nicht mehr für längere Zeit gehalten, nach ein paar Jahren können 
also Bits kippen. Von daher ist es ziemlich unwahrscheinlich, dass du 
bei allen Controllern das Flash verschlissen hast.

Eine mögliche Erklärung wären aber Störungen durch eine zu lange 
ISP-Leitung. Wie lang ist sie bei dir?

von Benedikt K. (benedikt)


Lesenswert?

Julian W. schrieb:

> Kennt einer dieses Phänomen und weiß, wie ich dieses Problem lösen kann?

Das ist zu 99,9% irgendein Timing oder Pegelproblem mit den ISP 
Signalen. Mit anderen Worten: Entweder hast du irgendwas an den ISP Pins 
hängen die die Signale blockieren, oder der Programmer ist Mist.

von Julian W. (julian-w) Benutzerseite


Lesenswert?

Nunja, ich hatte den Atmega auch schon in einem externen 
"Programmiersockel", wo gerade die ISP-Buchse, ein Quarz und die 
Spannungserzeugung ist.
Da funktioniert der IC auch nicht mehr. Bisher hat der Programmier immer 
zuverlässig funktioniert und auch jetzt programmiert er noch fleißig 
ohne Probleme Atmega8 (habs gerade ausprobiert).

Das Kabel ist höchsten 20cm lang + das, was auf der Platine ist. Sind 
also "höchsten 30cm", dürfte also keine Probleme geben.

Kann es sein, dass die Schaltung auf der Platine das Signal so 
verfälscht, dass er z.B. die Fuses ändert, z.B. die für die Taktquelle?

von Benedikt K. (benedikt)


Lesenswert?

Julian W. schrieb:

> Kann es sein, dass die Schaltung auf der Platine das Signal so
> verfälscht, dass er z.B. die Fuses ändert, z.B. die für die Taktquelle?

Wenn die Software des Programmers ordentlich geschrieben ist, so dass er 
nur dann was macht wenn ISP funktioniert (also z.B. wenn die ID passt), 
dann sollte sowas nicht passieren.
Wenn man dagegen einfach losprogrammiert obwohl nichtmal das ID Lesen 
funktioniert, dann kann es durchaus passieren, dass die Befehle komplett 
falsch ankommen. Vor allem wenn sehr viele Daten geschrieben werden, 
steigt die Wahrscheinlichkeit dass ein Byte davon zufällig den 
entsprechenden Befehl ergibt.

von Julian W. (julian-w) Benutzerseite


Lesenswert?

Also den Programmer, den ich benutze (avrdude + BurnOMat) prüft vorher 
die ID der Atmegas. Von daher dürfte da nichts passsiern.

Ich hatte am ISP-Port noch die ganze Zeit Daten-Leitungen von einem 
KS0108-Controller anliegen (hab ich jetzt mal testweise entfernt, 
funktioniert aber trotzdem nicht).

Kann es sein, dass dadurch der Controller irgendwie Schaden genommen hat 
oder dass diese Leitungen die ganzen Schreibe-Fehler verursacht haben?

von Sascha S. (dec)


Lesenswert?

Hallo,
hatte so was ähnliches auch mal!
Bei mir lag es am Kabel vom Programmer zum Board, das war zwar nicht zu 
lang, aber es hat sich irgendwann gaaaanz langsam ein Wackelkontakt 
eingeschlichen.
Brauchte ewig, bis ich draufkam....


Gruß

von Benedikt K. (benedikt)


Lesenswert?

Julian W. schrieb:

> Ich hatte am ISP-Port noch die ganze Zeit Daten-Leitungen von einem
> KS0108-Controller anliegen (hab ich jetzt mal testweise entfernt,
> funktioniert aber trotzdem nicht).
>
> Kann es sein, dass dadurch der Controller irgendwie Schaden genommen hat
> oder dass diese Leitungen die ganzen Schreibe-Fehler verursacht haben?

Ja, kann sein. Wenn die RW Leitung auch am AVR hängt, dann kann diese 
auf high driften, zusammen mit Enable, was das LCD veranlasst die 
Leitungen auf Ausgang zu schalten. Ein Pulldown an Enable sollte das 
Problem aber lösen.
Theoretisch kann der Controller beschädigt werden, aber wahrscheinlich 
ist das eher nicht. Es werden nur die Fusebits komplett verstellt sein. 
Also neuer AVR rein, Pulldown an Enable vom LCD rein und schauen ob das 
Problem immer noch existiert.

von Julian W. (julian-w) Benutzerseite


Lesenswert?

So, hab mal das Kabel ausgetauscht. Funktioniert leider immer noch nicht 
:(

Mal morgen weiterprobieren und sehen, ob ich eine Lösung finde...

von Fabi (Gast)


Lesenswert?

Hast du schon mal einen anderen Progger benutzt?
Also vielleicht einen Parallelprogger?

Vielleicht mal einen anderen PC testen?

Vielleicht mal ein Testprogramm (Hello World) draufzuspielen zu 
versuchen?

Schaltung Testen, ob alle eingänge etc. Stimmen?

Richtige Betriebsspannung? Hatte auch schon mal nen 7806 statt05 und bin 
ewig nicht draufgekommen;)

Anderen USB ausgang nehmen...


TESTE MAL EINE ALTE SCHALTUNG MIT ALTEM PROGRAMM, WENN DAS GEHT, KANNST 
DU JA SCHON DEN PROGGER AUSSCHLIEßEN!

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.