在嵌入式存儲(chǔ)領(lǐng)域,STM32的SDIO接口憑借其硬件加速能力成為高速SD卡通信的核心方案。隨著SD卡規(guī)格從Class 10向UHS-I/UHS-II演進(jìn),傳統(tǒng)48MHz時(shí)鐘配置已無(wú)法滿(mǎn)足現(xiàn)代應(yīng)用對(duì)帶寬的需求。本文通過(guò)硬件布線優(yōu)化與軟件驅(qū)動(dòng)重構(gòu)的協(xié)同設(shè)計(jì),實(shí)現(xiàn)STM32H7系列在200MHz時(shí)鐘下穩(wěn)定傳輸,實(shí)測(cè)讀取速度突破25MB/s。
SWM32S單片機(jī)有1個(gè)SDIO接口,支持多媒體卡(MMC)、SD 存儲(chǔ)卡、SDIO 卡等設(shè)備,可以使用軟件方法或者 DMA 方法(SDIO 模塊內(nèi)部 DMA,與芯片 DMA 模塊無(wú)關(guān))進(jìn)行數(shù)據(jù)傳輸。
這次是做一個(gè)SD卡的USB讀卡器的功能,我們就在上次NAND Flash模擬出的U盤(pán)的工程上修改了,這樣的話只要修改一小部分了。工程的絕大部分不需要修改,只要將fsmc_nand.c文件移除工程,添加上官方的關(guān)于SDIO的SD卡的驅(qū)動(dòng)
使用STM32官方SDIO 的SDCARD驅(qū)動(dòng)的時(shí)候,以前單任務(wù)的時(shí)候沒(méi)有出現(xiàn)這種錯(cuò)誤,現(xiàn)在使用多任務(wù)的時(shí)候經(jīng)常出現(xiàn),表現(xiàn)為讀取文件的時(shí)候沒(méi)有問(wèn)題,經(jīng)常點(diǎn)擊屏幕的時(shí)候就會(huì)出問(wèn)題,最后通過(guò)仿真找到出錯(cuò)點(diǎn)就是讀取數(shù)據(jù)向SD卡發(fā)送