Daten laufend abspeichern!

Gast #2146740
Lesenswert?

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 .
#2146744
Lesenswert?

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
Lesenswert?

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).
Gast #2147420
Lesenswert?

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 #2147478
Lesenswert?

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

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