请教STM32的SDIO用4线模式读写的问题

[复制链接]
 楼主| ysf0929 发表于 2010-3-10 17:32 | 显示全部楼层 |阅读模式
STM32的SDIO读写SD卡,使用4bit模式时,连续读写多块总是提示SD_START_BIT_ERR,从论坛上看到有大虾可以实现4bit多块读写,能不能帮忙指点一二,非常感谢啊。。。
1bit模式连续读写多块是正确的,是2G的SD卡。
我用的是万利的开发板,程序是V2.0.3版的。
 楼主| ysf0929 发表于 2010-3-11 09:10 | 显示全部楼层
没人帮忙吗,貌似有一些大虾调通了啊,自己顶贴
IJK 发表于 2010-3-11 11:18 | 显示全部楼层
可以试试STM32软件库自带的SDIO例子,看行不行。
 楼主| ysf0929 发表于 2010-3-12 16:14 | 显示全部楼层
谢谢IJK,我就是用的官方的库,用4线读写的时候,需要加硬件流控且将时钟降到18M,这样有的卡就可以读写,但是大量写还是有错误的时候,有的卡就只能执行一次,多次就错。有用4线成功读写的吧,源程序有什么改动的地方吗?还是需要什么设置呢?
 楼主| ysf0929 发表于 2010-3-12 16:14 | 显示全部楼层
大家帮帮忙吧
IJK 发表于 2010-3-12 16:41 | 显示全部楼层
ST的SDIO库支持3种模式:查询、中断、DMA。一般用DMA可以支持到更高的频率。你用哪种模式?

另外,要看你用怎么样的SD卡,容量多大?
dfsa 发表于 2010-3-12 20:40 | 显示全部楼层
楼主应该是用的DMA模式吧
 楼主| ysf0929 发表于 2010-3-18 14:18 | 显示全部楼层
3种模式我都试过,同样1线或者4线情况下,DMA、中断、查询速度差不多。如果要说是速度上有差别,就是单块读写和多块读写差很多。
 楼主| ysf0929 发表于 2010-3-18 14:21 | 显示全部楼层
就是用的金士顿的1G和2G的卡。1G的旧卡可以用4线,但是需要开硬件流控和频率降低到18M。2G的新卡,4线模式就是报错:检测不到起始位,应该就是没有数据。
 楼主| ysf0929 发表于 2010-3-18 14:23 | 显示全部楼层
还有其他一个牌子的一个1G的新卡,也是检测不到起始位。那个旧1G的卡,4线大量写的时候,虽然没有报错,但是写的数据有问题,文件打不开。
 楼主| ysf0929 发表于 2010-3-18 14:26 | 显示全部楼层
用公共机上网不方便,有没有人用4线顺利调通的,给指点一下吧
scw8854780 发表于 2012-12-29 14:55 | 显示全部楼层
LZ,你的问题有没有解决,我最近也在做这方面的项目,也碰到了和你同样的问题!
无法实现多块读的功能.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

9

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部