集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 1586|回复: 4

16G SD卡FPGA,SD模式,初始化成功,CMD17后读不到数据

[复制链接]
icdesign2017 发表于 2015-9-7 11:15:41 | 显示全部楼层 |阅读模式
我的初始化流程如下:CMD0->CMD8,响应0x1AA-->ACMD41,响应0xCF00FF8000->CMD2->CMD3,响应0x520-->CMD7,响应0x700-->ACMD6,响应0x900-->CMD17,响应0x900.之后就没有数据。

但是我读取的是第一扇区的数据,CMD17参数地址为0,读取的数据是错误的,和winhex看的不一样。但能读到最后的55AA。然而改变地址后就读不到任何数据。我很不解原因是啥?特意向你们大侠请教。非常感谢,很期待你们能回复一下。谢谢。
 楼主| icdesign2017 发表于 2015-9-7 22:52:13 | 显示全部楼层
我的问题解决了。原因是我的程序是对的。然而我给的CMD17的参数是0,他读的是物理扇区的数据,不是逻辑扇区0的数据,当然就不是启动扇区的数据了。我之前用的是中文版的WINHEX,他不给力呀,我用了英文版的winhex就看见了我读到的是物理0扇区。
ghbuaa 发表于 2015-9-8 10:48:29 | 显示全部楼层
icdesign2017 发表于 2015-9-7 22:52
我的问题解决了。原因是我的程序是对的。然而我给的CMD17的参数是0,他读的是物理扇区的数据,不是逻辑扇区 ...

楼主,我最近也在研究sd卡的读写,现用Verilog写好了初始化程序,但没法仿真,你是直接上板测试吗?
 楼主| icdesign2017 发表于 2015-9-8 23:22:03 | 显示全部楼层
本帖最后由 icdesign2017 于 2015-9-8 23:25 编辑

是可以仿真的。我在写初始化时,都是一步一仿真的方式。比如你发了CMD0之后,你知道没有响应,然后你接着发CMD8,你知道响应是C00FF8000,你就在testbench里面把对应的响应发送回来,这个吧响应发送回来的代码就像你在发送命令一样就几排的。以这种方式就可以仿真你的初始化过程。知道你开始读数据。看清楚我的方式是SD4线模式,不是SPI哈。现在我可以读到数据了,当然在板子上看结果、看现象了,接下来就是写文件系统了。
 楼主| icdesign2017 发表于 2015-9-8 23:23:01 | 显示全部楼层
我在ISE里遇到了这个问题,INTERNAL_ERROR:Xst:cmain.c:3423:1.29 -  Process will terminate. For technical support on this issue, please open a WebCase with this project attached at http://www.xilinx.com/support.  
有人知道是怎么回事吗?
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2025-5-6 14:22 , Processed in 0.061617 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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