Hallo allerseits, für einen Datenlogger benötige ich ein 256 Mbit SPI flash memory. Ein solches Teil ist rasch gefunden und ich nehme natürlich gerne ein günsitges Exemplar - doch was ist, wenn das Teil irgendwann nicht mehr verfügbar ist? Könnte ich dieses austauschen, auch durch ein Flash eines anderen Herstellers? Mit andern Worten: Gibt es Standard-Protokolle zum Ansprechen der (SPI) Flash-Speicher, welche von mehreren Herstellern verwendet werden? Wie finde ich ein solches Flash? Danke für die Hinweise!
Tobias schrieb: > Mit andern Worten: Gibt es Standard-Protokolle zum Ansprechen der (SPI) > Flash-Speicher, welche von mehreren Herstellern verwendet werden? Gewissermassen. Das Protokoll der SD-Cards. Auf die üblichen Dataflashes von Atmel/Microchip/... trifft das m.W. nicht zu. Die sind nicht einmal zu sich selber kompatibel, wenn man die verschiedenen Chips eines Herstellers über die Jahre betrachtet.
SPI Flash Speicher sind in den Grundbefehlen kompatibel, nur die beknackten Atmel Data Flashes fallen sowohl beim Pinout als auch bei den Befehlen komplett aus dem Schema. Offensichtlich wollte sich dort jemand verwirklichen und etwas erfinden, was komplett inkompatibel zu allen anderen ist. Wenigstens Lesen (ab Adresse 0) und ID auslesen ist der normale Befehl. Aber wenn du Micron M25P, Spansion S25, Winbond W25 oder halt die Adesto AT25 Reihe nimmst, bist du auf der sicheren Seite. Die sind kompatibel. Nimm am besten gleich das SO16 wide Gehäuse, das haben auch irgendwie alle im Programm.
Für 256 MBit reichen 24 bit Addressierung nicht mehr aus. Der Spansion S25FL256S hat ein Bank Address Register, die Frage ist jetzt ob das alle Hersteller gleich machen, d.h. ob Einigkeit der Hersteller über die Commands/Format besteht.
Christian R. schrieb: > Nimm am besten gleich das SO16 wide Gehäuse, das haben > auch irgendwie alle im Programm. Da hab ich schon andere Erfahrungen gemacht, plötzlich war wide nicht mehr lieferbar. Ich hab dann einen Footprint gebaut, auf den beide passen. MfG Klaus
> nur die > beknackten Atmel Data Flashes fallen sowohl beim Pinout als auch bei den > Befehlen komplett aus dem Schema. Es sind halt DATA Flashes. Um bei einem 25P80 ein paar Bytes zu ändern, muß man 64K auslesen, den 64K Sektor löschen und dann wieder zurückschreiben. Da die wenigsten Mikrocontroller 64K freies RAM haben, müsste man die Daten in einem anderen Sektor zwischenspeichern oder eine Zuordnungstabelle verwalten. Bei einem M25P80 dauert die ganze Aktion lt. Datenblatt ca. 0,8 Sekunden (ohne Transferzeit und mit Speicherung der 74K im Controller-RAM). Bei einem Atmel Dataflash dagegen kann man eine Page in einen der beiden Puffer lesen, dort einzelne Bytes überschreiben und dann wieder den Puffer in das Flash Array zurückschreiben lassen. Dauert bei einem AT45DB081 ca. 20ms komplett. In diesem Fall ist der Dataflash ca. 40x schneller und braucht für die ganze Aktion kein zusätzliches RAM im Controller. Allerdings gibt es sie meines Wissens nach nur bis 64 MBit (AT45DB624).
Die Atmel Datenflash sind auch NOR Flash, im Gegensatz zu allen anderen, welche NAND Flash sind.
Postkunde schrieb: > Die Atmel Datenflash sind auch NOR Flash, im Gegensatz zu allen anderen, > welche NAND Flash sind. Nicht alle. So sind auch die Microchip/SST Typen offenbar NOR Flash, aber wie Atmel wohl auch nur bis 64Mbit erhältlich. Bei 32Mbit kann man noch byteweise schreiben, bei 64MBit nur noch in 256 Byte Pages. Grad bei einem Datenlogger kann dieser Unterschied von Bedeutung sein. Wenn man nämlich sicherstellen will, dass die Daten im Flash bei Abschaltung aktuell sind, ohne vorher das System eigens runterfahren oder mit Notstrom arbeiten zu müssen. Dazu ist es sehr nützlich, wenn man byteweise schreiben kann.
Das SO16 Wide Gehäuse haben doch alle im Angbot, die meisten auch SO8 aber bei den ganz großen nicht immer. Klar hat DataFlash auch Vorteile, aber deswegen muss ma doch nicht das Protokoll komplett umschmeißen. Die Flashes >128MBit sind wegen der Adressierung in der Tat immer mal verschieden.
Vieleicht waeren fuer das Protokol auch Lizenzgebuehren faellig gewesen..
Christian R. schrieb: > Aber wenn du Micron M25P, Spansion S25, Winbond W25 oder halt > die Adesto AT25 Reihe nimmst, bist du auf der sicheren Seite. > Die sind kompatibel. Nimm am besten gleich das SO16 wide Gehäuse, > das haben auch irgendwie alle im Programm. +1 aber nur bis 128 MBit, für Feiglinge bis 64 MBit. Aber das sind auch nur 2 bis 4 Chips... Zum Ausgleich hab' ich mich getraut, schmale SO-8 Gehäuse zu verwenden.
Danke für die hilfreichen Hinweise. Einen Standard-Befehlssatz gibts hier offenbar nur begrenzt, was aber sicher auch durch die oft unterschiedliche Gliederung verursacht wird. Ich werd' da mal die Hersteller anfragen. Eine andere Idee wäre natürlich eine SD Karte, welche in China mit Slot nicht mal teurer ist. Der Controller bietet leider kein Platz um ein Filesystem zu verwalten - aber da kann ich ja via SPI auch ohne FS drauf schreiben und lesen, oder? Ein wear leveling sollte die Karte ja schon selbst machen... Ich denk', ich muss da mal etwas nachforschen...
Tobias schrieb: > aber da kann ich ja via SPI auch ohne FS drauf > schreiben und lesen, oder? Natürlich. Macht ein Betriebssystem ja auch. > Ein wear leveling sollte die Karte ja schon > selbst machen... Und zwar wesentlich mehr als die 128Mbit Flashes. Wobei ein sequentieller Datalogger eigentlich keines brauchen sollte.
Such die mehrere Bausteine die Package und Pinkompatibel sind. Die SPI Library muss dann jedes mal anpassen ;-) immer noch einfacher als drauf hoffen dass das funktionieren wird ;-))
Tobias schrieb: > Wie finde ich ein solches Flash? Such mal nach "microSD". Da gibt es genügend Hersteller.
Tom schrieb: >> Wie finde ich ein solches Flash? > > Such mal nach "microSD". Da gibt es genügend Hersteller. Das klingt interessant. Leider finde ich da nur die microSD Karten. Gibts unter diesem Namen auch Flash chips mit kompatiblem Befehlssatz?
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.