PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Brauche Tip - Datensichern mit EEprom oder nicht?



m@rkus33
21.04.2006, 23:59
Hallo,

eine Frage zu der ich Eure Meinug bräuchte.

Ich muss in einer Anwendung alle 0,25 Sek. einen Datensatz sichern, der nach dem Ausschalten erhalten bleiben soll. Dieser Datensatz dient als Backup.

So nun glaube ich, das das interne EEprom vom Mega16 das net lang mitmacht. Die Dinger haben ja so um die 100.000 Schreibzyklen. Wenn aber 4 X pro Sekunde abgespeichert wird dann ist das EEprom bald hinüber, oder?

Welche Lösungsmöglichkeiten gäbe es denn noch? :-k

Gruß
Markus

izaseba
22.04.2006, 00:07
Welche Lösungsmöglichkeiten gäbe es denn noch?
Es gibt doch I2C batteriegepufferte RTC's mit RAM. Kann man die nicht dazu mißbrauchen ?

Gruß Sebastian

Bluesmash
22.04.2006, 00:18
du köntest ja einen dicken goldcap in die schaltung einbauen und gleichzeitig die versorgung messen, sobald die versorgungsspannung weg is die daten ins eeprom speichern dan bräuchtest du nur einen schreibzugriff beim wirklichen abschalten... und der goldcap sollte dafür locker reichen....

gruss bluesmash

Hanni
22.04.2006, 01:39
oder das ganze als "Ringpuffer" auslegen ....

m@rkus33
22.04.2006, 10:20
die Lösung mit der Goldcap find ich pers. nicht schlecht. Stimmt die Daten müssen eigentlich erst dann gesichert werden, wenn die Spannung abgeschalten wird. Das kommt dann wesentlich seltener vor.

Da brauch ich dann auch in der Software nicht allzu viel ändern.
Ich schreibs ja mit Bascom und da bin ich noch nicht allzu sicher unterwegs.


@Hanni
was meinst du genau mit "Ringpuffer"? Im EEprom im Kreis beschreiben?
Bring aber auf die Dauer auch nicht wirklich viel mehr. Ich möchte die Schaltung auf mehrere Jahre sicher betreiben.

Wie sieht es eigentlich mit einem "normalen" I2C Ram aus das ich mit einer Knopfzelle füttere? Gibt es da was kleines? So wie es Sebastian vorschlug?

Gruß
Markus

ACsenf
24.04.2006, 09:49
Hi!

Genau die selbe Fragestellung hatte ich auch schon bei einem Projekt, das ich noch umsetzen will. Eine Drehscheibensteurung für die Modellbahn. Dabei muss einmalig die Ist-Position eingelernt werden.
Und dann muss auch jedesmal beim Ausschalten, die letzte aktuelle Lage gespeichert werden, damit es beim nächsten Einschalten wieder funzt.
Dazu hatte ich auch schon die Idee mit dem Goldcap, sollte eigentlich klappen!
Die Idee mit dem Ringspeicher hatte ich auch schon öfter gehört....nur wie soll man das umsetzen. Klar jedes Mal an eine andere Stelle Speichern bringt eine erhebliche Erhöhung der Speicherlebensdauer...aber woher weiß ich beim Wiedereinschalten wo ich zu letzt war??? Das müsste ich doch auch speichern....und dann bin doch wieder genauso weit, wie vorher??? Oder gibt es da einen simplen Trick?

Gruß

Sven

Rage_Empire
24.04.2006, 10:04
Naturlich gibts da ein ganz simpler trick:an einer festen Adresse speicherst du jedesmal die adresse oder page mit, die zuletzt beschrieben wurde.

ACsenf
24.04.2006, 10:16
Ja gut, dann bringt das ganze ja überhaupt nix, da du dann an der stelle den eeprom kaputt macht, an der du die adresse speicherst, dann kannste auch gleich immer auf die selbe stelle schreiben. Es muss da aber ne Möglichkeit geben. Schließlich wird sowas ja gemacht...

Gruß

Sven

Rage_Empire
24.04.2006, 10:24
natürlich bringt das was, du kannst somit z.B. die letzten 10 datenaufzeichnungen zurückverfolgen. Wie willst des anders hinbekommen?
oder nimmst nen PCF8570 mit Puffer-GCap.

Windi
24.04.2006, 21:10
Ich versteh auch nicht was das für diesen Anwendungsfall bringen soll.
ACsenf will ja nur die letzte Psoition wissen und nicht die 9 Positionen davor.
Man könnte es höchstens so machen dass man bei jedem Schreibvorgang eine Zelle mit einem Wert beschreibt der nie gespeichert wird (z.B. 0). In die nächste Zelle schreibt man dann den abzuspeichernden Wert.
Bein nächsten Schreibvorgang überschreibt man dann den alten Wert ebenfalls mit 0 und schreibt den neuen aktuellen Wert in die nächste Zelle.
Beim Neustart des Programms durchsucht man einfach den Speicher nach der Kombination 0,X und schon hat man den letzten Wert und die aktuelle Speicherposition wieder.

Gibt es eigentlich hier irgendwo ein Musterprogramm für die Goldcap-Variante?

skydriver
24.04.2006, 22:15
hallo ACsenf,

hatte mich dem gleichen Problem vor Jahren auch mal gestellt - nämlich der Erfassung eines Ist-Zustandes nach dem Einschalten. Dazumals hatte ich dafür einen Sack voll Elektronik angewendet. Heute hätte ich dafür folgenden Vorschlag:
Da deine Positionen sich gut von einander trennen lassen, würde ich für den "Kaltstart" die aktuelle Ist-Position erfassen. Ist ja mit µC kein Problem. Kleinen Stabmagneten unters Drehgleis geklebt und an jeder festen Position einen Reedkontakt befestigt. Je nach Anzahl der Positionen abfragen - oder besser, so wie beim RN-Borard mit unterschiedlichen Widerständen kaskadiert (Schalterabfrage) in einem Rutsch über den AD-Pin einlesen - und schon ist die Position bekannt.
Altmodiger, laienhafter Vorschlag, der nur die Variantenvielfalt erhöht, aber manchmal hilfts.
Aber nun passt meine Aussage nicht mehr zum Eingangsthema - Entschuldigung!

schönen abend noch

thomas O:)

ACsenf
25.04.2006, 09:05
Hi Skydriver!

ansich ne tolle Idee, nur kann ich das Teil nicht mehr ausbauen um solche Modifikationen durchzuführen, ausserdem soll es ja einfach nachzurüsten sein. gegen die Magnete spricht, daß das ganze Teil aus magnetischem Blech ist.
Denke die Lösung mit dem Goldcap ist doch sehr elegant und 10 000 mal ausschalten ist doch schon recht viel. Wenn man das nun noch mit nem Ringspeicher hinbekommen würde, wo man halt niy ständig auf eine stelle speichern muss wäre super!

m@rkus33
29.04.2006, 01:47
also die Lösung mit dem GoldCap funktioniert prima. Habe die Stromversorgung vom MC weggenommen und über eine Diode und GoldCap realisiert. Ist die Versorgungsspannung weg übernimmt der GoldCap. Prima danke für den Tip.

Gruß
Markus