SD卡支持兩種匯流排模式與MCU進行數據傳輸:SD BUS模式和SPI Bus模式。在SPI模式下,數據以位元組為單位進行傳輸,SD卡作為從機設備。MCU傳送帶有參數的命令,SD卡執行命令後返迴響應,MCU根據回響進行下一步操作。SPI模式使用4根信號線:SD卡數據輸出、SD卡數據輸入、時鐘同步線和片選線。SD卡的SPI通信遵循特定的命令格式和回響規則,且SD卡在SPI模式下的通信速度可能不如在SD模式下的速度快。
SPI模式的詳細說明如下:
引腳定義:在SPI模式下,使用SDIO_D3(SPI_CS)、SDIO_CMD(SPI_MOSI)、SDIO_SC(SPI_SCK)和SDIO_D0(SPI_MISO)引腳。
通信模式:SD卡在SPI模式下採用的模式3,即CPOL=1,CPHA=1,支持最高50MHz的SPI_CLK時鐘頻率。
命令與回響:SD卡的命令最多6個位元組長,包括起始位、傳輸位、命令代碼、命令參數和CRC7校驗位。回響的格式和長度根據命令不同而變化,例如R1回響是一個1位元組長的回響,最高位始終為0,其餘各位為狀態位。
此外,SD卡在選擇使用SPI模式時,會在上電初期通過檢測引腳1(DAT3)來決定使用SD模式還是SPI模式。當此腳接50KOhm上拉電阻時,卡進入SD模式;當此腳為低電平,卡則工作於SPI模式。