Forum: Mikrocontroller und Digitale Elektronik SRAM ersatz für eeprom?


von Bubi (Gast)


Lesenswert?

Hallo,
ich bastel gerade an einer anwendung die ziemlich oft was im eeprom
schreiben/lesen muss (2 bytes).(ich will dem kontroller keinen extra
strom geben damit er die daten im ram behält). Nun war die überlegung,
dass ich einen SRAM baustein nehme (er kann beliebig oft beschrieben
werden) und ihn mit ner 5V z diode am leben erhalte (er sollte ja kaum
strom ziehen). Ist das machbar/ hat das schon mal jemand gemacht? genug
ports habe ich noch frei (12 pins)

von KoF (Gast)


Lesenswert?

hmm ich hab in meiner firma mal was von m-rams aufgeschnappt (magnetical
ram). die halten ihren inhalt auch ohne strom. war so vor einem jahr.
ich meine ebv konnte erste muster liefern. vielleicht werden die ja
jetzt schon von irgend einem distributor vertrieben.

von A.K. (Gast)


Lesenswert?

Zu SRAM mit eingebauter Pufferung guckst Du bei Reichelt unter
"zeropower".

Alternativ gibt's RAM mit 256 Bytes via I2C (240 Bytes wenn auch eine
RTC drin sein darf).

von A.K. (Gast)


Lesenswert?

Apropos - inwiefern sorgt eine Z-Diode für Strom?

von Bubi (Gast)


Lesenswert?

@AK: habe ich das gesagt?? Ich sagte: "er dürfte kaum strom
verbrauchen" für anwendungen, die so im mA Bereich liegen, sind
widestand,z-diode und n cap einfach ausreichend.

Meinst du zb DS 1307 bei reichelt? ZEROPOWER geht eindeutig über die
finazielle grenze es projektes. man könnte eins zwei bytes doch auch
mit transistoren basteln, oder?

von A.K. (Gast)


Lesenswert?

Ich dachte an PCF8583 (mit RTC) oder PCF8570 (ohne), wenn 56 Bytes ok
sind tut's der DS1307 aber auch und ist bei Knopfzelle etwas einfach
zu beschalten.

Ein Z-Diodenregler frisst als Parallelregler erheblich mehr Strom als
beispielsweise ein 78L05.

von A.K. (Gast)


Lesenswert?

Normales SRAM geht natürlich auch, insbesondere wenn so ein Teil noch
irgendwo rumliegt, wie beispielsweise ein 6116. Braucht aber deutlich
mehr Platz.

In diesem Fall musst Du freilich sorgfältig aufpassen, dass bei
Aus/Einschaltung vom Controller keine versehentlichen Schreibzugriffe
passieren können. Brownout-Detection ist also zwingend, und minderstens
ein Pullup an /CE.

Minimale Pincount gibt's dann mit 1 Datenbit, 4 Adressbits, 1 /CE und
1 /WE. Übrige Adressen und /OE an GND, übrige Daten per Widerstandarray
an GND.

von Peter D. (peda)


Lesenswert?

"ziemlich oft was im eeprom schreiben/lesen muss"


Was ist "ziemlich oft" ?

Und lesen kannst Du soviel Du willst.

Rechne doch erstmal durch, wieviele Jahre z.B. ein 24C16 hält, wenn man
immer auf die nächsten 2 Byte schreibt und nur, wenn sich auch was
geändert hat.

Bzw. FRAMs sind auch nicht teuer.

Eine Batterie würde ich immer als allerletzten Notnagel ansehen, da
wartungsaufwendig (Ladeschaltung) und potentielle Fehlerquelle (kann
auslaufen).


Peter

von A.K. (Gast)


Lesenswert?

Immer nur 2 Bytes wird schwierig. Woher weisst du wo der letzte Stand
sitzt? 4 Bytes - 2 Bytes Inhalt und 2 Bytes Timestamp/Sequenceno - ist
m.E. das Minimum.

Ach ja, für Anhänger unkonventioneller Lösungen hätte ich noch eine:
2xHC374. Braucht genau 12 Pins (8 Daten, 2 Clock, 2 /OE). Zu Brownout
und Co gilt das gleiche wie bei SRAM, also Pulldown an den Clocks.

von A.K. (Gast)


Lesenswert?

Und noch was für Liebhaber des Bizarren: 74HC593. Da ist der
Speichervorgang zwar etwas ungewöhnlich, aber dafür braucht's nur
einen billigen 16-pinner und ein paar Widerstände.

von bubi (Gast)


Lesenswert?

Danke erstmal für die vielen vielen antworten. Die anwendung macht im
prinzip folgendes: ein gerät gibt daten auf einem display aus, zum
beispiel
1) information1
2) information2
3) information3
jeweils zwei sekunden, dann bleibt information 3 stehen. gerät aus/ein
information3 bleibt stehen.
Ich mache folgendes:
1+2+3 einlesen schön formatieren wieder auf nem größerem display
ausgeben... nun soll das displaya und alles andere mit dem eigentl.
gerät ausgehen... (dann fehlen 1+2, welche ich je in nem byte unter
kriege)

Bei jeder bedienung ändert sich 1 oder 2 bei 365 tagen habe ich nur 273
zugriffe pro tag, danach ist der eeprom futschi (also die garantie des
herstellers ist futschi - ich wollte den internen des mega8 benutzen)

von A.K. (Gast)


Lesenswert?

Mega8 hat 512 Bytes EEPROM. Jedes Byte kann 100000 mal. Pro Vorgang
werden reihum 3 Bytes gespeichert (1 Byte Sequenzzähler, 2 Byte Daten).
Macht insgesamt rund 17 Mio Schreibvorgänge. Macht rund 4600 Zugriffe
pro Tag bei 10 Jahren Betriebsdauer.

von A.K. (Gast)


Lesenswert?

Zum besseren Verständnis siehe Atmel AVR Application Note 101 - "High
Endurance EEPROM Storage". Beschreibt ein etwas anderes Verfahren,
aber das gleiche Grundprinzip.

von Bubi (Gast)


Lesenswert?

Hey das ist ne ziemlich einfache lösung, dadruf bin ich gar nicht
gekommen. das ist so simpel und doch so wirkungsvoll. danke!

von dave (Gast)


Lesenswert?

Wenn man dann noch davon ausgeht, dass die Dinger schon 1-5Mio Zyklen
halten...

von Thomas O. (Gast)


Lesenswert?

Hallo,

und noch ein Tip, schreibe die Daten immer ein 3 Felder weiter so das
nicht immer die gleichen Speicherzellen verwendet werden.

von dave (Gast)


Lesenswert?

Das war eigentlich der Lösungsansatz von A.K.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.