Atmega32: Kaputtflashen?

OP Persönliche Seite #1261885
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
#1261897
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?
#1261902
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.
OP Persönliche Seite #1261909
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?
#1261918
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.
OP Persönliche Seite #1261944
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?
#1261952
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.
Gast #1262162
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!

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren