Forum: Mikrocontroller und Digitale Elektronik Hilfe bei EEPROM des AT89S8253


von MC (Gast)


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

von Magnus Müller (Gast)


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

von Matthias (Gast)


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];

von MC (Gast)


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

von Matthias (Gast)


Lesenswert?

Ich benutze immer wenn irgendwie möglich den Pagemode, weil sehr 
schnell.

von MC (Gast)


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

von Matthias (Gast)


Lesenswert?

Du musst mehr Infos liefern.
Wie hast Du EA-Pin beschaltet?
Schaltung?
Programm-Code?
Punkt 6.1 im Datenblatt gelesen?
Hast Du den EEPROM mal mit der Programmiersoftware beschrieben?
diese kann das, auch AT89ISP von Atmel.
http://www.amwaw.edu.pl/~adybkows/elka/ispprog.html
Dann wüsstest Du, ob der µC ok ist.

von MC (Gast)


Angehängte Dateien:

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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.