[FPGA] 锆石科技开发板例程运行不对的问题

[复制链接]
1883|3
 楼主| 比神乐 发表于 2023-7-12 19:21 | 显示全部楼层 |阅读模式
我有锆石科技开发板的资料,正在听视频教程软核部分。
听到SPI那一讲,但是锆石科技开发板让我卖了,又买了一个简单的。
芯片型号都一样。
运行SPI_SD卡例程

只是复位成功,初始化和写都失败。不过单独用vreilog程序是可以的。
请问高手,可能是哪里出了问题?谢谢!

本帖子中包含更多资源

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

×

评论

@cooldog123pp :好像不是吧  发表于 2023-7-13 12:37
是专门做电机驱动的那家么  发表于 2023-7-13 11:35
 楼主| 比神乐 发表于 2023-7-12 20:50 | 显示全部楼层
初始化代码:
  1. alt_u8 Spi_SDInit(void)
  2. {
  3.         alt_u8 r1;                        //响应变量
  4.         alt_u8 time = 0;        //超时变量
  5.     alt_u8 r7[4];                //响应变量

  6.     //发送CMD8检测接口条件,若r1返回0x01,r7返回0x000001aa,则表示检测成功
  7.         do{

  8.                 r1 = Spi_SDSendCmd(8,0x000001aa,0x87);         //发送CMD8命令
  9.         r7[0]= Spi_SDReadByte();                                 //读取响应0x00
  10.         //r7 <<= 8;
  11.         r7[1]= Spi_SDReadByte();                                 //读取响应0x00
  12.         //r7 <<= 8;
  13.         r7[2]= Spi_SDReadByte();                                 //读取响应0x01
  14.         //r7 <<= 8;
  15.         r7[3]= Spi_SDReadByte();                                 //读取响应0xaa
  16.                 time++;
  17.                 if(time > 254) return 1;                                //超时退出返回1

  18.         }while((r1 != 0x01) && (r7 != 0x000001aa));        //等待r1返回0x01,r7返回0x000001aa

  19.         time = 0;

  20.         //此处省略发送CMD58命令

  21.         //发送CMD55+ACMD41,收到0x00表示成功
  22.         do{

  23.                 r1 = Spi_SDSendCmd(55,0,0xff); //发送CMD55命令
  24.                 if(r1 == 0x01) r1 = Spi_SDSendCmd(41,0x40000000,0xff); //发送ACMD41命令
  25.                 time++;
  26.                 if(time > 254) return 1; //超时退出返回1

  27.         }while(r1 != 0x00); //等待返回0x00

  28.         //此处省略发送CMD58命令

  29.         return 0; //初始化成功,则返回0
  30. }
调试发现r1=1,是对的,可是r7是个很大的数。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

470

主题

3537

帖子

7

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