Hilfe bei EEPROM des AT89S8253

Gast #644882
Lesenswert?
• ▲
▼
Tag an alle,
ich möchte gerne das interne EEPROM des AT89S8253 benutzen. Mein Problem 
ist, dass das EEPROM sich eher wie ein RAM verhält. Es lässt sich 
auslesen u. beschreiben, aber wenn ich den Chip aus der Fassung 
herausnehme und wieder einsetzte, ist das komplette EEPROM gelöscht!
Kann mir jemand einen Tip geben?
Bis irgendwann,
MC
Gast #644892
Lesenswert?
• ▲
▼
Das kann so nicht sein. Das Problem wird eher dein Programm sein. 
Vermutlich gehen die entsprechenden Speicherzugriffe deines Programms 
nicht aufs EEPROM, sondern (fälschlicherweise) aufs RAM.

Gruß,
Magnetus
Gast #644997
Lesenswert?
• ▲
▼
Deine Schreibsequenz sollte etwa so aussehen:
1
EECON |=  0x08; //EEMEM=1 Memory Select interner XDATA=EEPROM
2
EECON |=  0x10; //EEMWE=1 Write-Enable
3
EECON |=  0x20; //EELD=1  Page-Mode 32Byte
4
XBYTE[0x0000] = wert1; // meine zu speichernde Werte
5
XBYTE[0x0001] = wert2; // u.s.w.
6
EECON &=  0xDF; //EELD=0 Page-Mode beenden
7
XBYTE[0x0002] = wert3; // letzter Wert, löst Schreiben aus
8
while (!(EECON & 0x02)); // Warten bis Bytes im EEPROM geschrieben sind
9
EECON &=  0xEF; //EEMWE=0 Write-Disable

und lesen:
1
EECON |=  0x08; //EEMEM=1 Memory Select interner XDATA=EEPROM
2
wert1 = XBYTE[0x0000];
3
wert2 = XBYTE[0x0001];
4
wert3 = XBYTE[0x0002];
Gast #645024
Lesenswert?
• ▲
▼
Tag an alle,
@Matthias: Ich sehe, dass du das EEPROM im Page-Mode beschreibst.
Ist das erforderlich? Ich benutze den Page-Mode nämlich nicht, werde es 
jetzt aber mal probieren.
Danke für deine Antwort,
MC
Gast #645294
Lesenswert?
• ▲
▼
habe gerade mal den Page-Mode ausprobiert. Leider tritt immer noch der 
gleiche Effekt auf. Nach abklemmen der Versorgungsspannung ist das 
EEPROM gelöscht.
Habe das bei zwei AT89S8253 ausprobiert. Hat noch jemand diese Problem 
oder bin ich der einzige?
Danke trotzdem für eure Hilfe,
MC
Gast #645883
Lesenswert?
• ▲
▼
Im Anhang ist mein Testprogramm. Es schreibt zuerst Daten ins interne 
EEPROM des AT89S8253 und liest diese dann aus. Nach dem Schreiben wird 
der Sprungbefehl eingesetzt, um die Schreib-Routine zu überspringen.
Ergebnis ist, dass nach dem Ab- und wieder Anlegen der Betriebsspannung 
das EEPROM gelöscht ist.
Das gleiche gilt, wenn ich das EEPROM über ein Prog-Tool beschreibe 
(atmelisp).
Bei inzwischen zwei Controllern tritt dieses Phänomen auf.
Bis irgendwann,
MC
Angehängte Dateien:

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