www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Atmega32: Kaputtflashen?


Autor: Julian W. (julian-w) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Uwe ... (uwegw)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Julian W. (julian-w) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Julian W. (julian-w) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Sascha S. (dec)
Datum:

Bewertung
0 lesenswert
nicht 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ß

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Julian W. (julian-w) Benutzerseite
Datum:

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

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

Autor: Fabi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.