www.mikrocontroller.net

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


Autor: Sören Hölsken (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: ...HanneS... (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

...

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: dave (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Manfred Glahe (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Sören Hölsken (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Manfred Glahe (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Michael (ein anderer) (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
FRAM gibts z.B. bei segor.de,
z.B. FM24C16A, 2,10Euro

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.