Forum: Mikrocontroller und Digitale Elektronik Zusatzspeicher für AVR, EEprom, Fram, Flash??


von Dennis (Gast)


Lesenswert?

Hallo,

Ich benötige an einem AVR-Projekt etwas mehr nichtflüchtigen 
Zusatzspeicher. Nur bin ich im Moment völlig durcheinander, was ich da 
nehmen soll. EEProm, Flash, FRam..???
Ich schreibe mal, worauf es mir ankommt, vielleicht kann dann jemand 
meinen Gedanken die richtige Richtung geben.

- 512Byte-1K je 8Bit wären toll, gerne mehr.
- Zugriffszeit unwesentlich, kann auch total langsam sein.
- BYTEweises lesen und schreiben. NICHT(!) blockweise!
- möglichst wenig Portleitungen, also seriell, etc.
- zuverlässiger Datenerhalt ohne Spannung für min. 1-2 Jahre.
- Mein AVR läuft an 5V, möglichst keine/wenig Pegelwandlung.
- IO-Protokoll, das einen nicht den letzten Nerv kostet.
- bezahlbar und auf diesem, oder benachbartem Planeten erhältlich.

Gruss
Dennis

von Andreas K. (a-k)


Lesenswert?

Bei 1KB ist EEPROM via I2C oder SPI wohl er einfachste Weg. Lässt sich 
byteweise schreiben und ist problemlos und günstig für 5V erhältlich.

von Timmo H. (masterfx)


Lesenswert?

Ich hätte jetzt einfach ein serielles I²C EEPROM mit 4KB-16KB genommen 
(z.B. ST 24C128, 24C32). Kostet zwischen 0,35-1,05€

von B e r n d W. (smiley46)


Lesenswert?

Vorsicht, ein EEPROM funktioniert immer Blockweise, jedoch wird das 
intern gehandhabt. Einen Block in den Buffer lesen, 1 Byte geändert, 
Buffer zurückschreiben. Dadurch wird immer auf 8 bzw. 16 Bytes 
geschrieben.
EEPROMS lassen nur eine maximale Anzahl Schreibvorgänge zu. Je nach 
Datenblatt z.B. 10^6. Das sind bei einem Schreibvorgang pro Sekunde 
1.000.000/3600=277 Stunden. Ein Flash hat das selbe Problem. Für sowas 
geht dann nur ein RAM.

Man könnte 1 - 10 Minuten im normalen Ram arbeiten und dann den Wert 
einmal wegspeichern.

Ein Flash bietet viel Speicher, wie z.B. 512KByte. Ein 29F040 
funktioniert ganz gut, wenn man sich mit der Ansteuerung Mühe gibt. 
Gelöscht wird blockweise, hier 64 kByte. Dann sind alle Zellen auf 0xFF. 
Schreiben kann man byteweise. Das ist gut, um etwas zu loggen wie z.B. 
der Fehlerspeicher beim Auto.

Dann gibt es gebufferte RAMs mit Huckepack - Batterie. Zur 
Datensicherheit könnten die Daten doppelt gespeichert werden, jeweils 
mit Checksumme. Stimmt eine der Checksummen nicht, wird der defekte Teil 
wiederhergestellt.

Es gibt I2C Uhren mit eingebautem RAM oder gleich ein PCF8570 mit 256 
Byte statischem Ram. Hier ist auch eine Pufferbatterie notwendig.

von Ulrich P. (uprinz)


Lesenswert?

Schaut mal bei den FRAMs nach, die gibt es im Pinout eines EEPROMs mit 
nahezu identischer Ansteuerung. Kein Blockmanagement, keine Delays und 
keine begrenzte Anzahl Schreibzugriffe. 4..128kByte kosten 3..10€.

Ramtron FM24Cxx sollten für diese Anwendung ideal sein, das Interface 
kann man sich aussuchen: SPI oder I2C.

Gruß, Ulrich

von Andreas K. (a-k)


Lesenswert?

Bernd Weeber wrote:

> Vorsicht, ein EEPROM funktioniert immer Blockweise, jedoch wird das
> intern gehandhabt. Einen Block in den Buffer lesen, 1 Byte geändert,
> Buffer zurückschreiben.

Aber das ist doch genau der Unterschied zwischen Flash-ROM und EEPROM. 
EEPROMs können byteweise geschrieben werden, ohne interne blockweise 
read-modify-write Zyklen durchführen zu müssen. Dass EEPROMs oft auch 
optional in pages und/oder Blöcken operieren können hat eher mit der 
Schreibrate zu tun, denn ein 64KB EEPROM nur einzelbyteweise 
vollzuschreiben dauert recht lang.

Siehe Microchip AN1019.

von Timmo H. (masterfx)


Lesenswert?

NOR-Flash kann auch byteweise geschrieben werden

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.