MyFPGA Forum

 找回密码
 注册
搜索
查看: 11208|回复: 6
打印 上一主题 下一主题

sd模式sd卡读写成功经验分享

[复制链接]
跳转到指定楼层
1#
发表于 2010-7-24 17:02:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
sd卡sd模式读写中,初始化和读的部分可以只接用友晶提供的源代码,而写的部分友晶没有提供,
我们必须自己写。写sd卡的函数可以根据友晶提供的read_block()和send_cmd()函数的模式进行编程。
我的写sd卡程序都快一个星期了,今天终于测试成功了。我的写时序严格遵守了,只是,SD_DAT_OUT;置得太早了,我在发送cmd24之前dat0就已经置成由主机向sd卡方向。
那样在发送命令时,也要发送时钟周期,发送数据时,sd卡同时从dat0线上接收数据,那样sd卡crc16校验就会出错。数据就无法写入。
因此SD_DAT_OUT;的位置非常重要,不能早,也不能晚,必须严格按照sd卡接口规范上的
时序一步一步写。肯定会成功!!!
2#
发表于 2010-7-25 09:09:31 | 只看该作者
回复 1# wushicu


    你好,请问你是用DE0做的sd卡吗?初始化和读的部分都是友晶提供的源代码吗??
3#
发表于 2010-7-25 11:38:33 | 只看该作者
我的写程序里,一开始就是写SD_DAT_OUT,能跑通的。
4#
 楼主| 发表于 2010-7-25 11:44:48 | 只看该作者
回复 2# WPZAC


   我是用de0做的,部分用了友晶提供的源代码。。。
5#
 楼主| 发表于 2010-7-25 11:52:00 | 只看该作者
回复 3# withoutwing


    我的不行。我根据sd卡规范的时序分析,觉得SD_DAT_OUT;在发送命令之前的话,在发送命令时同时会有时钟过去,因此DAT0线上也会有数据发送过去,这样sd卡就无法识别你发送的数据是从哪里开始的,接收时就有可能发生校验错误或者块长度不对齐。最后导致数据无法写入。。。
   我是这样分析的,如果你的能跑通的话,我就不清楚了!
6#
发表于 2010-7-28 19:38:47 | 只看该作者
能不能提供一些源代码呀
7#
发表于 2013-12-13 08:20:20 | 只看该作者
本帖最后由 Frank 于 2015-6-1 09:39 编辑

我喜欢啊,请继续 支持你
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|MyFPGA

GMT+8, 2024-4-25 07:51 , Processed in 0.039400 second(s), 14 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表