打印
[STM32F1]

用SDIO(4位)写SD卡,用DMA会卡死,用polling数据出错,请前辈指点???

[复制链接]
2506|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yjj064|  楼主 | 2013-12-29 21:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本人要保存大量数据(底层存储,没有文件系统),所以要用到SD卡,要求:3秒存一次数据,每次存2组数据(第1组为1kB,第二组为16kB)
现在碰到问题:
1.用DMA存数据,时钟9MHZ,偶尔会卡死在while (DMA_GetFlagStatus(DMA2_FLAG_TC4) == RESET);
2.改用polling,时钟为9MHZ时,每次存数据,发送8个字就报FIFO下溢报错;
               时钟为3MHZ时,存数据,偶尔报FIFO下溢报错;
               时钟为1MHZ时,存数据,目前正常,正在大批量测试中;
请前辈指点,哪里设置有问题???
沙发
yjj064|  楼主 | 2013-12-31 09:50 | 只看该作者
逛了几天论坛,增加 使能硬件流控制,时钟可以达到9MHZ;
时钟到达12MHZ时候,多块写SD卡正常,但是多块读就出现问题报 已发送/接收数据块(CRC检测失败)?
还在摸索中,高人指点下??

使用特权

评论回复
板凳
airwill| | 2014-1-1 07:18 | 只看该作者
从楼主的问题看, 跟 SD 卡底层硬件时序有关, 是否考虑先与 SD 标准进行验证
我倒关心 DMA 传输的问题, 毕竟这个方法是最快, 最省电的方式.

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

13

帖子

0

粉丝