STM32 基础系列教程 41 – SDMMC
前言
??? SDIO(Secure Digital Input and Output) 安全數字輸入輸出接口,它支持多種類型的MMC卡,如SD卡,SDIO卡,MMC卡等。STM32 的SD/SDIO MMC卡主機模塊(SDIO)在AHB外設總線和多媒體卡(MMC)、 SD存儲卡、 SDIO卡和CE-ATA設備間提供了操作接口。其主要特點有:
● 與多媒體卡系統規格書版本4.2全兼容。支持三種不同的數據總線模式: 1位(默認)、 4位和8位。
● 與較早的多媒體卡系統規格版本全兼容(向前兼容)。
● 與SD存儲卡規格版本2.0全兼容。
● 與SD I/O卡規格版本2.0全兼容:支持良種不同的數據總線模式: 1位(默認)和4位。
● 完全支持CE-ATA功能(與CE-ATA數字協議版本1.1全兼容)。
● 8位總線模式下數據傳輸速率可達48MHz。
● 數據和命令輸出使能信號,用于控制外部雙向驅動器。
1. SDIO沒有SPI兼容的通信模式
2.在多媒體卡系統規格書版本2.11中,定義SD存儲卡協議是多媒體卡協議的超集。只支持I/O模式的SD卡或復合卡中的I/O部分不能支持SD存儲設備中很多需要的命令,這里有些命令在SDI/O設備中不起作用,如擦除命令,因此SDIO不支持這些命令。另外, SD存儲卡和SD I/O卡中有些命令是不同的, SDIO也不支持這些命令。細節可以參考SD I/O卡規格書版本1.0。使用現有的MMC命令機制,在MMC接口上可以實現CE-ATA的支持 。 SDIO接口的電氣和信號定義詳見MMC參考資料。多媒體卡/SD總線將所有卡與控制器相連。當前版本的SDIO在同一時間里只能支持一個SD/SDIO/MMC 4.2卡,但可以支持多個MMC版本4.1或以前版本的卡。
本節我們將學習stm32 + SDIO接口操作SD卡實例。
?
示例詳解
基于硬件平臺: 正點源子的stm32f4 探索者開發板,MCU 的型號是?STM32F4ZET6, 使用stm32cubemx 工具自動產生的配置工程,使用KEIL5編譯代碼。本示例所用的開發板及部分原理圖:
?
?
?
?
?
?
?
開DMA,不是必需但建議開!
DMA及SDIO中斷設置,原則是全局中斷優先級高于DMA中斷:
?
最后為了打印信息需要,在main.c中 USER CODE 4 區加入如下代碼:
?
(注:在使用探索者F4調試時,下載或仿真調試時先不要PC串口工具連接上開發板的USB_232接口,有可能導致程序運行不了--boot0引腳電平不對,可以先跑起來再在PC串口工具上連接相應端口!!,可按下面的具體操作步驟來操作—>>? )
?
串口已打開,程序全速運行(F5或單擊全速運行圖標)相看運行結果:
?
DAM方式運行結果:
將USER CODE 2 區域的#if 1 改成 #if 0 編譯運行,程序變成阻塞方式,其運行結果如下:
通過以上的結果可知本次的SD卡讀寫操作實驗成功!
?
OK,本期實驗完成!下期見!同時如果大家有什么疑問或是有想了解的其它內容,也歡迎大家留言!!最后喜歡這個公眾號的同學們記得加關注了,會有不定期技術干貨推出!!
?
文中源碼資料下載,在公眾號里給十三發消息:
下載|STM32基礎系列教程41
?
關注十三公眾號
?
總結
以上是生活随笔為你收集整理的STM32 基础系列教程 41 – SDMMC的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: STM32 基础系列教程 40 - Lw
- 下一篇: STM32 基础系列教程 42 - SD