Hallo, ich habe ein Programm was regelmäßig Daten sichert. Diese Daten müssen jedoch nach trennen und wieder verbinden der Versorgungsspannung erhalten bleiben. Nach hochrechnung würde ich, je nach laufzeit, nach, je nach Datenmenge, die nur geschätzt werden kann, nach ca 2 Wochen schon die 100.000 schreibzyklen überschreiten. Was ist nun sinnvoller? 1. Die Daten extern in einem Ram puffern und bei unterschreiten der Versorgungsspannung durch die restversorgung und "schutzschaltung" durch den Elko die Daten erst dann in den eeprom schreiben? 2. Die Daten mittels progmem im Flash sichern und bei unterschreiten der Versorgungsspannung in den eeprom sichern? Was passiert mit dem eeprom nach überschreiten? Klar kann er ggf mehr aber was ist wenn "ende" ist? Gibt es externen eeprom? Läuft der uC trotz "toten" eeprom trotzdem weiter, kann jedoch nichts mehr speichern? Bei der möglichkeit mit dem externen Ram muss ich den Elko vermutlich erhöhen da dieser ja dann den Ram ebenfalls versorgen muss, richtig? Wie schnell geht das auslesen des Rams und schreiben in den eeprom um die Entladezeit des Elkos zu berechnen? Es handelt sich um drn ATMega128A mit 16Mhz Quarz. Zurzeit befindet sich an den Versorgungspins ein 1000uF 16V gepolter Elko. Danke.
Und mal wieder die Frage aller ewigen Fragen, nämlich die nach fehlenden aber entscheidenden Informationen: wieviel Daten wie schnell? Weils für 4KB Daten andere Lösungen gibt also für 4GB, und für alle paar Bytes anfallende kurze Protokolldaten andere als für Massendaten.
@ Rene H. (ballibou) >die nur geschätzt werden kann, nach ca 2 Wochen schon die 100.000 >schreibzyklen überschreiten. >1. Die Daten extern in einem Ram puffern Warum extern? Hast du keinen internen RAM? > und bei unterschreiten der >Versorgungsspannung durch die restversorgung und "schutzschaltung" durch >den Elko die Daten erst dann in den eeprom schreiben? Ja. >2. Die Daten mittels progmem im Flash sichern und bei unterschreiten der >Versorgungsspannung in den eeprom sichern? Nein. >Was passiert mit dem eeprom nach überschreiten? Der Schreibvorgang wird unzuverlässig. Es werden irgendwann Bitfehler auftreten. > Klar kann er ggf mehr >aber was ist wenn "ende" ist? Gibt es externen eeprom? Sicher, die 24er. Oder FRAM, der hat Milliarden von Schreibzyklen. Oder man verteilt die Schreibzyklen intelligent über mehrere Zellen. >Läuft der uC >trotz "toten" eeprom trotzdem weiter, kann jedoch nichts mehr speichern? Ja. >Bei der möglichkeit mit dem externen Ram muss ich den Elko vermutlich >erhöhen da dieser ja dann den Ram ebenfalls versorgen muss, richtig? Du brauchst keinen externen RAM. https://www.mikrocontroller.net/articles/Speicher#EEPROM_Schreibzugriffe_minimieren >Es handelt sich um drn ATMega128A mit 16Mhz Quarz. Zurzeit befindet sich >an den Versorgungspins ein 1000uF 16V gepolter Elko. Siehe oben.
H.Joachim Seifert schrieb: > FRAM ist glaube ich die beste Lösung. Du hast eine tolle Kristallkugel. Meine Kugel murmelt was von "unüberlegt und zu oft gesichert", aber für genaueres müsste ich die ersma putzen.
Micha H. schrieb: > Du hast eine tolle Kristallkugel. Es gibt 2 Möglichkeiten, auf eine solche Frage zu reagieren. Rückfragen, oder eine möglicherweise unpassende Lösung reinwerfen. Wenn letztere zufällig passt, dann gilt man als Genie.
Rene H. schrieb: > Nach hochrechnung würde ich, je nach laufzeit, nach, je nach Datenmenge, > die nur geschätzt werden kann, nach ca 2 Wochen schon die 100.000 > schreibzyklen überschreiten. Die Hochrechnung würden wir gerne sehen. Das wäre eine gute Informationsquelle. Und beschreibe und bitte die Anforderungen und was es werden soll. Oft steht man zu nahe an der eigenen Lösung des Problems und sieht nur diese. Dann sehen frische Augen oft noch andere Wege die teilweise auch sehr viel einfacher sind.
A. K. schrieb: > Es gibt 2 Möglichkeiten, auf eine solche Frage zu reagieren. Erwischt. Ich habe einfach nicht dran gedacht, daß die FRAMs aus der 42er Baureihe sind :-)
Naja, irgendwie habt ihr schon recht. Aber irgendwie wird sich Rene schon was dabei gedacht haben, auch wenn die Ansätze z.T. etwas krude sind. FRAM ist ne geniale Möglichkeit, sich derartige Probleme vom Hals zu schaffen. Vor allem ist es schnell und für kleines Geld erledigt. Vorausgesetzt, das Problem existiert tatsächlich: -Flash schreiben ist Quatsch -im RAM halten und bei Bedarf ins EEPROM schreiben ist natürlich möglich, erfordert aber eine ausreichend frühe Erkennung des drohenden Versorgungsausfalls und ausreichend schnelle Bearbeitung für alle relevanten Daten -externes RAM mit Batterie? Naja, ich versuch Batterien zu vermeiden, solange ich keine RTC im System habe -verteiltes Schreiben im EEPROM - klar, geht. Hat aber auch Grenzen. Und man muss schon ein wenig aufpassen dabei. Mit nem FRAM ist das alles kein Thema. Ist auch ne Frage der Stückzahl. Sind es wirklich viele, kannn man sich Gedanken machen, wie das MC-intern erledigt werden kann.
Carsten R. schrieb: > Die Hochrechnung würden wir gerne sehen. Das wäre eine gute > Informationsquelle. Und beschreibe und bitte die Anforderungen und was > es werden soll. Genau! Bisher stochern wir alle nur im Nebel. Trotzdem mal ein Beispiel: Ich hab ein Gerät, was sich Benutzereinstellungen merken soll. Die Strategie ist ganz einfach. Ändern sich Werte und bleiben für 1s konstant (konstante CRC), wird gespeichert. Danach wird eine Schreibpause von 10s eingelegt. Damit hat man so selten Schreibzugriffe, daß es mindestens ein Leben lang reicht. Bzw. eher sind die Tasten/Drehgeber hinüber. Nur in seltensten Fällen lohnt sich ein zusätzlicher FRAM/MRAM.
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.