SPI-Flash memory Standard-Protokoll?

Gast #4001692
Lesenswert?

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!
#4001700
Lesenswert?

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.
#4001710
Lesenswert?

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.
#4002045
Lesenswert?

> 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).
#4002116
Lesenswert?

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.
Gast #4002830
Lesenswert?

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.
Gast #4003115
Lesenswert?

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...

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