avr schrieb:
> Gibt es einen Standard, der das Protokoll und die verschiedenen Modi
> beschreibt, den viele Speicherbausteine implementieren:
>
> Command -> Address -> Dummy bytes -> Daten ...
>
> Der Command bestimmt, wie Daten gelesen/geschrieben werden. Z.B.
> FastRead( 0x0B) oder QuadIO (0xEB).
Leider totales Chaos. Abgesehen von Write Enable, Write Disable, Read
Status Reg., dem Urahn-Read 0x03 und Urahn-Page Program 0x02 kocht jeder
sein eigenes Süppchen. Vielfach ähnlich, aber dann mit subtilen
Unterschieden.
Und bisweilen mit kleinen undokumentierten Gemeinheiten.
Wenn's um die "schnelleren" Modi geht, wird's erst richtig
phantasievoll.
Aber das ist trotzdem alles noch halbwegs mit ein paar Tabellen
halobwegs zu handhaben.
Richtig lustig wird's bei OctoSPI ...
Und das erwähnte SFDP hilft leider nur begrenzt. Eher ein großer
Suppentopf, in dem man einfach alles und jedes Gemüse (schön klein
geschnippelt) hineingeworfen hat. Sprich, da findet sich auch die
exotischte Idee noch in Stein gemeißelt. Ganz abgesehen davon sind mir
schon etliche Chips untergekommen, die lt. Datenblatt und Datecode
SFDP-Daten drin haben sollten. Ja, das Kommando geht auch, nur leider
herrscht in dem Datenblock gähnende Leere.
Und mancher Hersteller macht aus dem Datenblock noch ein extra Geheimnis
(so etwa: Contact factory for details ...).
Bei OctoSPI kann man selbst die ID und auch die SFDP-Daten (wenn
überhaupt vorhanden) nicht ohne diverse Versuche mit unterschiedlichen
Parametern ermitteln, da das Kommando 1 oder 2 Byte lang, die Adressen 3
oder 4 Byte lang sein können und die Anzahl der Dummy-Bytes auch nicht
festgelegt ist.
Ach ja, die ID, machmal sind es drei Bytes, die endlos wiederholt
werden, manchmal kommen nach den dreien nur noch lauter 0x00, manchmal
noch eine "erweiterte ID".
Da kommt Freude auf ...