Alternativen zur Verwendung von EEPROM


9

Nach meinem Verständnis ist das EEPROM Teil eines Computers (in meinem Fall eines AVR-Mikrocontrollers), der Daten speichert und auch dann festhält, wenn das Gerät vollständig heruntergefahren wird. Es ermöglicht das Schreiben und Lesen von Daten.

Das Problem, das ich sehe, ist, dass es ein endliches und ein ziemlich kurzes Leben hat. Mit anderen Worten, ich kann nur eine begrenzte Anzahl von Malen lesen / schreiben, bevor ich das EEPROM abnehme.

Was ich suche, ist eine Möglichkeit, die gleiche Funktionalität wie das EEPROM zu erreichen, jedoch in einem kleinen Formfaktor. Ich nehme an, ich kann so etwas wie eine microSD-Karte verwenden, aber ich würde eine Lösung bevorzugen, bei der der Benutzer keine Speicherkarte kaufen muss. Außerdem brauche ich höchstens ein paar Bytes Speicherplatz. Sagen wir einfach 1 kB, um sehr, sehr konservativ zu sein. Ich würde mehr als nötig ausgeben, um eine Speicherkarte jeglicher Art unterzubringen.

Also, was sind meine Optionen? Gibt es gängige IC-Lösungen, mit denen ich diese Art des Speicherns / Abrufens von Daten ohne kurze Lebensdauer und hohe Kosten erreichen kann?


3
Wie oft müssen Sie diese wenigen Bytes speichern? Das ist hier die Schlüsselfrage. Ist es jede Minute? Stunde? Millisekunde?
Gustavo Litovsky

Das EEPROM eines ATmega32 hat beispielsweise eine Lebensdauer von 100.000 Schreib- / Lesezyklen. Das könnte je nach Anwendung mehr als genug sein.
m.Alin

3
Sie sagten "Ich kann nur eine endliche Anzahl von Malen lesen / schreiben, bevor ich das EEPROM abnehme", was nicht ganz richtig ist. Sie nutzen das EEPROM mit Schreibvorgängen, aber Lesevorgänge sind im Allgemeinen nicht beschränkt.
Das Photon

@GustavoLitovsky Sagen wir einmal pro Minute. In diesem Fall dauert ein ATmega32, der ständig eingeschaltet ist, zwei Jahre. Ich denke, das ist in Ordnung, wenn ich es relativiere.
Capcom

@ ThePhoton Ah, ok. Das habe ich nie gewusst, danke. Nicht, dass es irgendetwas ändert, da ich sowohl Lesen als auch Schreiben benötige.
Capcom

Antworten:


4

Ja, ein EEPROM ist eine Art nichtflüchtiger Speicher, der Daten auch ohne Strom über einen längeren Zeitraum speichern kann (die tatsächliche Zeit hängt von der Temperatur und anderen Bedingungen ab).

Es gibt einige andere nichtflüchtige Lösungen, die Sie berücksichtigen sollten:

1) Interner Flash-Speicher - Die meisten Mikrocontroller verfügen heutzutage über Flash zur Codespeicherung und einige bieten es auch für Benutzerdaten und Protokollierung an. Dies hat auch begrenzte Schreibzyklen und erfordert das Löschen von Blöcken, bevor die Bits von '1' auf '0' geändert werden (Sie speichern Daten in der Zwischenzeit an einer anderen Stelle und schreiben sie dann neu).

2) Interner FRAM-Speicher - TI verfügt über Geräte mit nichtflüchtigem FRAM-Speicher, auf die sehr einfach zugegriffen werden kann (wie an jedem anderen Speicherort). Lesevorgänge sind auch beim Schreiben destruktiv (obwohl dies in Ihrem Fall möglicherweise keine Rolle spielt, da die Anzahl der Zyklen 10 beträgt ^ 13 oder so bei 85 Grad Celsius).

3) Externer Flash-Speicher - Sie können Speicher extern hinzufügen, um ein paar Megabit Daten relativ kostengünstig zu speichern.

Abhängig von der Rate, mit der Sie sparen möchten (und ob Sie das System ordnungsgemäß herunterfahren können), können Sie möglicherweise die effektive Anzahl der für Sie verfügbaren Zyklen erhöhen.


12

Der Weg, um die Dauerhaftigkeitsbeschränkung des EEPROM zu überwinden, besteht darin, einen Verschleißausgleichsalgorithmus anzuwenden. Grundsätzlich weisen Sie jedem Datensatz, den Sie speichern möchten, den N-fachen Speicherbedarf und einen entsprechenden Speicherplatz für N-Indexwerte zu. Verwenden Sie dann die Inferenz, um herauszufinden, welcher Datensatz der "aktuelle Datensatz" und welcher der nächste zu schreibende Datensatz ist zu. Es ist in diesem AVR App Note gut beschrieben .


