Y a-t-il des problèmes d'accès à une carte microSD via SPI lorsqu'il existe d'autres périphériques SPI esclaves?

10

Je travaille sur une conception qui a un processeur avec un seul port SPI. J'ai plusieurs (3) esclaves connectés à ce port, dont l'un est une carte microSD.

Voici un rapport d'un ingénieur qui dit que les cartes SD sont conçues pour fonctionner comme le seul esclave d'un maître SPI.

Quelqu'un d'autre a-t-il pu utiliser une microSD avec d'autres esclaves SPI sur le même bus? Peut-être que ce rapport était simplement basé sur une carte miniSD particulière et problématique?

Quelqu'un recommanderait-il de couper la ligne SPI CLK avec la ligne Slave Select qui va à la carte miniSD, juste pour être sûr?

jpeskin
la source

Réponses:

12

Selon cette page, les cartes SD conduisent et / ou libèrent la ligne DO de manière synchrone avec la ligne sclk:

Dans le bus SPI, chaque périphérique esclave est sélectionné avec des signaux CS séparés, et plusieurs périphériques peuvent être connectés à un bus SPI. Le périphérique esclave SPI générique pilote / libère son signal DO par le signal CS de manière asynchrone pour partager un bus SPI. Cependant, le MMC / SDC pilote / libère le signal DO lors de la synchronisation avec le SCLK. Cela signifie qu'il existe un risque de conflit de bus avec MMC / SDC et tout autre esclave SPI attaché à un bus SPI. L'image de droite montre la synchronisation d'entraînement / libération du MMC / SDC (le signal DO est tiré à 1/2 Vcc pour voir l'état du bus). Par conséquent, pour que le MMC / SDC libère le signal DO, le périphérique maître doit envoyer un octet une fois le signal CS désactivé.

Donc, l'envoi d'un octet factice au SPI après avoir élevé la ligne CS devrait fonctionner. Le site ci-dessus a un chronogramme du bus SPI lors de l'élévation de la ligne CS haut sur la carte SD.

Aussi, c'est une bonne idée de s'assurer qu'à la mise sous tension / insertion de la carte, le microcontrôleur négocie l'utilisation du mode SPI avec la carte. Ces détails peuvent être trouvés ici

En résumé, il devrait être correct de partager le bus SPI avec plusieurs périphériques tant que les précautions ci-dessus sont prises.

juste
la source
De grandes ressources, Justin. Merci! J'espère que ce sera tout ce que je dois faire pour gérer les conflits d'esclaves avec SD.
jpeskin