关于SD卡驱动的求助

[复制链接]
1487|4
 楼主| gxy198715a 发表于 2014-2-21 10:33 | 显示全部楼层 |阅读模式
各位大侠,
小弟用fpga给SD卡发送了CMD0,CMD8,CMD55,但是,SD卡一直没有发送响应啊!所以,程序一直在这三个指令之间循环。
我用 SD卡上面有SD4/8GB的标记。它应该在CMD8的时候,就有回应啊!
tyw 发表于 2014-2-21 11:08 | 显示全部楼层

评论

tyw太强大了  发表于 2014-2-21 11:17
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代码吗?可以发我一份吗?
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

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