Eeprom auf Fehler prüfen

Gast #406897
Lesenswert?
• ▲
▼
Hallo,
ich möchte bei einem Zustandswechsel den aktuellen Zustand meines AVR
tinys in eine Eepromzelle speichern. So kann ich nach einem Reset
wieder in den entsprechenden Zustand springen.
Da wohl während der Lifetime des Gerätes die 100000 garantierten
Schreibzyklen überschritten werden möchte ich die defekte Zelle
erkennen und die nächte Zelle verwenden.

Meine erste Idee ist eine 2 aus 3 Struktur...Ich speichere den Wert in
3 aufeinanderfolgende Zellen. Nach einem Reset untersuche ich die
Zellen auf gleichheit und verwende bei einem defekt die nächsten drei
Zellen.

Einfacher und schöner fänd ich es aber nur eine Zelle zu beschreiben
und gleich zurückzulesen. Bei fehlerhaften Wert verwende ich die
nächste Zelle.
Was aber passiert, wenn die Zelle sich zwar beschreiben lässt, ihren
Wert bei Stromlosigkeit nicht hält!? Gibt es diese Fehlererscheinung
beim sterben einer Zelle überhaupt oder kann ich das ausschliessen?

hoffe auf eure Meinung
Gast #406898
Lesenswert?
• ▲
▼
1.: Die Zahl "100000" gibt den Wert an, bei dem der Hersteller noch
garantiert, dass es funktioniert. In der Realität dürften es wesentlich
mehr Zyklen sein.

2.: Nimm eine EEPROM-Zelle als Zähler, in der die Adresse der benutzten
Speicherzelle steht. Dann mach Deine Prüfung (schreiben, zurücklesen und
vergleichen). Wenn die Werte nicht übereinstimmen, erhöhst Du den Zähler
um eins und speicherst die Variable in der nächsten Zelle. Da die
Zählvariable nur geschrieben wird, wenn eine andere Zelle defekt ist,
können mindestens 100000 Zellen kaputtgehen, bevor Deine
Zählvariablenzelle den Geist aufgibt.
Gast #406900
Lesenswert?
• ▲
▼
Hallo,
danke für Deine Antwort. So wie Du beschreibst mache ich es ja mit
meiner 2aus3 Strukur.
Ich frage mich aber trotzdem ob ein Fehler des EEProm nicht auch sein
könnte, dass es sich zwar beschreiben lässt, aber den Wert bei
Stromlosigkeit nicht behält.
Gast #406901
Lesenswert?
• ▲
▼
@akw:
Klar, irgendwo muss aber auch abgelegt sein, in welcher Zelle der
aktuelle Wert steht. Und da ist es sicher am einfachsten, die Variante
mit Zähler zu nehmen und dann eine andere Zelle zu benutzen, wenn eine
fehlerhaft ist. Wenn man bei jedem Zugriff eine andere Zelle nimmt,
brauchts auch einen Zähler, der aber auch bei jedem Zugriff geändert
werden muss, wodurch er dann genau so schnell unbrauchbar wird wie der
Rest. Und damit hat man nix gewonnen.
Gast #406903
Lesenswert?
• ▲
▼
Ich würde die Zelle nur beschreiben wenn der Inhalt differiert. das
erhöht die Lebensdauer schon mal. Und dann, wie oben schon beschrieben,
zurücklesen ob der geschriebene Wert korrekt ist. Falls nicht: die
nächste Zelle benutzen. Als 'Adress-Speicher' für die aktuelle
Speicherzelle würde ich eine weitere Zelle (oder 2) festlegen.
Gast #406904
Lesenswert?
• ▲
▼
> dass es sich zwar beschreiben lässt, aber den Wert bei Stromlosigkeit
> nicht behält.

Wäre mir neu. Wenn es sich beschreiben lässt und Du den selben Wert
auch zurücklesen kannst, dann sollte er sicher gespeichert sein und
auch bei Stromlosigkeit erhalten bleiben.
Gast #406906
Lesenswert?
• ▲
▼
du kannst auch immer folgendes machen:

FF = leer, du suchst den ersten Wert != FF das ist dein Wert.
Wenn du einen neuen schreibst stellst du die aktuelle Zelle auf FF und
schreibst den Wert in die nächsten. so wird jede zelle nur... alle 512x
beschrieben (je nach verfügbarem EEprom)
Gast #406907
Lesenswert?
• ▲
▼
Hallo Karl-Heinz das ist natürlich schwer zusagen aber ich denke mit
50-60 Zustandswechsel muss ich pro tag schon rechnen...naja eigentlich
vielleicht ein wenig übertrieben über die nächsten 5 jahre hinaus zu
planen...aber ich bin halt en gründlicher...immerhin zeichnet das die
deutschen Produkte in der Welt aus g
#406908
Lesenswert?
• ▲
▼
Rechne doch mal nach.

50 - 60 Zustandswechsel pro Tag.
100000 Wechsel hast du schlechtestenfalls zur Verfügung.
Bei 60 am Tag reicht das für  1666 Tage.
Das macht 4,5 Jahr.
Und das bei ununterbrochenem Dauereinsatz und jeden Tag 60
Zustandswechsel.
Wobei sich der zu speichernde Wert auch wirklich ändern muss. Es
ist trivial den Schreibzyklus auszulassen, wenn der zu schreibende
Wert schon gespeichert ist.

Und das ist schlechtestenfalls! Atmel garantiert für 100000 Zyklen.
In der Praxis liegen die Werte normalerweise wesentlich höher.
#406909
Lesenswert?
• ▲
▼
> aber ich bin halt en gründlicher...immerhin zeichnet das die
> deutschen Produkte in der Welt aus

Zumindest haben sie (noch) diesen Ruf(*)
Aber: man kanns auch übertreiben.


(*) 'Made in Germany' verliert schön langsam dieses Gütesiegel.
Viele Produkte sind qualitativ nicht mehr das was sie mal waren
kosten aber immer noch ne Menge mehr als die der Konkurenz.

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