Suche Speicher-IC (EEPROM / Flash)

#6996419
Lesenswert?

Morgen zusammen,

für ein kleines Projekt mit einem ATmega2560 suche ich ein externen 
Speicher, da die internen 4 kbytes EEPROM leider nicht ausreichen.

Meine Recherchen haben mich eher verunsichert als, dass ich das perfekte 
Produkt gefunden hätte.

Mein Wunsch war eine kleine Platine mit dem IC drauf, Arduino-Style -
doch da habe ich nichts passendes gefunden:
Ein einzelnes IC und eine 8 Pin SOIC Adapterplatine wirds auch tun.

64 kybtes sollten es dann schon mindestens sein, mehr ist immer besser.

Die meisten verwenden SPI mit max 3,6V...
5V wird man wohl nicht finden, oder?

OK, da könnte ich ein Pegelwandler dazwischen hängen, doch welche sind 
für höhere Geschwindigkeiten ausgelegt.
Die "YF08E" habe ich mal mit einem Frequenzgenerator und Oszi getestet, 
da sah das Signal bei 1MHz nicht mehr so dolle aus.

Gefunden habe ich ICs von Winbond und Macronix (64 Mbit / 16 Mbit).
So wie ich es richtig gesehen habe, benötigt man bei denen einen 4 kbyte 
Buffer um zu lesen/schreiben? Das ist natrülich schon viel.
2 kbyte könnte ich spendieren, gibt es evtl. noch kleinere Page Größen?

Hoffe Ihr habt ein paar Ideen.
Gruß Adam
Gast #6996439
Lesenswert?

Adam P. schrieb:
> So wie ich es richtig gesehen habe, benötigt man bei denen einen 4 kbyte
> Buffer um zu lesen/schreiben?

Du musst dir erst mal klar werden dass es Flash Speicher und
EEPROM Speicher gibt. Bei Flash brauchst du internen Speicher
um mindestens eine Page zu progrsmmieren. Bei EEPROMs kannst
du jede Zelle einzeln beschreiben und brauchst damit keinen
Buffer.

EEPROMs haben eher ihre Grenzen in der Speichergrässe, aber
für deine Erfordernisse könnte es gerade noch welche geben.

https://www.mouser.de/c/semiconductors/memory-ics/eeprom/?interface%20type=3-Wire%2C%20SPI&memory%20size=1%20Mbit
Gast #6997556
Lesenswert?

Peter D. schrieb:
> 128-Byte Page Write Mode:
> – Partial page writes allowed

weiter weg schrieb:
> Bei EEPROMs kannst
> du jede Zelle einzeln beschreiben und brauchst damit keinen
> Buffer.


Adam P. schrieb:
> Ich bestell mir zum Ausprobieren nun die 2 Stück:
> - AT24C512B
> - AT24CM02

Das sind I2C-Speicher, die sind naturgemäss etwas langsamer im
Zugriff als ihre SPI-Kollegen. Vielleicht ist dir das noch nicht
geläufig .....
#6999717
Lesenswert?

Christoph db1uq K. schrieb:
>>ATmega2560
> der Mega2561 hat ein "external Bus interface", damit kann man den
> Speicher bis 64 k ausbauen, allerdings kostet es viele I/O-Pins. Also
> z.B. batteriegepuffertes SRAM oder ein paralleles EEPROM.

hat der Mega2560 auch...

hier schon für 32k mit Arduino-Integration vorbereitet: 
https://github.com/MasteringTheMess/Mega2560-XMEM

muß man nur noch den Speicherbaustein via Latch an den µC flanschen
#6999749
Lesenswert?

Vielen Dank an alle.

Die Idee mit einem gepuffertem SRAM werde ich mir im Hinterkopf 
behalten, vllt. kommt ja mal ein Anwendungsfall.
Die FRAM werde ich in Zukunft auch mal ausprobieren.

Heute kamen die AT24C512 und AT24CM02 an.
Der AT24C512 funktioniert wie er soll.

Grüße
#6999866
Lesenswert?

Adam P. schrieb:
> Die Idee mit einem gepuffertem SRAM werde ich mir im Hinterkopf
> behalten, vllt. kommt ja mal ein Anwendungsfall.
> Die FRAM werde ich in Zukunft auch mal ausprobieren.

Batteriegepuffertes SRAM oder FRAM benutzt man nur, wenn man eine SEHR 
hohe Schreibzyklenzahl braucht oder zu faul ist, eine passende 
Speicherfunktion zu programmieren, welche die Schreibzugriffe minimiert.

https://www.mikrocontroller.net/articles/Speicher#EEPROM-Schreibzugriffe_minimieren

