Speicherproblem C8051F021

OP #2496017
Lesenswert?

Hallo zusammen

ich habe da mal ein Problem:

ich habe einen Chip C8051F021.. die Hardware drum rum ist bereits fertig 
und kann momentan zumindest nicht geändert werden.

Zu meinem Problem:
Ich lese direkt nach dem einschalten mehrere Werte aus dem Flash und 
speichere auch gleich wieder etwas hinein...funktioniert im normalfall 
auch ...

wenn ich jedoch etwas schreiben will muss ich das Seitenweise bei dem 
Controller machen.. also immer 512 bytes ... ist auch kein Problem..
nur muss man bevor man was schreibt erstmal alles löschen.. bzw mit FF 
beschreiben ... geht auch ...
jetzt habe ich das Problem das wenn es zu einem Stromausfall (oder 
Wackelkontakt beim Netzteil anschließen...) beim schreibvorgang kommt, 
kann es vorkommen das die Werte schon gelöscht sind aber die neuen noch 
nicht geschrieben ... also alles weg ist ...

wie kann ich sowas verhindern?

T
#2496028
Lesenswert?

Am besten ist eine Spannungsüberwachung.
D.h. die Spannung vor dem Regler wird über einen ADC-Eingang überwacht, 
ob sie hoch genug ist und erst dann das Schreiben erlaubt.
Und an der VCC ist dann ein entsprechend dicker Elko, der für die Dauer 
des Schreibens garantiert genug Energie liefert.

Als Notlösung nimmt man 2 Pages wechselweise und speichert eine 
fortlaufende Nummer und eine CRC mit.
Stimmen beide CRC, ist die Page mit der nächsten folgenden Nummer die 
neuere.
D.h. bei 0xFF und 0x00, ist die Page mit 0x00 neuer.


Peter

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