Daten laufend abspeichern!

Gast #2146740
Ich habe ein kleines Problemchen .
Ich möchte Benutzereingaben in einem Zähler zählen .
Nehmen wir an am Tag benutzen das Gerät 1000 Nutzer so sollte diese Zahl
dauerhaft gespeichert werden also auch wenn der Strom weg ist .

Dazu müsste ich es quasi ständig ins EEprom schreiben allerdings wäre 
dieses bei 1000 Nutzern am Tag auch relativ schnell am Ende seines 
Lebens bei ca. 100-200k Zyklen .

Die einzige unelegante Lösung die mir eingefallen ist ,wäre das Gerät 
nur vom Strom zu trennen nachdem man eine Funktion benutzt hat, die dann 
den Zählerwert ins Eeprom speichert und danach die Meldung "Sie können 
nun das Netzteil ausstecken" ausgibt .

Aber diese Lösung ist absolut nicht nach meiner Vorstellung .

Hat daher sonst jemand eine Idee wie ich das lösen könnte ?

Ich nutze übrigens ein ATMega168 für die ganze Geschichte .

Am tollsten wäre es wenn der Avr kurz vor dem Brown Out noch schnell die 
Daten in das Eeprom packt, aber das dürfte wohl unmöglich sein :( .

Bin für jede Idee dankbar .
Gast #2146743
Jörg schrieb:
> Am tollsten wäre es wenn der Avr kurz vor dem Brown Out noch schnell die
> Daten in das Eeprom packt, aber das dürfte wohl unmöglich sein :( .

ein kleiner Kondensator und schon ist es sehr gut möglich
#2146744
Jörg schrieb:
> Am tollsten wäre es wenn der Avr kurz vor dem Brown Out noch schnell die
> Daten in das Eeprom packt, aber das dürfte wohl unmöglich sein :( .

Naja sowas in der Art könnte man zumindest machen.

z.B. mit ADC Spannung messen / Komparator und bei entsprechend niedirgem 
Eingangsspannungswert die Abspeicherung im EEPROM initiieren. Das ganz 
noch über einen Elko puffern der die 10-20ms überbrücken kann.
#2146747
Controller lange genug puffern um einen Schreibvorgang abschließen zu 
können. Dazu eine entsprechende Detektorschaltung für den 
Spannungseinbruch (muss dann natürlich die Spannung vor dem Puffer 
messen).

Alternativ: Nie auf die selbe Zelle schreiben sondern immer eine Zelle 
nach der anderen bis das EEPROM voll ist - dann wieder löschen und von 
vorne beginnen. So lässt sich die Lebensdauer des EEPROMs deutlich 
erhöhen (Stichwort: Wear leveling).
#2146829
Ben _ schrieb:
> das programm kann dann beim start den kompletten eeprom
> nach dem höchsten wert absuchen. dürfste die einfachste form eines wear
> leveling algorithmus sein.

Und der Vollständigkeit halber:

Und auch nach dem niedrigsten, der dann als nächsten beschrieben wird. 
Er ist ja "quasi" der älteste Eintrag. ;)

Gruß,
   Marcel
Gast #2147420
Ja ich denke die Lösung mit dem Spannungseinfall detektieren gefällt 
mir.
Das werde ich einfach mal ausprobieren .

Ben _ schrieb:
> hat eigentlich irgendjemand mal einen testlauf gemacht wie lange es
>
> dauert bis das eeprom eines AVR wirklich platt ist?


Hatte ich im Forum hier irgendwo gelesen .Insgesamt hat er 200.000 
Zugriffe gehabt bevor die ersten Fehler auftraten .
Gast #2147431
Wie implementiert man das denn technisch am besten, um zu erkennen, dass 
der Strom am ausgehen ist? Kann der Brown-Out-Detector das oder müsste 
man über einen separaten Pin/ADC messen?
Gast #2147478
Ist ein I²C-Schnittstelle vorhanden? Wenn ja könnte man einen FRAM 
nehmen, das Teil ist allerdings recht teuer. Eine günstige Alternativer 
wäre der DS1307. Ist ein RTC mit 56Byte statischen RAM, welcher mit 
Knopfzelle gepuffert wird. Als Nebeneffekt hast du die Uhr gleich mit 
drin.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 15 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.