Für normale Kalibrierdaten oder Geräteeinstellungen, die nur selten bis 
mäßig oft geschrieben werden, ist das gute, alte EEPROM genau das 
Richtige. Wobei die auch meistens 1 Million Schreibzyklen pro Zelle 
vertragen. Da muss man schon VERDAMMT oft Kalibrierdaten speichern, um 
das zu erreichen.
Gast #6999872
Lesenswert?

Falk B. schrieb:
> Batteriegepuffertes SRAM oder FRAM benutzt man nur, wenn man eine SEHR
> hohe Schreibzyklenzahl braucht oder zu faul ist, eine passende
> Speicherfunktion zu programmieren, welche die Schreibzugriffe minimiert.

FRAM leiden unter Lesezugriffen genau so, wie beim Schreiben.
Die Zyklen sind also begrenzt.
Sehr viele, aber begrenzt.
SRAM kennt diese Grenze nicht.
#6999873
Lesenswert?

Falk B. schrieb:
> Für normale Kalibrierdaten oder Geräteeinstellungen, die nur selten bis
> mäßig oft geschrieben werden, ist das gute, alte EEPROM genau das
> Richtige. Wobei die auch meistens 1 Million Schreibzyklen pro Zelle
> vertragen. Da muss man schon VERDAMMT oft Kalibrierdaten speichern, um
> das zu erreichen.

Ja, so habe ich mir das halt auch gedacht.
(Firma: S-C-I DATA GbR) #6999879
Lesenswert?

Falk B. schrieb:
> FRAM benutzt man nur, wenn man eine SEHR
> hohe Schreibzyklenzahl braucht oder

..oder es wie ein RAM benutzen will, oder die Schnelligkeit der FRAM 
nutzt.

Ich verwende wen immer möglich anstelle von EEPROM oder FLASH, ein FRAM, 
da sie keine Löschzyklenzeit brauchen und auch so schnell schreiben wie 
es der BUS zulässt.
Nicht nur die hohe R/W Zyklenzahl, sondern auch die Schnelligkeit, und 
den Stromverbrauch, machen die FRAM interessant.

Bei den MSP430FRXXXX Verwende ich gerne das FRAM (Teil Protected für 
Software und Teil Unprotected als Datenspeicher (F)RAM.
Somit umgehe ich die meist zu geringe RAM Kapazität in den µC.

Habe noch den Vorteil das bei Stromunterbrechung der Speicher erhalten 
bleibt.

Dies als Tipp, wen du bei deinem µC FRAM als externen Speicher nutzen 
willst.

Du kannst ihn nutzen wie ein normales externes RAM.

73 55
(Firma: S-C-I DATA GbR) #6999906
Lesenswert?

Rüdiger B. schrieb:
> Warum nimmst du keine SD-Karte ?

Warum der TO diese nicht nutzt weiss ich nicht,
Aber wenn die Daten nicht Portable sein müssen, dann ist mir der 
Overhead
an Konfigurationen/Software/Management zu groß und die 
Lösch-/Schreib-/Lese- Zeit einfach zu Träge.

SD Karten habe ihre Vorzüge wenn die Daten, Portabel sein sollen.
Aber nur als Zwischenspeicher ist ein externes FRAM einfacher und 
schneller.
#7000033
Lesenswert?

Patrick L. schrieb:
> Rüdiger B. schrieb:
>> Warum nimmst du keine SD-Karte ?
>
> Warum der TO diese nicht nutzt weiss ich nicht,
> Aber wenn die Daten nicht Portable sein müssen, dann ist mir der
> Overhead
> an Konfigurationen/Software/Management zu groß und die
> Lösch-/Schreib-/Lese- Zeit einfach zu Träge.
>
> SD Karten habe ihre Vorzüge wenn die Daten, Portabel sein sollen.
> Aber nur als Zwischenspeicher ist ein externes FRAM einfacher und
> schneller.

Weil das sowas von überdimensioniert wäre.

1 Datensatz beträgt nach ersten Einschätzungen ca. 533 Byte.
Maximal sind zur Zeit 100 Datensätze angedacht = max. 64 KByte

Außerdem die ganze SPI Implementation mit SD Protokoll usw...
muss nicht sein, bei so wenig.

Da ist eine Abwandlung von diesem schneller abgeändert und eingebunden:
https://www.nongnu.org/avr-libc/examples/twitest/twitest.c
#7000057
Lesenswert?

Die entschiedung hab ich auch machen mussen vor 8 Jahren und bin froh 
das ich doch SD gewaehlt habe und nicht SPI/I2C basierte eeprom
* SD war einfach implementiert mittels FatFS
* Benutze ich mittlerweile fuer viel mehr sachen so wie error logging, 
bootloading via sd-karte usw
* Ich habe immer gerne fuer jeden chip ein second source.
* Ich benutze 2GB

Grusze Patrick aus die Niederlaende

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren