¿Hay problemas para acceder a una tarjeta microSD a través de SPI cuando hay otros dispositivos SPI esclavos?

10

Estoy trabajando en un diseño que tiene una CPU con un solo puerto SPI. Tengo múltiples (3) esclavos conectados a este puerto, uno de los cuales es una tarjeta microSD.

Aquí hay un informe de un ingeniero que dice que las tarjetas SD están diseñadas para funcionar como el único esclavo de un maestro SPI.

¿Alguien más ha podido usar una microSD junto con otros esclavos SPI en el mismo bus? ¿Quizás este informe se basó en una tarjeta miniSD problemática en particular?

¿Alguien recomendaría activar la línea SPI CLK con la línea Slave Select que va a la tarjeta miniSD, solo para estar seguro?

jpeskin
fuente

Respuestas:

12

De acuerdo con esta página, las tarjetas SD manejan y / o liberan la línea DO sincrónicamente con la línea sclk:

En el bus SPI, cada dispositivo esclavo se selecciona con señales CS separadas, y se pueden conectar varios dispositivos a un bus SPI. El dispositivo esclavo SPI genérico impulsa / libera su señal DO mediante señal CS asíncronamente para compartir un bus SPI. Sin embargo, MMC / SDC activa / libera la señal DO en sincronización con el SCLK. Esto significa que existe la posibilidad de conflicto de bus con MMC / SDC y cualquier otro esclavo SPI que esté conectado a un bus SPI. La imagen de la derecha muestra el tiempo de activación / liberación del MMC / SDC (la señal de OD se extrae a 1/2 vcc para ver el estado del bus). Por lo tanto, para hacer que MMC / SDC libere la señal DO, el dispositivo maestro debe enviar un byte después de que se desactive la señal CS.

Entonces, simplemente enviar un byte ficticio al SPI después de elevar la línea CS alta debería funcionar. El sitio anterior tiene un diagrama de tiempo del bus SPI cuando se eleva la línea CS en la tarjeta SD.

Además, es una buena idea asegurarse de que al encender / insertar la tarjeta, el microcontrolador negocie el uso del modo SPI con la tarjeta. Estos detalles se pueden encontrar aquí

En resumen, debería estar bien compartir el bus SPI con múltiples periféricos siempre que se tomen las precauciones anteriores.

justing
fuente
Grandes recursos, Justin. ¡Gracias! Espero que sea todo lo que necesito hacer para manejar los conflictos de esclavos con SD.
jpeskin