这两天调试STM32的SDIO,调到头大,有没有哪位有比较好的SDIO驱动?最好SDIO+DMA+4位模式,识别率高。我现在的情况是挑卡十分严重。

2019-08-19 20:16发布

这两天调试SDIO,头大,手里有山寨2G卡3种,16G金士顿卡1个,4G金士顿卡 1个。
网上测试了N多版本的SDIO代码,没一个能全支持的...
都不如现在的SPI版本驱动。
挑卡是最大的问题。只有4G的金士顿最好识别,其他的要嘛能读文件名(读内容出错),要嘛干脆文件名都不能读(初始化也许能过,但是不能读文件)。
测试了查询模式,DMA模式(多是4位),测试了RTT的SDIO驱动(1位),大多是能初始化通过,但是在执行SD_ReadBlock的时候,查询模式就报数据CRC错误,收到一串的0,而DMA模式则直接就是设置块大小失效。

不知道哪位有比较好的SDIO驱动,自认为稳定的,可以发上来给共享下不?先谢谢了。
或者是SDIO干脆就是STM32的另外一个鸡肋?
听说1位模式比较好,但是1位DMA和SPI区别,还真是不大...体现不了SDIO的优势啊。

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
16条回答
qq88714082010
1楼-- · 2019-08-20 12:27
 精彩回答 2  元偷偷看……
wangyueming
2楼-- · 2019-08-20 15:58
回复【5楼】正点原子:
---------------------------------
请问原子:在SD_DMA_Config()中,为什么对DMA_BufferSize的配置是Bufsize/4?这是怎么来的?我没弄明白。谢谢原子了!
正点原子
3楼-- · 2019-08-20 21:18
回复【11楼】wangyueming:
---------------------------------
因为一次传输是4字节.
wangyueming
4楼-- · 2019-08-21 01:21
回复【12楼】正点原子:
---------------------------------
按照您的意思,DMA_BufferSzie定义的数据量是按字节算的,比如DMA_BufferSize = 1024,意思就是一次DMA传输的数据量就是1024个字节,但是在SD卡的读操作中,根据2.0协议,定义了_align(4),所以每次操作是一下读出4个字节,因此就配置成bufsize/4,是这个意思吗?
网络小生
5楼-- · 2019-08-21 06:46
wangyueming 发表于 2015-12-1 09:28
回复【12楼】正点原子:
---------------------------------
按照您的意思,DMA_BufferSzie定义的数据量是按 ...

DMA_PeripheralDataSize_Word 4个字节,DMA_BufferSize=bufsize/DMA_PeripheralDataSize_Word
ldh45
6楼-- · 2019-08-21 12:31
 精彩回答 2  元偷偷看……

一周热门 更多>