Atmega16 Flash und EEPROM Inhalt unplausibel

OP #7383387
Lesenswert?

Hallo zusammen, ich habe vor kurzem den Flash-Speicher und den EEPROM eines Atmega16 16AU ausgelesen. Der Mikrokontroller ist in einer einfachen Magnetventil-Ansteuerung verbaut (Analog-Input über ein Poti, zwei drei Digitaleingänge und eine Ansteuerschaltung um das Magnetventil proportional zu steuern). Die Steuerung hat vor dem Auslesen noch funktioniert (wenn auch nicht ganz ordnungsgemäss). Als ich mir die Daten des BIN-Files ansah, war ich etwas verblüfft. Sowohl im Flashspeicher, als auch im EEPROM waren nur aufsteigende Zahlenwerte. Im Flash: 00 00 01 01 02 02 03 03 ... FF FF Im EEPROM: 00 01 02 03 ... FF Files im Anhang Zum Auslesen habe ich das myAVR_ProgTool mit dem mySmartUSB MK2 verwendet. Fuse/ LockBits waren korrekt gesetzt

Nach dem Auslesen hat die Schaltung gar nicht mehr funktioniert.

Hat irgendjemand eine Erklärung wie es dazu kommen kann? Ich kann sowohl den Flash als auch den EEPROM ohne Fehler neu beschreiben und wieder korrekt auslesen.

Für eure Inputs wäre ich sehr dankbar, da ich soetwas noch nie gesehen habe und mir das nicht erklären kann.

Beste Grüsse Enrico

Angehängte Dateien:
#7383409
Lesenswert?

Enrico schrieb:

Sowohl im Flashspeicher, als auch im EEPROM waren nur aufsteigende Zahlenwerte.

Genau das erwarten man, wenn die Lockbits gesetzt (= 0) sind. Das SPI-Register wird nicht überschrieben und enthält noch das vorher empfangene Byte (= low Adresse).

Enrico schrieb:

Nach dem Auslesen hat die Schaltung gar nicht mehr funktioniert.

Das ist in der Tat merkwürdig, Lesen sollte immer zerstörungsfrei sein. Nur Erase oder Program zerstört den vorherigen Inhalt.

#7383431
Lesenswert?

Enrico schrieb:

Im Flash: 00 00 01 01 02 02 03 03 ... FF FF Im EEPROM: 00 01 02 03 ... FF Fuse/ LockBits waren korrekt gesetzt

Was nennst du "korrekt"? Offensichtlich waren zumindest die Lockbits gesetzt, deswegen liest du nur Müll aus dem Flash/EEPROM.

Nach dem Auslesen hat die Schaltung gar nicht mehr funktioniert. Hat irgendjemand eine Erklärung wie es dazu kommen kann?

Offensichtlich hast du weit mehr als "Auslesen" gemacht, nämlich ein Chip-Erase. Und ja, danach ist das Programm nicht mehr im µC, sondern im Nirwana. Und der µC tut nichts mehr.

Ich kann sowohl den Flash als auch den EEPROM ohne Fehler neu beschreiben und wieder korrekt auslesen.

Damit ist klar, daß du ein Chip-Erase gemacht haben mußt. Denn mit gesetzten Lockbits läßt sich der Flash weder auslesen noch beschreiben.

#7383444
Lesenswert?

Enrico schrieb:

Für eure Inputs wäre ich sehr dankbar, da ich soetwas noch nie gesehen habe und mir das nicht erklären kann.

Ich hätte da einen Input an deinen Chef: Lass keine unwissenden Dödel an solche Steuerungen.

Was machst du denn da rum wenn du keine Ahnung hast? Das Ding war einfach Auslesegeschützt. Du hast das durch ein Chip Erase aufgehoben und der Inhalt ist nun futsch.

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