icdesign2017 发表于 2015-9-7 11:15:41

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

我的初始化流程如下: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]
查看完整版本: 16G SD卡FPGA,SD模式,初始化成功,CMD17后读不到数据