打印

关于SD卡驱动的求助

[复制链接]
1185|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
gxy198715a|  楼主 | 2014-2-21 10:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位大侠,
小弟用fpga给SD卡发送了CMD0,CMD8,CMD55,但是,SD卡一直没有发送响应啊!所以,程序一直在这三个指令之间循环。
我用 SD卡上面有SD4/8GB的标记。它应该在CMD8的时候,就有回应啊!

相关帖子

沙发
tyw| | 2014-2-21 11:08 | 只看该作者

使用特权

评论回复
评论
zxcscm 2014-2-21 11:17 回复TA
tyw太强大了 
板凳
houyue——| | 2014-2-21 11:23 | 只看该作者
我只做过SPI模式的 初始化过程是先发100多个时钟再发CMD0  SD卡返回1 再发送CMD1  SD卡返回0则初始化成功继续其他操作

使用特权

评论回复
地板
gxy198715a|  楼主 | 2014-2-21 14:35 | 只看该作者
houyue—— 发表于 2014-2-21 11:23
我只做过SPI模式的 初始化过程是先发100多个时钟再发CMD0  SD卡返回1 再发送CMD1  SD卡返回0则初始化成功继 ...

那你又verilog的SPI代码吗?可以发我一份吗?

使用特权

评论回复
5
houyue——| | 2014-2-21 16:15 | 只看该作者
uint8_t SD_Init(void)
{
   
   uint8_t over,temp;
   uint8_t i;

   spi_ss (0);      //SD卡片选有效
  for (i=0;i<0x0f;i++)
   {
      spi_send(0xff); //100多个时钟
   }
   
                                      //CMD0
over=0;
  
   do
   {
  SD_Write_Command(0,0,0x95);    //CMD0
  temp=spi_send(0xff);         //读回SD卡返回数据
     over++;
     if(over==100)                 //超时
     {
      return(0);//CMD0 Error!     
     }
   }
   while(temp!=1);
  


//CMD1
   over=0;
   do
   {
     
     SD_Write_Command(1,0,0XFF);      //CMD1
     temp= spi_send(0xff);   //读回SD卡数据
     over++;
     if(over==100)
     {
     ;
     }
   }
   while(temp!=0);
   over=0;
   spi_ss (1);   
   return(1);
}

有个C语言的,我不太了解FPGA的开发,不过应该可以嵌套C的,这个你参考一下,具体配置,初始化时序要看上面tyw提供的资料,另外一般都嵌个文件系统,去znFAT专区看看。

使用特权

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

本版积分规则

180

主题

385

帖子

1

粉丝