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

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.