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
Schau mal unter FRAM, im SO8 Gehaeuse, nicht zu teuer. Oder NOR Flash zB AT45DB040
5V schränkt die Suche natürlich deutlich ein, es wird immer weniger. Falls du oft und/oder schnell schreiben willst: FRAM. MB85RC256 wären 32k, kannst mehrere an den Bus hängen.
H.Joachim S. schrieb: > Falls du oft und/oder schnell schreiben willst: FRAM. Es muss nicht schnell sein und oft auch nicht. Eigentlich 1x bei der Inbetriebnahme und dann vllt. ab & zu mal im Jahresverlauf.
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
Adam P. schrieb: > 64 kybtes sollten es dann schon mindestens sein Der 24C512 wird gerne genommen. 128-Byte Page Write Mode: – Partial page writes allowed
Peter D. schrieb: > Der 24C512 wird gerne genommen. Ja der würde sogar ausreichen. Hab noch die gefunden: - 25CSM04 - M95M04 Wobei ich zu den zweien auf die schnelle keine Bsp.-Library gefunden habe. Das würde die Entwicklungszeit deutlich verkürzen.
Erstmal vielen Dank! Ich bestell mir zum Ausprobieren nun die 2 Stück: - AT24C512B - AT24CM02
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 .....
weiter weg schrieb: > Das sind I2C-Speicher, die sind naturgemäss etwas langsamer im > Zugriff als ihre SPI-Kollegen. Vielleicht ist dir das noch nicht > geläufig ..... Doch klar ist mir das geläufig. Wie kommst du darauf? Habe bereits erwähnt: Adam P. schrieb: > Es muss nicht schnell sein
Wurden die 23LCV1024 schon genannt? Die gibts (noch?) in DIP, sind SPI und 5V
EAF schrieb: > Wurden die 23LCV1024 schon genannt? > Die gibts (noch?) in DIP, sind SPI und 5V Das ist doch SRAM?
Adam P. schrieb: > Das ist doch SRAM? Ja, verschleißfrei! Schnell. 20MHz? Also schneller als dein Mega je sein könnte. Relativ leicht für Bastler zu montieren. Und eine Li Knopfzelle kostet nun wirklich nicht die Welt.
EAF schrieb: > Ja, verschleißfrei! EAF schrieb: > Und eine Li Knopfzelle kostet nun wirklich nicht die Welt. OK, vllt. für nächstes Projekt :) Bei diesem spielt es keine Rolle.
Adam P. schrieb: > Bei diesem spielt es keine Rolle. Du wolltest einen 5V Speicher. Ich habe dir einen genannt. Mehr nicht.
EAF schrieb: > Du wolltest einen 5V Speicher. > Ich habe dir einen genannt. > > Mehr nicht. Ja alles gut, die Idee ist nicht schlecht, aber die Suche bezog sich auf EEPROM/Flash. Grund: Falls die Knopfzelle doch mal leer sein sollte, wären 100+ eingelernte Kabelverbindungen weg...das wäre blöd.
>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.
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
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
externers SPI flash 2-8MB und SPIFFS brauch keine 4Kb nur 2x 256kb RAM
Hallo, im Angebot wären https://www.mouser.de/c/semiconductors/memory-ics/f-ram/?product%20type=FRAM&supply%20voltage%20-%20max=5.5%20V&instock=y
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.
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.
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.
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
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.
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
Patrick L. schrieb: > Dies als Tipp, wen du bei deinem µC FRAM als externen Speicher nutzen > willst. > > Du kannst ihn nutzen wie ein normales externes RAM. Werde ich mir merken. Hatte schon oft den Wunsch etwas im "RAM" zu halten, was nach einem Reset von Vorteil wäre, es wieder zu haben.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.