打印

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

[复制链接]
1957|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
SD卡, ni, ST, AC, TE
在对sd卡初始化的时候,复位成功,但是收不到00.
我吧接收到的数据用串口输出,如下:


红线划的部分是复位之后保持不变的部分,后面的每次复位会有变化。
部分代码:
 case(sdinit_cstate)
  SDINIT_RST: begin
   if(delay_done) sdinit_nstate <= SDINIT_CLK; //上电后40us延时完成,进入74+CLK状态
   else sdinit_nstate <= SDINIT_RST; //等待上电后40us延时完成
  end
  SDINIT_CLK: begin
   if(cmd_rdy) sdinit_nstate <= SDINIT_CMD0; //74+CLK完成
   else sdinit_nstate <= SDINIT_CLK;
  end
  SDINIT_CMD0: begin
   if(cmd_rdy && (spi_rx_dbr == 8'h01)) sdinit_nstate <= SDINIT_CMD55;
   else sdinit_nstate <= SDINIT_CMD0;
  end
  SDINIT_CMD55: begin
   if(cmd_rdy && (spi_rx_dbr == 8'h01)) sdinit_nstate <= SDINIT_ACMD41;
   else sdinit_nstate <= SDINIT_CMD55;
  end
  SDINIT_ACMD41: begin
   if(retry_rep == 8'hff) sdinit_nstate <= SDINIT_CMD55; ///////////响应超时,返回IDLE重新发起命令
   else if(cmd_rdy && spi_rx_dbr == 8'h01) sdinit_nstate <= SDINIT_CMD55;
   else if(cmd_rdy && spi_rx_dbr == 8'h00) sdinit_nstate <= SDINIT_CMD16;
   else sdinit_nstate <= SDINIT_ACMD41;
  end
/* SDINIT_CMD1: begin
   if(cmd_rdy) sdinit_nstate <= SDINIT_CMD16;
   else sdinit_nstate <= SDINIT_CMD1;
  end*/
  SDINIT_CMD16: begin
   if(cmd_rdy && (spi_rx_dbr == 8'h00)) sdinit_nstate <= SD_IDLE;
   else sdinit_nstate <= SDINIT_CMD16;
  end
  SD_IDLE: sdinit_nstate <= SD_RD_PT;
  SD_RD_PT: begin
   if(cmd_rdy) sdinit_nstate <= SD_RD_BPB;
   else sdinit_nstate <= SD_RD_PT;
  end
  SD_RD_BPB: begin
   if(cmd_rdy && arg == arg_r+P_MEM-32'h0000_0200) sdinit_nstate <= SD_DELAY;
   else sdinit_nstate <= SD_RD_BPB;
  end
  SD_DELAY: begin
   if(done_5s) sdinit_nstate <= SD_IDLE; //显示下一幅图片
   else sdinit_nstate <= SD_DELAY;
  end
default: sdinit_nstate <= SDINIT_RST;
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 | 只看该作者
占个楼层

使用特权

评论回复
5
GoldSunMonkey| | 2013-2-14 23:04 | 只看该作者
seaundersky 发表于 2013-2-14 00:12
怎么检查= =
用testbench?

chipscope

使用特权

评论回复
6
seaundersky|  楼主 | 2013-2-14 23:19 | 只看该作者
GoldSunMonkey 发表于 2013-2-14 23:04
chipscope

额,那个是XILINX的吧,我用的是A的= =

使用特权

评论回复
7
seaundersky|  楼主 | 2013-2-14 23:21 | 只看该作者
GoldSunMonkey 发表于 2013-2-14 23:04
chipscope

会不会是跟sd卡用关呢,我用的是2g的sd卡

使用特权

评论回复
8
seaundersky|  楼主 | 2013-2-14 23:23 | 只看该作者
GoldSunMonkey 发表于 2013-2-14 23:04
chipscope

不过A的也可以用signaltap来看,需要看什么信号呢?

使用特权

评论回复
9
Backkom80| | 2013-2-16 09:09 | 只看该作者

使用特权

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

本版积分规则

5

主题

26

帖子

0

粉丝