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

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

Hier ist ein Bericht eines Ingenieurs , der sagt, dass SD-Karten so konzipiert sind, dass sie als einzige Slaves eines SPI-Masters fungieren.

Hat jemand anderes eine microSD zusammen mit anderen SPI-Slaves auf demselben Bus verwenden können? 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 sperren, die zur miniSD-Karte geht, nur um sicherzugehen?

Antworten (1)

Laut dieser Seite fahren und oder geben SD-Karten die DO-Leitung synchron mit der sclk-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 treibt/freigibt sein DO-Signal durch das CS-Signal asynchron, um einen SPI-Bus gemeinsam zu nutzen. MMC/SDC steuert/gibt jedoch das DO-Signal beim Synchronisieren mit dem SCLK ab. Dies bedeutet, dass es zu Buskonflikten mit MMC/SDC und anderen SPI-Slaves kommen kann, die an einen SPI-Bus angeschlossen sind. Das rechte Bild zeigt das Ansteuer-/Freigabe-Timing des MMC/SDC (das DO-Signal wird auf 1/2 Vcc gezogen, um den Busstatus zu sehen). Daher muss die Master-Vorrichtung, um das MMC/SDC-DO-Signal freizugeben, ein Byte senden, nachdem das CS-Signal deaktiviert wurde.

Es sollte also funktionieren, nur ein Dummy-Byte an den SPI zu senden, nachdem die CS-Leitung hoch angehoben wurde. Die obige Seite enthält ein Zeitdiagramm des SPI-Busses beim Anheben der CS-Leitung auf der SD-Karte.

Außerdem ist es eine gute Idee sicherzustellen, dass der Mikrocontroller beim Einschalten/Einstecken 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.

Großartige Ressourcen, Justin. Vielen Dank! Ich hoffe, das ist alles, was ich tun muss, um Sklavenkonflikte mit SD zu lösen.