7

Eine andere mögliche Lösung ist ein Stück statischer Stößel und eine Batterie. Dies hat eine begrenzte Lebensdauer, da der Akku irgendwann leer wird, in Schreibzyklen jedoch unbegrenzt. Sie können auch einen großen Kondensator verwenden, um ihn mit Strom zu versorgen, wenn Sie wissen, dass Ihre Ausfallzeit einen kleineren Wert haben wird. Eine Lithium-Knopfzelle kann in einer solchen Anwendung eine lange Lebensdauer haben, wenn Sie sie richtig gestalten.

Es gibt auch Teile, die eine RTC, ein NVRAM und eine Batterie (um die Uhr am Laufen zu halten) in einem Teil enthalten. Diese haben den Nachteil, dass Sie bei Ausfall der internen Stromquelle den gesamten Teil (nicht nur den Akku) verloren haben. Je nachdem, wie lange Ihr Produkt halten soll, ist dies möglicherweise kein Problem.


2

Ich weiß nicht, wie hoch Ihr Budget ist, aber vielleicht möchten Sie sich MRAM ansehen , das so schnell wie DRAM ist, aber nicht so flüchtig wie Flash. Diese sind natürlich viel teurer als EEPROM-Chips.

Ich habe vor Jahren eine Reihe von Beispiel-ICs von Freescale, hatte aber nie die Möglichkeit, sie zu verwenden. Daher kann ich nicht wirklich sagen, ob Sie am Ende eine viel einfachere Schaltung haben, als wenn Sie eine SD-Karte anschließen müssen Slot.


1

Ich bin eher ein Computer-Typ als ein Elektrotechniker, aber ich denke, es gibt einen anderen Ansatz für das Lebenszyklusproblem des Flash-Speichers:

Mein Verständnis ist, dass das Lebenszyklusproblem bei Flash tatsächlich eine Frage des Löschens und nicht des Schreibens ist. Sie können so oft schreiben, wie Sie möchten, mit Ausnahme des kleinen Details, dass die Schreibvorgänge nur in eine Richtung erfolgen.

Da der Speicher, den Sie benötigen, im Vergleich zur Größe selbst kleiner Geräte winzig ist, können Sie ihn (vorausgesetzt, Sie haben ausreichend niedrigen Zugriff auf die Hardware) mehrmals an einem anderen Ort ausschreiben. Stellen Sie sicher, dass Ihre Daten vom ungeschriebenen Speicher unterschieden werden können (füllen Sie ihn gegebenenfalls auf), und die zuletzt geschriebene Zelle ist der aktuelle Wert.

Wenn Ihre Daten tatsächlich ein Zähler sind, der einmal pro Schreibvorgang inkrementiert wird, können Sie noch mehr daraus herausholen, indem Sie sie überhaupt nicht schreiben, sondern ein Bit pro Tick ausschreiben. Die Anzahl ist die Anzahl der geschriebenen Bits.


1

Das serielle NVSRAM von Microchip passt möglicherweise zu Ihrer Rechnung:

Serial NVSRAM offers non-volatile RAM storage and is ideal for applications that need to write very often to the memory. This device is significantly lower cost than other non-volatile RAM devices and the data is backed using an external battery. This 8-pin, SPI device supports unlimited instantaneous writes to the memory array, making it ideal in applications such as meters, data loggers, data recorders, black boxes. These devices are available in 512Kbits and 1Mbit densities.

Diese serielle Speicherfamilie unterstützt die Batteriesicherung. Das Datenblatt erwähnt die Stromaufnahme von 1ua aus der Batterie. Der Preis beträgt weniger als $ 2 in 1K-Menge und kostenlose Muster werden von Microchip angeboten. ICs sind in hobbyfreundlichen PDIP- und SOIC-Paketen erhältlich.


1

Möglicherweise möchten Sie sich mit dem seriellen FRAM befassen. Der Haupthersteller scheint Cypress (geb. Ramtron) zu sein. Hier ist ein Teil:

http://www.cypress.com/?rID=73530

Es ist in großen Größen erhältlich (das größte, das ich je gesehen habe, ist 2 Mbit), es ist protokollkompatibel mit MRAM oder Flash, es ist Byte lesbar, ohne dass es gelöscht werden muss, es ist schnell - Schreibvorgänge halten mit dem SPI-Protokoll Schritt - und das Die Retention ist lächerlich hoch.

Das heißt, es ist ein bisschen schwer zu finden. Nicht viele Händler führen es und diejenigen, die sofort ausverkauft zu sein scheinen --- Cypress hat ein eigenes Geschäft (auch kostenloser Versand) und zwischen mir bestellt sie zwei FM25V04-Teile, die sie ausverkauft haben. Anscheinend sechs Wochen Vorlaufzeit ...

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.