Hallo erfahrene Leute, ich muss viele Parameter und Statistik (256Bytes) im Eeprom speichern. Wie macht man das am besten: 1- Daten sofort nach Änderung in einem Array (Eeprom_CopyAr: somit habe ich eine Copy com Eeprom) schreiben und zum Eeprom schicken 2- - Daten in einem Array (Act_DatenAr) speichern - Zycklich beide Arrays (Eeprom_CopyAr und Act_DataAr) vergelichen, wenn sie sich unterschieden, die neue Daten zum Eeprom senden. Bei (1) brauche ich einen Fifo, wo die Schreibaufträge abgelegt werden, wenn mehere Daten sich gelichezeitig ändern Bei (2) wird CPU Zeit verbraucht, da zycklich beide Arrays verglichen werden.
Die Frage ist: wie oft machst du so einen Speichervorgang, bzw. wie kritisch ist es, wenn mal was zb wegen Stromausfall verloren geht. > Bei (2) wird CPU Zeit verbraucht, da zycklich beide Arrays verglichen werden. Das ist nicht das Hauptproblem. Das Hauptproblem ist, dass die Lebensdauer von EEPROM Zellen begrenzt ist, und man bei AVR's im Dauereinsatz, recht schnell an diese Grenze heran kommt, wenn man naiv laufend schreibt.
Vielen Dank für die Antwort. Also es handelt sicheum einen externen Eeprom (Microchip 24LC), und ich werde schon aufpassen das ich nicht sehr oft schreibe, die Statistik/Zähler maximal 1/10Sekunden, die Einstellparameter sofort. Bei Stromausfall dürfen die Daten verloren gehen
Falls das Gerät einen Ausschaltknopf hat, der nicht sofort die Betriebsspannung unterbricht sondern nur per Elektronik abschaltet (wie beim Fernseher etc), dann könntest du auch nur beim Ausschalten speichern. Das reduziert die Anzahl der Schreibzyklen deutlich. Ich glaube, im Artikel steht da auch was darüber drin.
@ Neuling (Gast) >Also es handelt sicheum einen externen Eeprom (Microchip 24LC), und ich >werde schon aufpassen das ich nicht sehr oft schreibe, die >Statistik/Zähler maximal 1/10Sekunden, Hmm, macht nach 10.000 Sekunden ~ 3h Betriebsdauer 100.000 Zugriffe und damit sind vielle EEPROMs am ENde ihrer offiziellen Lebensdauer. Selbst wenn 1 Million Schriebzugriffe garantiert werden, sind es nur 30 Betriebsstunden. >Bei Stromausfall dürfen die Daten verloren gehen Dann brauchst du keinen EEPROM sondern nur einfach RAM.
@Falk Brunner schrieb: > Hmm, macht nach 10.000 Sekunden ~ 3h Betriebsdauer 100.000 Zugriffe und > damit sind vielle EEPROMs am ENde ihrer offiziellen Lebensdauer. Selbst > wenn 1 Million Schriebzugriffe garantiert werden, sind es nur 30 > Betriebsstunden. Stimmt, sollte dann ungefähr 1/10min, oder 1/15min sein >>Bei Stromausfall dürfen die Daten verloren gehen > Dann brauchst du keinen EEPROM sondern nur einfach RAM. gemeint sind nur die letzten eingestellten Parameter (wenn Stromausfall während dem Einstellen passiert)
Nimm FRAM von Cypress, das lebt bei 10 Schreibzyklen pro Sekunde theoretisch >3000 Jahre (10^12 Zugriffe).
Neuling schrieb: > gemeint sind nur die letzten eingestellten Parameter (wenn Stromausfall > während dem Einstellen passiert) Die Parameter sind üblicherweise eh nicht das Problem. Denn die verändert man die nicht dauernd Das Problem sind die statistischen Daten, von denen du gesprochen hast. > Stimmt, sollte dann ungefähr 1/10min, oder 1/15min sein Also 6 Sekunden. Immer noch zu häufig. Geh mal eher in Richtung: jede Stunde Dann sind wir bei 11 Jahren Durchhaltedauer. Ob deine Schaltung so lange im Einsatz ist, ist eine andere Frage. Aber ins Auge fassen würde ich es. Ich hab noch Elektronik, die 30 Jahre alt ist.
@Karl Heinz Buchegger >Also 6 Sekunden. >Immer noch zu häufig. >Geh mal eher in Richtung: jede Stunde >Dann sind wir bei 11 Jahren Durchhaltedauer. wie hast du die 11 J berechnet? Im Datenblatt steht 1.000.000 Erase/Write Cycles Bei 1/10min => 10^6 / 6 = 166.666 Std => ~19Jahre Bei 1/15min => 10^6 / 4 = 250.000 Std => ~28Jahre Erreichen muss ich 10Jahre.
Neuling schrieb: > Stimmt, sollte dann ungefähr 1/10min, oder 1/15min sein Die Schreibweise 1/10min ist ungenau. Karl Heinz fasst das als eine Schreiboperation pro (1/10) min auf. Also alle 6 Sekunden. Neuling meinte wohl 1 Schreiboperation alle 10 Minuten. Was sind das denn für Statistikdaten? Was ist das für ein EEPROM und wo ist das Datenblatt? Wieviel Bytes werden pro Schreibvorgang geschrieben? Läuft das Gerät dauernd oder nur intermittierend und wie lange im Durchschnitt? Der Post von 26.07.2013 13:19 mit dem Schreiben direkt nach dem Stromausfall ist eine gute Idee bei solchen Sachen.
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.