mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Werte im eeprom speichern...aber wann?


Autor: Kersten Decker (unbenannt-editor)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi!
Ich möchte 8 16-Bit Werte im Eeprom abspeichern (Atmega8 WinAVR gcc)
damit diese beim Abschalten nicht verloren gehen. Die Werte können aber
jederzeit vom Benutzer verändert werden und es wäre auch denkbar, dass
der Benutzer einen Wert ändert und sofort danach das Gerät abschaltet.

Wie stelle ich das Speichern sicher, ohne ständig bei jeder
Benutzereingabe gleich den Eeprom zu beschreiben?

Denkbar wäre, den Abfall der Versorgungsspannung zu messen und dann zu
schreiben (Spannung über eine Art Puffer aufrechterhalten). Das
erscheint mir aber doch etwas aufwendig, zumal ich keine Pins mehr frei
habe und auch die Schaltung bereits fertig ist.
Gibt es noch andere Lösungen?

Kersten

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"ohne ständig bei jeder Benutzereingabe gleich den Eeprom zu
beschreiben?"

Warum nicht genau so? Sorgst du dich um die 100000 möglichen
Schreibvorgänge?

Autor: Feadi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

angenommen der Benutzer gib 10x am Tag neue Werte ein, wird der Chip 27
Jahre halten.

Gruß, Feadi

Autor: Kersten Decker (unbenannt-editor)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Gerät ist ein Netzteil, die Werte können mit einem Drehimpulsgeber
fast stufenlos verändert werden...selbst wenn ich nach jeder Eingabe
warte bis keine Änderung mehr erfolgt und dann speichere...an so einem
Netzteil verstellt man ja öfter was.

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du hast dir ja selber die Antwort gegeben.

Und wenn dir die 100000 Sorgen machen: Speichere 1x32bit,8x16bit. Der
32bit-Wert ist ein Zähler. Und diesen 20-Byte-Block schreibst du nicht
immer an die selbe Stelle, sondern hübsch im Ringelreihen immer
hineinander. Beim Start suchst du den Eintrag mit dem höchsten
32bit-Zähler, beim nächsten Schreibvorgan landet das dann mit +1
dahinter.

Ergibt rund 2,5 Mio garantierte Schreibvorgänge. Bei 10 Jahren
Lebensdauer und 10 Stunden pro Tag darf der Anwender dann immer noch
jede Minute dran drehen.

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
PS: Häng noch eine CRC dran, damit das Netzteil nicht alles in Brand
setzt, wenn das EEPROM Mist liefert. Das kann nämlich auch beim
schonendsten Betrieb immer passieren.

Autor: Kersten Decker (unbenannt-editor)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke, werde ich so machen. CRC kommt auch rein, obwohl das Netzteil
nach dem Einschalten sowieso erst nach Knopfdruck die Ausgänge
einschaltet.

Autor: Der Techniker (_techniker_)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@A.K.

Aber was ist mit dem niedrigsten Bit vom Zähler? Das ändert doch bei
jedem Schreibvorgang seine Wertigkeit, oder hab ich da was übersehen?

Gruß,
Techniker

Autor: Johannes R. (krampmeier)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der aktuelle Zählestand wird paarweise mit dem zugehörigen Wert im
Ringspeicher abgelegt. Deswegen müsste man zum Auslesen erst den
höchsten Zählerstand suchen.
Je nach geplanter Anwendung des Netzteils würde ich mir den Aufwand mit
so einem Ringspeicher allerdings sparen und darauf vertrauen, dass der
EEPROM deutlich mehr als die garantierten Zyklen aushält, mindestens
Faktor 10 bei Ruamtemperatur :) Eine Speicherung z.B. ein Sekunde
nachdem der Wert stabil ist sollte doch eine ausreichende Lebensdauer
sichern, oder?

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.