Forum: Mikrocontroller und Digitale Elektronik SPI Speicher Manufacturer ID auswerten


von Marc X. (marc_x)


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?

von Peter D. (peda)


Lesenswert?

Marc X. schrieb:
> Weil die Anzahl der 7 Bit IDs
> endlich ist, gibt es mehrere Bänke.

Hä?
Der Befehl 9Fh liest 24 Bit aus, 8 Bit Hersteller + 16 Bit ID.

von A. B. (Gast)


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.

von Marc X. (marc_x)


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.

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.