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
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
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]; |
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
Ich benutze immer wenn irgendwie möglich den Pagemode, weil sehr schnell.
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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.