Gibt es Probleme beim Zugriff auf eine microSD-Karte über SPI, wenn andere Slave-SPI-Geräte vorhanden sind?

10

Ich arbeite an einem Design mit einer CPU mit nur einem SPI-Port. Ich habe mehrere (3) Slaves an diesen Port angeschlossen, von denen einer eine microSD-Karte ist.

Hier ist ein Bericht eines Ingenieurs, der besagt, dass SD-Karten als einziger Slave eines SPI-Masters fungieren sollen.

Konnte jemand anderes eine microSD zusammen mit anderen SPI-Slaves auf demselben Bus verwenden? Vielleicht basierte dieser Bericht nur auf einer bestimmten, problematischen miniSD-Karte?

Würde jemand empfehlen, die SPI CLK-Leitung mit der Slave Select-Leitung zu verbinden, die zur miniSD-Karte führt, um sicher zu gehen?

jpeskin
quelle

Antworten:

12

Laut dieser Seite fahren SD-Karten synchron mit der SCLK-Leitung und / oder geben die DO-Leitung frei:

Im SPI-Bus wird jedes Slave-Gerät mit getrennten CS-Signalen ausgewählt, und mehrere Geräte können an einen SPI-Bus angeschlossen werden. Das generische SPI-Slave-Gerät steuert / gibt sein DO-Signal per CS-Signal asynchron frei, um einen SPI-Bus gemeinsam zu nutzen. MMC / SDC steuert / gibt jedoch das DO-Signal bei der Synchronisierung mit dem SCLK frei. Dies bedeutet, dass möglicherweise ein Buskonflikt mit MMC / SDC und anderen SPI-Slaves besteht, die an einen SPI-Bus angeschlossen sind. Das rechte Bild zeigt den Antriebs- / Freigabezeitpunkt der MMC / SDC (das DO-Signal wird auf 1/2 vcc gezogen, um den Buszustand anzuzeigen). Daher muss das Master-Gerät ein Byte senden, nachdem das CS-Signal deaktiviert wurde, damit das MMC / SDC-DO-Signal freigegeben wird.

Das Senden eines Dummy-Bytes an das SPI nach dem Anheben der CS-Leitung sollte also funktionieren. Die obige Site enthält ein Zeitdiagramm des SPI-Busses, wenn die CS-Leitung hoch auf der SD-Karte angehoben wird.

Es ist auch eine gute Idee, sicherzustellen, dass der Mikrocontroller beim Einschalten / Einsetzen der Karte die Verwendung des SPI-Modus mit der Karte aushandelt. Diese Details finden Sie hier

Zusammenfassend sollte es in Ordnung sein, den SPI-Bus mit mehreren Peripheriegeräten zu teilen, solange die oben genannten Vorsichtsmaßnahmen getroffen werden.

gerecht
quelle
Großartige Ressourcen, Justin. Vielen Dank! Ich hoffe, das ist alles, was ich tun muss, um Slave-Konflikte mit SD zu bewältigen.
Jpeskin