SPI Speicher Manufacturer ID auswerten

OP #7236415
Lesenswert?

Bei SPI Speicherbausteinen lässt sich in der Regel durch das Kommando 
0x9F die Device ID auslesen. Die Manufacturer ID wird durch die JEDEC 
vergeben, man findet sie in der JEP106. Weil die Anzahl der 7 Bit IDs 
endlich ist, gibt es mehrere Bänke.

Kurze Verständnisfrage, so wie ich das aufgefasst habe werden die Bänke 
durch eine Response mit 0x7F gewechselt, sollte also eine ID der zweiten 
Bank verwendet werden, wird der Manufacturer ID ein 0x7F vorangestellt, 
bei der fünften Bank wären es vier mal 0x7F. Ist dies so korrekt?

Ich habe mir mal einen Hersteller ausgesucht der nicht in der ersten 
Bank liegt. Und zwar GigaDevices in Bank 7 mit der Manufacturer ID 0xC8. 
Habe das Datenblatt für den GD25WD10C konsultiert und festgestellt, das 
direkt mit Manufacturer und Device ID geantwortet wird. Habe ich hier 
etwas übersehen? Ist es gängige Praxis ohne dazugehörige Bank zu 
antworten?
Gast #7237856
Lesenswert?

Marc X. schrieb:
> Bei SPI Speicherbausteinen lässt sich in der Regel durch das
> Kommando
> 0x9F die Device ID auslesen. Die Manufacturer ID wird durch die JEDEC
> vergeben, man findet sie in der JEP106. Weil die Anzahl der 7 Bit IDs
> endlich ist, gibt es mehrere Bänke.
>
> Kurze Verständnisfrage, so wie ich das aufgefasst habe werden die Bänke
> durch eine Response mit 0x7F gewechselt, sollte also eine ID der zweiten
> Bank verwendet werden, wird der Manufacturer ID ein 0x7F vorangestellt,
> bei der fünften Bank wären es vier mal 0x7F. Ist dies so korrekt?
Theoretisch ja.

> Ich habe mir mal einen Hersteller ausgesucht der nicht in der ersten
> Bank liegt. Und zwar GigaDevices in Bank 7 mit der Manufacturer ID 0xC8.
> Habe das Datenblatt für den GD25WD10C konsultiert und festgestellt, das
> direkt mit Manufacturer und Device ID geantwortet wird. Habe ich hier
> etwas übersehen? Ist es gängige Praxis ohne dazugehörige Bank zu
> antworten?
Jeder macht das, wie es ihm gerade in den Kram passt:
Adesto ATXP032: 7-mal 0x7F, dann 0x43
Adesto ATXP128: 0x1F
Gleiche "Serie", mal so, mal so.

Das Problem dürfte sein, dass "alte" Software immer nur 3 Bytes als ID 
erwartet, und dann ins Stolpern gerät, wenn's mehr wären ...
Zumal die Methode mit einmal 0x7F pro weiterer Bank irgendwie selten 
dämlich ist. Wer sich das ausgedacht hat?

Fazit: Man sollte auf das 0x7F vorbereitet sein und dann 
entsprechend mehr Bytes auslesen. Aber verlassen kann man sich darauf 
eben nicht. Zumal nach Firmen- oder Bereichsverkäufen die Hersteller-ID 
sowieso keine Aussagekraft im wörtlichen Sinn mehr hat.
OP #7238060
Lesenswert?

A. B. schrieb:
> Jeder macht das, wie es ihm gerade in den Kram passt:
> Adesto ATXP032: 7-mal 0x7F, dann 0x43
> Adesto ATXP128: 0x1F
> Gleiche "Serie", mal so, mal so.

Naja ganz falsch ist es ja nicht, immerhin ist 0x1F die Manufacturer ID 
von Atmel, aus der ersten Bank. Adesto hat vor einigen Jahren die Sparte 
von Atmel übernommen. Aber ja die Tatsache, das einige Hersteller den 
Continuation Code senden und andere nicht, zeigen schon, das ich mich 
darauf nicht verlassen kann.

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