Forum: Mikrocontroller und Digitale Elektronik Wie speichert man "Benutzerdaten" sinnvoll


von Sören Hölsken (Gast)


Lesenswert?

Hallo Zusammen,

mich beschäftigt zur Zeit die Frage, wie man bei einer
Mikrocontroller-Application am sinnvollsten "Benutzerdaten"
speichert.
Wenn ich mir z.B. meinen (gekauften) MP3-Player anschaue, so merkt sich
dieser "meine" Lautstärkeeinstellung (auch nach dem "Ausschalten" -
keine Ahnung, ob er dann im Standby schlummert, oder nicht).

Mir fällt in diesem Zusammenhang nur das Speichern solcher Daten in
einem EEPROM ein, aber die haben doch nur begrenzte
Wiederbeschreib-Zyklen, oder? Wenn ich jedesmal, wenn sich ein
verstellbarer Wert ändert, diesen Abspeichere, dürften diese doch
schnell erschöpft sein.
Ein MP3-Player könnte dies natürlich in seinem "Speichermedium"
ablegen, aber es gibt ja noch andere Geräte (programmierbare Uhren,
etc.), die vielleicht so einen Speicher nicht haben.

Über Denkanstöße würde ich mich sehr freuen,
viele Grüße,

Sören

von ...HanneS... (Gast)


Lesenswert?

Das EEPROM hat nur eine begrenzte Lebensdauer, der Taster aber auch. Die
des Tasters dürfte weit unter der des EEPROMs liegen.
Und Potis dürften noch geringere Lebensdauer haben.

Bei den neueren AVRs verträgt das EEP mindestens 100.000 Zyklen.

Speichermedien haben aber auch eine begrenzte Lebensdauer. Ich glaube
mich zu erinnern, im Datenblatt irgendeiner Speicherkarte (SM, CF oder
SD) etwas von 70.000 Schreib-Lösch-Zyklen gelesen zu haben.

Vielleicht solltest du die Benutzerdaten erst beim Ausschalten
speichern? Dazu nicht die Stromversorgung schalten, sondern den AVR in
Tiefschlaf (power-down) versetzen. Dann liegt die Stromaufnahme im
Rahmen der Selbstentladung von NiMH-Akkus.

...

von Markus (Gast)


Lesenswert?

Es gibt auch Speicher die eine praktisch unbegrenzte Anzahl an
Schreibvorgängen erlauben, etwa Batteriegepuffertes SRAM (z.B. in
Uhrenbausteinen zu finden) oder FRAM. Letztere gibts kompatibel zu den
24Cxx-EEPROMs.

Man kann natürlich auch die Schreibvorgänge auch immer erst dann
machen, wenn das Gerät ausgeschaltet wird (wie Hannes vorschlägt), muß
dabei aber beachten, daß Akkus auch leer werden können bzw. ein Gerät
am 230V-Netz einfach ausgesteckt wird. Da muß man z.B. durch einen
Kondensator ein bischen Energie puffern und rechtzeitig bemerken daß
der Strom weg ist.

Man kann die Schreibvorgänge auch ein bischen eleganter im EEPROM
verteilen, dann kann mann mehr als 100.000 Änderungen speichern.
Prinzipiell sollten 100.000 Änderungen aber schon ausreichen. Wenn man
die Lautstärke alle 5 Minuten ändert und 8h/Tag Musik hört, dann reicht
das für 3 Jahre.

Markus

von dave (Gast)


Lesenswert?

Hmm.. 2 Jahre, dann ist die Garantie abgelaufen ;)

Irgendwer hatte das doch einfach mal nachgetestet mit dem Eeprom.. und
kam auf 5Mio Schreibzyklen. 100k muss es halt MINdestens machen, bei
extremst Temperaturen und Konditionen.

Außerdem würde ich bei so kleinen Datenmengen eh nur mit Spiegelung
arbeiten, einfach alles 3x Hintereinander abspeichern und beim Auslesen
schauen, ob 2 gleich sind, dann ist der Wert OK.. Passt eine der 3
Zellen nicht dazu, auf nen andren Speicherplatz ausweichen.
Aber wir wollen ja kein Atomkraftwerk steuern, das kommt morgen.

dave

von Matthias (Gast)


Lesenswert?

Hi

