www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Werte im EEROM speichern im Betrieb - geht das?


Autor: Christoph Kukulies (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Meine Anwendung (AT90S2313) soll einen Kalibrierungswert permanent
speichern und bei Neueinschalten geich wieder vorfinden, so daß
diese Kalibrierung nicht jedesmal ausgeführt werden muß.

Geht das mit dem AVR Instruktionssatz oder muß ich da eine
Batteriepufferung einführen oder was müßte ich machen?

Autor: anfänger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
also du kannst schon im internen eeprom des controllers daten ablegen.
allerdings ist dieser nicht ganz verschleißfrei (laut datenblatt
100.000 schreib-/lösch-zyklen). also solltest du das nicht all zu oft
machen. nimm lieber ein externes eeprom (zum beispiel mit i2c). die
sind meist "länger haltbarer" (mehr als 1.000.000 zyklen).

alle angaben ohne gewähr

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dazu kommt, dass gerade bei den classic AVR die Daten  im EEPROM nicht
besonders sicher aufgehoben sind, beim Abschalten kann es passieren,
das Daten willkürlich verändert werden.
Lösung: ordentlicher Reset-Baustein oder eine Software-Lösung:
Werte 3fach Abspeichern, bei Programmstart alle 3 Werte lesen,
vergleichen, ist einer anders, diesen wieder durch den Wert der beiden
anderen Zellen ersetzen.
Keinesfalls regelmässig in die EEPROM-Zellen schreiben, vorher
kontrollieren, der Wert sich überhaupt geändert hat, wenn nicht, das
Schreiben unterlassen.
Lässt sich dennoch eine hohe Schreibrate nicht verhindern, gibts noch
die Möglichkeit, die jeweils aktive Zelle "wandern" zu lassen,
natürlich muss dann auch der Zeiger auf die jeweils aktiven Zellen mit
gesichert werden, ebenso muss ein Zyklenzähler realisiert werden.
Natürlich verringert sich durch solch ein Verfahren die Anzahl der
verfügbaren Datenzellen drastisch. Wenn du aber nur ein paar Werte
sichern willst, lässt sich da allerhand machen.

Autor: Christoph Kukulies (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
jsgps: Was meinst Du mit "ordentlichem Resetbaustein"?

Gibt es da was mit serieller Programmierung bzw. Ein/Auslese?
Ich will ja keine aufwendige Ram-Interfaceschaltung bauen, die noch
weitere Pins belegt.

Autor: Elektrolurch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
1. Reset-Baustein DS1813 von Dallas, jetzt Maxim
2. 24LC65 serielles EEprom mit einer Page die bis zu 10.000.000
Schreibzyklen abkann.

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tja, ein Reset-Baustein ist ein Reset-Baustein, z.B. TL7705.
Liefert ein sauberes Reset-Signal sowohl beim Einschalten als auch beim
Absinken der Versorgungsspannung. Die interne Reset-Schaltung bei den
classic-AVR ist nicht ausreichend für sicheren Betrieb. Das betrifft
einmal die fehlerhaften EEPROM-Daten, ausserdem kann es passieren, dass
unter bestimmten Bedingungen der MC gar nicht startet
 Bei den Megas und Tinys ist es besser gelöst.
Vielleicht wartest du noch, bis der Tiny2313 endlich kommt, in 4 Wochen
soll ich meine erste Lieferung endlich bekommen :-).

Autor: E-D (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Meine Lieblings-Reset-Schaltung ist der ZSM560.
Du kannst ja den Controller über nen Elko puffern, sodaß er noch
einigte 10ms nach Spannungsausfall weiterlebt. Über den internen
Komparator realisierst Du eine Power-Fail-Erkennung.
Solange kein Power-Fail erkannt wird, schreibst Du den Kalibrierwert in
RAM, erst beim 'Power-Fail' kopierst Du die Zelle in interne E2P.
Beim einschalten liest du wieder den E2p-Wert und schreibst diesen
wieder ins RAM.

Der Maxim 691 Reset-Baustein hat auch eine Power-Fail-erkennenung,
allerdings mußt du irgendwie den µC bis zum speichern am Leben
erhalten.

VG ED

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.