PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [ERLEDIGT] EEPROM - leer / .eep Datei ins EEPROM schreiben



dj_cyborg
25.08.2013, 15:31
Hallo,

aufgrund von Speichplatzproblemen in meinem Flash-Speicher, wollte ich ein paar Strings ins interne EEPROM auslagern.
Leider sind die Werte die ich aus dem EEPROM auslese leer. Also Strings-Variablen sind leer und Byte-Variablen kommen als 255 zurück.

Ich benutze:
-Bascom AVR (Version kann ich gerade nicht nachschauen...)
-Atmega8-16PU mit 16Mhz
-Programmer Mysmartusb MK2
-internes EEPROM

die .eep Datei wird erzeugt.

Kann es sein das BASCOM die Datei nicht automatisch mit auf dem MC brennt?
Wann ja, wie bekomme ich mit BASCOM die .eep Datei ins EEPROM geschrieben?
Liegt es evtl. an meinem Programmer und Bascom?

Hier mal ein kleines Testprogramm, das sollte doch nach BASCOM-Hilfe eigendlich so funktionieren, oder?


$regfile = "m8def.Dat"

$crystal = 16000000

$baud = 19200



$hwstack = 100

$swstack = 100

$framesize = 100



Dim B As Byte



$eeprom

'$EEPROMHEX

Link:

Data 1 , 2 , 3

$data



Wait 10

Print "Start"

Readeeprom B , Link

Print B

Readeeprom B

Print B

Readeeprom B

Print B



End

Danke für eure Hilfe

mfG
Mario

Kampi
25.08.2013, 16:13
Hey,

nein Bascom beschreibt erst mal nur den Flash. Wie du mit Bascom das EEPROM beschreibst kann ich dir leider nicht sagen, da ich das Flashen mit AVR Studio mache. Im Zweifelsfall nimm einfach AVR Studio....da ist die Option direkt ersichtlich ;)

Sauerbruch
25.08.2013, 18:27
Hast Du denn den Programmspeicher irgendwann nochmal geflasht, nachdem Du die Daten ins EEPROM geschrieben hast? Wenn ja, könnte Dein Problem damit zu tun haben: Viele Programmer (bzw. deren Softwares) sind nämlich so konfiguriert, dass sie vor dem Flashen einen "Chip Erase"-Befehl senden, um den Controller erstmal "plattzumachen", bevor die neue Datei in den Programmspeicher gebrannt wird.

Wenn das Fusebit EESAVE nicht gesetzt ist (und das ist beim Mega8 der Auslieferungszustand), betrifft dieses Löschen auch den EEPROM-Speicher. Verhindern kann man das durch setzen des EESAVE-Fusebits ("preserve EEPROM through the Chip Erase cycle") - dann wird das EEPROM beim Flashen nicht mehr gelöscht. Diese Einstellung ist eigentlich unerlässlich, wenn man Daten im EEPROM hat, aber noch ein wenig mit dem eigentlichen Programm hin- und herexperimentiert...

dj_cyborg
25.08.2013, 19:50
Hallo Kampi, hallo Sauerbruch!

Danke für eure Antworten.

Also ich habs gefunden, es geht auch in BASCOM. Habs mal Dokumentiert (siehe Anhang).

Die EEP Datei wurde nicht ins EEPROM geschrieben, da ich die Option nicht eingestellt hatte. Ich werde aber die Daten über "manuel Program" in den MC laden und dann den EESAVE-Fusbit setzen (Danke an Sauerbruch für den Hinweis ;)).

Das war's schon, tausend Dank...

mfG
Mario