大家都过完年了么,有空帮小弟看一下sd卡读取的问题

[复制链接]
2486|8
 楼主| seaundersky 发表于 2013-2-13 17:28 | 显示全部楼层 |阅读模式
SD卡, ni, ST, AC, TE
在对sd卡初始化的时候,复位成功,但是收不到00.
我吧接收到的数据用串口输出,如下:


红线划的部分是复位之后保持不变的部分,后面的每次复位会有变化。
部分代码:
  1. case(sdinit_cstate)
  2.   SDINIT_RST: begin
  3.    if(delay_done) sdinit_nstate <= SDINIT_CLK; //上电后40us延时完成,进入74+CLK状态
  4.    else sdinit_nstate <= SDINIT_RST; //等待上电后40us延时完成
  5.   end
  6.   SDINIT_CLK: begin
  7.    if(cmd_rdy) sdinit_nstate <= SDINIT_CMD0; //74+CLK完成
  8.    else sdinit_nstate <= SDINIT_CLK;
  9.   end
  10.   SDINIT_CMD0: begin
  11.    if(cmd_rdy && (spi_rx_dbr == 8'h01)) sdinit_nstate <= SDINIT_CMD55;
  12.    else sdinit_nstate <= SDINIT_CMD0;
  13.   end
  14.   SDINIT_CMD55: begin
  15.    if(cmd_rdy && (spi_rx_dbr == 8'h01)) sdinit_nstate <= SDINIT_ACMD41;
  16.    else sdinit_nstate <= SDINIT_CMD55;
  17.   end
  18.   SDINIT_ACMD41: begin
  19.    if(retry_rep == 8'hff) sdinit_nstate <= SDINIT_CMD55; ///////////响应超时,返回IDLE重新发起命令
  20.    else if(cmd_rdy && spi_rx_dbr == 8'h01) sdinit_nstate <= SDINIT_CMD55;
  21.    else if(cmd_rdy && spi_rx_dbr == 8'h00) sdinit_nstate <= SDINIT_CMD16;
  22.    else sdinit_nstate <= SDINIT_ACMD41;
  23.   end
  24. /* SDINIT_CMD1: begin
  25.    if(cmd_rdy) sdinit_nstate <= SDINIT_CMD16;
  26.    else sdinit_nstate <= SDINIT_CMD1;
  27.   end*/
  28.   SDINIT_CMD16: begin
  29.    if(cmd_rdy && (spi_rx_dbr == 8'h00)) sdinit_nstate <= SD_IDLE;
  30.    else sdinit_nstate <= SDINIT_CMD16;
  31.   end
  32.   SD_IDLE: sdinit_nstate <= SD_RD_PT;
  33.   SD_RD_PT: begin
  34.    if(cmd_rdy) sdinit_nstate <= SD_RD_BPB;
  35.    else sdinit_nstate <= SD_RD_PT;
  36.   end
  37.   SD_RD_BPB: begin
  38.    if(cmd_rdy && arg == arg_r+P_MEM-32'h0000_0200) sdinit_nstate <= SD_DELAY;
  39.    else sdinit_nstate <= SD_RD_BPB;
  40.   end
  41.   SD_DELAY: begin
  42.    if(done_5s) sdinit_nstate <= SD_IDLE; //显示下一幅图片
  43.    else sdinit_nstate <= SD_DELAY;
  44.   end
  45. default: sdinit_nstate <= SDINIT_RST;
  46. endcase

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
GoldSunMonkey 发表于 2013-2-13 23:32 | 显示全部楼层
检查过时许么??
有什么不对的地方么?
 楼主| seaundersky 发表于 2013-2-14 00:12 | 显示全部楼层
GoldSunMonkey 发表于 2013-2-13 23:32
检查过时许么??
有什么不对的地方么?

怎么检查= =
用testbench?
xiaoxingxingyue 发表于 2013-2-14 08:25 | 显示全部楼层
占个楼层
GoldSunMonkey 发表于 2013-2-14 23:04 | 显示全部楼层
seaundersky 发表于 2013-2-14 00:12
怎么检查= =
用testbench?

chipscope
 楼主| seaundersky 发表于 2013-2-14 23:19 | 显示全部楼层
GoldSunMonkey 发表于 2013-2-14 23:04
chipscope

额,那个是XILINX的吧,我用的是A的= =
 楼主| seaundersky 发表于 2013-2-14 23:21 | 显示全部楼层
GoldSunMonkey 发表于 2013-2-14 23:04
chipscope

会不会是跟sd卡用关呢,我用的是2g的sd卡
 楼主| seaundersky 发表于 2013-2-14 23:23 | 显示全部楼层
GoldSunMonkey 发表于 2013-2-14 23:04
chipscope

不过A的也可以用signaltap来看,需要看什么信号呢?
Backkom80 发表于 2013-2-16 09:09 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

26

帖子

0

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