PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit EEPROM - Dateninhalt verändert - Grund!?[gelöst]



OnkelTobi
01.01.2007, 20:26
Hi,

ein seltsames Problem tritt bei meiner Steuerung der Fahrradlampe auf.
https://www.roboternetz.de/phpBB2/viewtopic.php?p=240259#240259

Beim Einschalten kann es passieren, dass die Stecker an meinem Akku kurz einen Wacklig haben.
Beim Start kann es also passieren, dass die Schaltung nur für ganz kurze Zeit mit Strom versorgt wird.

Das Problem was sich dadruch ergibt ist, dass der EEPROM komischerweise dabei verändert wird.

Beim Start meiner Schaltung werden Parameter aus dem EEPROM gelesen und auch geschrieben.

Beim Schreiben im EEPROM werden die Speicherzellen ja zunächst gelöscht und dann neu gesetzt. Kann es sein, dass dieser Vorgang untrbrochen werden kann!?

Was kann man dagegen machen?

Gruß Tobias

repi64
01.01.2007, 20:57
Hast du die BrownOutDet. aktiv?
Da war mal was mit der EEPROM Adresse 00 bei den AVRs.
Der Speicherinhalt konnte durch Spannungsschwankungen korrupt sein.
Versuchs mal mit einer anderen EEprom Adresse.

OnkelTobi
01.01.2007, 21:04
BrownOut ist nicht aktiv.
Ich werde mal die Adressen ändern - das Testen wird wohl eine Weile dauern, da das Problem nur gelegentlich auftritt.

repi64
01.01.2007, 21:11
Ich würde dann die BOD mal aktivieren.

OnkelTobi
01.01.2007, 22:12
Das BOD hatte ich noch gar nicht beachtet.
Im Datenblatt zum Prozessor, wird bei EEPROM-Operationen empfohlen BOD zu aktivieren.

Ich probiere es aus...

Danke.

veit
01.01.2007, 23:04
ganz klar BOD, illegale spannungsbereiche beim einschalten macht das eeprom hin- und wieder richtig schön durcheinander und schon gibts nur noch fantasiewerte

SprinterSB
02.01.2007, 10:19
Wie gesagt:
-- BOD aktivieren
-- EE-Adresse 0 nicht benutzen
-- nach einem RESET eine Zeit lang warten, bis das Programm losgeht (zB 10-50ms oder so). Zusammen mit einer gepufferten VCC sollte die Zeit auch bei nem Wackler reichen um den EEPROM konsistent zu halten

OnkelTobi
03.01.2007, 16:57
Auf welchen Wert sollte ich BOD festlegen? Vcc ist 5V

Der Controller läuft mit 8Mhz, Untergrenze für Vcc wäre 2,7V
Also stelle ich BOD mal auf diese 2.7V ein...

repi64
05.01.2007, 08:03
Hi,
2,7V ist ok wenn der Rest deiner Schaltung damit auch noch klar kommt.
Normalerweise nimmt man die Spg., die knapp unter deiner Versorgungsspg. liegt.
Also bei 5V so 4,7V BOD oder was es da so zur Auswahl gibt.
Die 2,7V BOD nimmt man bei 3V Vcc.

OnkelTobi
18.01.2007, 00:24
Ich habe BOD auf 4,3V eingestellt.
Dazu warte ich 50ms beim Start bevor ich den Speicher lese.
0x00 wird nicht mehr benutzt.

Das ganze funktioniert einwandfrei. Danke nochmal :)

cpinkle
09.03.2007, 09:02
Hi,

hab genau dasselbe Problem, dass meine TWI Adresse im EEPROM an Adresse 0x00 verloren geht. Und dieser Thread hat mir ungemein geholfen!
Erstma danke dafür! Nur jetz hab ich noch ne Frage!?

Kann das EEPROM bei Unterspannung generell nur bei Schreibzugriffen zerschossen werden oder auch bei allgemeinen EEPROM Operationen?

Cheers Carsten

OnkelTobi
10.03.2007, 12:36
Beim Lesen passiert ja nix weiter mit dem EEPROM.
Das kritische ist meines Wissens nur der Schreibvorgang.