Forum: Mikrocontroller und Digitale Elektronik SPI-Flash memory Standard-Protokoll?


von Tobias (Gast)


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!

von (prx) A. K. (prx)


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.

von Christian R. (supachris)


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.

von Lattice User (Gast)


Lesenswert?

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.

von Klaus (Gast)


Lesenswert?

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

von Joerg W. (joergwolfram)


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

von Postkunde (Gast)


Lesenswert?

Die Atmel Datenflash sind auch NOR Flash, im Gegensatz zu allen anderen, 
welche NAND Flash sind.

von (prx) A. K. (prx)


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.

von Christian R. (supachris)


Lesenswert?

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.

von Postkunde (Gast)


Lesenswert?

Vieleicht waeren fuer das Protokol auch Lizenzgebuehren faellig 
gewesen..

von Schaulus Tiger (Gast)


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.

von Tobias (Gast)


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

von (prx) A. K. (prx)


Lesenswert?

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.

von Ursus P. (unwichtig)


Lesenswert?

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 ;-))

von Tom (Gast)


Lesenswert?

Tobias schrieb:
> Wie finde ich ein solches Flash?

Such mal nach "microSD". Da gibt es genügend Hersteller.

von Tobias (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.