ich ahb das mal probiert. Bin auf 2M Schreibzyklen gekommen. Allerdings
eben unter Laborbdingungen und nicht über den ganzen Betriebsspannungs
und Temperaturbereich.

Matthias

von Manfred Glahe (Gast)


Lesenswert?

Hallo Sören,

ich mache soetwas mit einem FRAM von Ramtron. Schreibgeschwindigkeit
wie ein SRAM beliebig beschreibbar usw.
Für einen Datalogger speichere ich so die gesamte
Frontplatteneinstellung.

Falls Du Unterlagen möchtest, ab Montag Abend wäre es möglich.

Manfred Glahe

von Sören Hölsken (Gast)


Lesenswert?

Hallo Manfred,

ja ich wäre sehr an weiteren Unterlagen, Beschaffungsquellen etc.
interessiert.

Habe ich das richtig verstanden, daß ein FRAM auch nach Abschalten der
Stromquelle seine Daten behält?

Ein schönes Wochenende,

Sören

von Manfred Glahe (Gast)


Lesenswert?

Hallo Sören,

"Habe ich das richtig verstanden, daß ein FRAM auch nach Abschalten
der
Stromquelle seine Daten behält?"

Richtig, sonst würde es ja auch keinen Sinn machen.

Ebenfalls schönes Wochenende,

Manfred Glahe

von Michael (ein anderer) (Gast)


Lesenswert?

Naja, man kann die Speicherei schon etwas optimieren:

a.) Nicht immer an die gleichen EEPROM-Adressen speichern, sondern das
EEPROM als Ringbuffer verwenden. Ist relativ einfach.

b.) Nicht sofort jede Änderung abspeichern. D.h. wenn eine Einstellung
verändert wurde, erstmal einige Minuten oder Stunden warten, bis diese
Einstellung in's EEPROM geschrieben wird.

c.) Nur beim Ausschalten die Einstellungen in's EEPROM speichern. D.h.
die Spannungsversorgung vom Mikrocontroller und restliche Elektronik
sind getrennt, und die Puffer-Reserve (Elko) am Mikrocontroller reicht
aus um die Daten noch in's EEPROM zu retten, wenn die restliche
Elektronik schon lange keinen Strom mehr hat. Oder der Ein/Aus-Schalter
ist per Software gelöst; der Mikrocontroller schaltet die restliche
Elektronik ab, sichert die Daten in's EEPROM und geht dann in den
Power-Down-Mode.

Naja, und wenn Du nun alle drei Optimierungen kombinierst, hält so ein
EEPROM praktisch ewig...

von Benedikt (Gast)


Lesenswert?

Wenn man es sich einfach machen will (das mit dem Speichern beim
Ausschalten ist immer so eine Sache...) dann setzt man bei jeder
Änderung einer Einstellung ein Bit und speichert die Änderungen beim
Verlassen des Menüs. Für nicht andauernd veränderte Einstellung hält
ein EEPROM so fast ewig (Bsp: Menü bei einem Monitor. Hier wird man
solange im Menü bleiben bis die Einstellung OK ist.)
Für eine Speicherung der Lautstärke ist das jedoch nichts.
Hier ist die Speicherung beim Ausschalten sinnvoller. Am besten macht
man es dann so wie bei den digitalen Potis (z.B. von Dallas) mit
internem Speicher: Nur dann speichern wenn sich der Wert um mehr als
10-20% geändert hat.
Aber für ein Batteriebetriebens Gerät ist das ja kein Problem, denn die
Controller steuern ihre Stromversorgung meistens selbst, bzw. bekommen
immer Strom und gehen beim Abschalten nur in irgendeinen Power Down
Modus. Daher werden meistens die Einstellungen auch nur im RAM
gespeichert (z.B. Digitalkameras machen sowas manchmal. Die
Einstellungen die man nich andauert ändert werden aber oft in einem
EEPROM gespeichert, zumindest bei den besseren.) Wenn man die Batterien
wechselt gibt es wegen irgendwelchen Pufferelkos auch keine Probleme,
solange man keine 2 Stunden dafür benötigt.

von Markus (Gast)


Lesenswert?

FRAM gibts z.B. bei segor.de,
z.B. FM24C16A, 2,10Euro

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
Noch kein Account? Hier anmelden.