www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik eeprom lesen und schreiben geht nicht


Autor: Rudolf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

versuche gerade mich in das EEPROM eines ATMEGA32 einzuarbeiten.
Dazu habe ich mir mit folgenden Befehl das EEPROM vom µC geladen:
avrdude -p atmega32 -c avrispmkII -P usb -U eeprom:r:eeprom_img.hex

danach ändere ich mit einen Hex-Editor die ersten paar bytes in "hallo
test eeprom" speichere diese File und lade sie mit den folgenden befehl
wieder in den µC
avrdude -p atmega32 -c avrispmkII -P usb -U eeprom:w:eeprom_img.hex

zum verivizieren wieder der 1. Befehl
avrdude -p atmega32 -c avrispmkII -P usb -U eeprom:r:eeprom_img.hex


wieder mit einen Hex-Editor geöffnet und siehe da der Text ist weg!?!?!

was mache ich also falsch?
warum ist der testtext weg?

die geladene eeprom-File fängt so an:
:20000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 
F00.
:20002000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 
FE0.
:20004000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 
FC0.
:20006000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wahrscheinlich ist es gar nicht programmiert worden.
Di emeisten AVR haben eine Fuse, EESAVE (oder so). Ist die gesetzt dann 
kann das EEPROM extern nicht beschrieben werden.
Das hat schon seinen Sinn, weil man ja normalerweise im EEPROM seine 
Konfigurationsdaten liegen hat, die man nicht bei jedem Neubrennen des 
Programms überschreiben will sondern die erhalten bleiben sollen.
Dann müsste man aber 2 verschiedene Programmier-'Werkzeuge' haben:
einmal nur das FLash brennen und EEPROM auslassen
und das andere mal beides beschreiben.

So ist es einfacher: Hat das EEPROM erst mal seine Werte, dann wird die 
EESAVE Fuse gesetzt und dann kann der Programmer zu schreiben versuchen 
was er will, das EEPROM wird nicht verändert.

Ausserdem beschreibt man das EEPROM ja meistens sowieso aus dem Programm 
heraus. Und da wirkt dann die EESAVE Fuse natürlich nicht.

Autor: Michael Schikora (schiko)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn's nicht die Fuse ist,
hast Du auch die Checksumme bedacht?
Das war auch mal mein erster Stolperstein beim externen Schreiben
des Eeprom.

http://de.wikipedia.org/wiki/Intel_HEX#Berechnung_...

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.