Ich frage mich wie man Daten dauerhaft Speichert.
Beispiele:
1. TV Gerät, Speichert seine Sender, und die heutigen Geräte
kann man abstecken und denoch Bleiben die Sender erhalten
2. Digitale Energiemessgeräte/Stromzähler
Der Wert darf ja niemals zurück gesetzt werden.
Diese sollten auch beim Abschalten des Gerätes erhalten bleiben.
Meine Lösungsansätze:
1. Atmel ATmega/XMega
EEPROM -> nicht sonderlich viele Schreibzyklen und recht klein
eventuell kann man hier mit tricks einen Spannungsausfall erkennen und
noch "schnell" den Wert abspeichern
2. Flash, z.B. ATDB.... SPI Flash gibts auch in 1,4,16 MB größen
Wenn man hier nicht immer auf die selben Zellen schreibt
kann man abhängig der Speichergröße und Speicherintervall schon einige
Jahre überbrücken.
3. RTC mit NVRAM oder RAM
Hier ist der Haupt nachteil, Man müsste Ihn mit GoldCaps oder Lithium
Batterien Puffern, die spätestens nach 5-10 Jahren auch schrott sind und
getauscht werden müssten.
Was bei einem Gerät noch geht, aber was macht man bei 100 Geräten?
Sicherheitshalber alle 2 Jahre austauschen? dann wird wieder ein Gerät
vergessen und man hat den Ärger.
Gibt es auch Seriellen RAM, mit I2C oder SPI?
Konkrete Zahlen:
Der Speicher sollte Platz für 40kb bieten.
jede Stunde werden hier 120Byte geschrieben.
Bei Flash lassen sich oft nur Partitionen von mehreren kB komplett
löschen und beschreiben.
Moderne EEPROM haben gelegentlich bis zu 100.000 Schreibzyklen, und es
gibt auch Algorithmen, wie man einen EEPROM-Speicher nutzt, daß er nicht
an den selben wenigen Adressen abnutzt. Zyklische Weiterbeschreibung der
nächsten Adressen, bis man wieder bei Null ankommt. Oder in der Software
Nichtbeschreibung einer Zelle, die bereits den selben Wert enthält.
SRAM ist immer vorzüglich, benötigt aber sorgfältige
Stromversorgungspufferung.
Mit FRAM beschäftigte ich mich noch nicht.
> Gibt es auch Seriellen RAM, mit I2C oder SPI?
Sicher.
Simon schrieb:> Der Speicher sollte Platz für 40kb bieten.> jede Stunde werden hier 120Byte geschrieben.
(1) Ergibt keine 9000 Schreibvorgänge im Jahr. Ein externes EEPROM, 1
Mio mal beschreibbar, wird dich selbst dann überleben, wenn du immer an
die gleiche Stelle schreibst.
(2) Ergibt 1MB Speicherverbrauch pro Jahr. Ein nur 1Mbit grosses 10000x
beschreibbares Dataflash wird dich ebenfalls sehr lange überleben, wenn
entsprechend organisiert.
(3) Internes Flash im Mikrocontroller ist meist 10000x beschreibbar. 1MB
Verbrauch entsprechen also rechnerisch 100 Bytes. Bereits 10KB reichen
rechnerisch also 100 Jahre, wobei hier aber erheblicher Verschnitt durch
die Blockgrösse einzurechnen sein kann.
ich hab noch MRAM gefunden, keine Ahnung wie die das machen, soll aber
20 jahre halten, nicht fluechtig, und beschreibbar beliebig oft.
Na gut werde mich wohl für etwas entscheiden müssen
Simon schrieb:> Hier ist der Haupt nachteil, Man müsste Ihn mit GoldCaps oder Lithium> Batterien Puffern, die spätestens nach 5-10 Jahren auch schrott sind und> getauscht werden müssten.> Was bei einem Gerät noch geht, aber was macht man bei 100 Geräten?> Sicherheitshalber alle 2 Jahre austauschen? dann wird wieder ein Gerät> vergessen und man hat den Ärger.
Hast Du schon mal in die Datenblätter von normalen Elkos geschaut?
Da steht dann schon mal sowas wie "Endurance: 85°C 1000 h" Und 1000h
finde ich nicht sehr viel. Gut es gibt auch bessere, aber die kosten
auch mehr und werden deswegen leider oft nicht eingebaut.
Das fiel mir eben nur so nebenbei ein.
> Gibt es auch Seriellen RAM, mit I2C oder SPI?
Mikrochip 23k256.
Was auch oft gemacht wird: Arbeiten im RAM, und bei Stromausfall wird
das RAM schnell ins Flash gesichert, beispielsweise per Software nach
einem Power-Fail Interrupt. Die Energie dafür kommt aus Kondensatoren,
die genügend Energie für diesen Vorgang speichern. Es gibt/gab auch
Speicherbausteine, die intern RAM+Flash enthalten und beim Einschalten
das RAM aus dem Flash geladen und beim Abschalten das RAM wieder ins
Flash gesichert haben. Damit entschärfst Du die Lebensdauerproblematik
und vermeidest die Verwendung von Akkus oder Primärzellen.
Inzwischen gibts FRAM für sowas. Das ist Speicher, den Du wie EEPROM
benutzen kannst, aber mit praktisch unbegrenzten Schreibzyklen und viel
höherer Schreibgeschwindigkeit. Allerdings nicht ganz billig.
fchk
@ Simon (Gast)
>Ich frage mich wie man Daten dauerhaft Speichert.
Möglichst clever.
http://www.mikrocontroller.net/articles/Speicher#EEPROM_Schreibzugriffe_minimieren> EEPROM -> nicht sonderlich viele Schreibzyklen und recht klein>eventuell kann man hier mit tricks einen Spannungsausfall erkennen und>noch "schnell" den Wert abspeichern
Eben.
>2. Flash, z.B. ATDB.... SPI Flash gibts auch in 1,4,16 MB größen> Wenn man hier nicht immer auf die selben Zellen schreibt>kann man abhängig der Speichergröße und Speicherintervall schon einige>Jahre überbrücken.
Auch.
>Der Speicher sollte Platz für 40kb bieten.>jede Stunde werden hier 120Byte geschrieben.
Über wieviele Stunden/Tage?
MFG
Falk
Simon schrieb:> Man müsste Ihn mit GoldCaps oder Lithium> Batterien Puffern, die spätestens nach 5-10 Jahren auch schrott sind und> getauscht werden müssten.
So ist das nicht, es gibt schon seit langer Zeit Lithium-Batterien mit
der Garantie auf 80 % Ladung nach 10 Jahren. Man kann durchaus sehr
zuverlässige grosse nichtflüchtige Speicher mit CMOS-SRam aufbauen, wenn
man sich die Pufferung nicht gerade am nächsten
Sonderangebots-Krabbeltisch besorgt. Notfalls bei Militärtechnik suchen.
Gruss Reinhard
Hallo Leute
Welche Nachteile hatte jetzt nochmal ein FRAM?
Habe sowas schon verbaut um aktuelle Einstellungen am Gerat zu
speichern. Dazu wird aller 200ms alle relewandten Daten im FRAM
gespeichert.
Gruß Steffen
Ach was, so teuer ist doch ein FRAM auch nun wieder nicht wenn man nicht
gerade 256k oder 512kB haben will.
Um einen SRAM NV zu bekommen, muss man auch erst einmal ultra low
current Typen finden und dann noch einen GoldCap bzw. eine Lithiumzelle
spendieren. Kostet schließlich auch alles.
Aßerdem verbraucht ein 8Pin FRAM auch weniger Platz.
Gruß Steffen
AVRsteffen schrieb:> Aßerdem verbraucht ein 8Pin FRAM auch weniger Platz.
Nicht gegenüber einem 8pin EEPROM. ;-)
Klar, seit es die FRAMs gibt ist gepuffertes RAM etwas obsolet geworden.
Die Frage ist im Einzelfall freilich, ob man überhaupt externen Speicher
braucht, ob man mit internem Flash/EEPROM auskommt.
Wobei es wohl mittlerweile MSP430er mit internem FRAM geben soll.
A. K. schrieb:> AVRsteffen schrieb:>>> Aßerdem verbraucht ein 8Pin FRAM auch weniger Platz.>> Nicht gegenüber einem 8pin EEPROM. ;-)>> Klar, seit es die FRAMs gibt ist gepuffertes RAM etwas obsolet geworden.> Die Frage ist im Einzelfall freilich, ob man überhaupt externen Speicher> braucht, ob man mit internem Flash/EEPROM auskommt.>> Wobei es wohl mittlerweile MSP430er mit internem FeRAM geben soll.MSP430 mit integriertem FRAM ist alt wie Steinkohle
Reinhard Kern schrieb:> Simon schrieb:>> Man müsste Ihn mit GoldCaps oder Lithium>> Batterien Puffern, die spätestens nach 5-10 Jahren auch schrott sind und>> getauscht werden müssten.>> So ist das nicht, es gibt schon seit langer Zeit Lithium-Batterien mit> der Garantie auf 80 % Ladung nach 10 Jahren. Man kann durchaus sehr> zuverlässige grosse nichtflüchtige Speicher mit CMOS-SRam aufbauen, wenn> man sich die Pufferung nicht gerade am nächsten> Sonderangebots-Krabbeltisch besorgt. Notfalls bei Militärtechnik suchen.>> Gruss Reinhard
Eine Lithium-Batterie funktioniert zur Zeit noch in einem 26 Jahre alten
Telefonapparat bei mir.
CMOS-SRAM hatten größere Telefonanlagen, und das funktionierte auch
zuverlässig. Die Anlagenprogrammierung mit mehreren Stunden Arbeit
sollte ja anschließend 10-20 Jahre beim Kunden halten, und von diesem
teils jederzeit und beliebig oft geändert werden können. Außerdem
verwendete der Anlagenrechner diesen Speicher selbst als RAM für den
eingebauten µC. In der Anfangszeit der Telefonanlagen mit Halbleitern
waren das mal Europa-Steckkarten voll mit 8085-Gedönse. Sonst würde der
Kunde dem Anbieter wohl an den Hals springen, und der Anlagenhersteller
wäre schnell vom Markt verschwunden.