打印
[FPGA]

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

[复制链接]
1644|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
我有锆石科技开发板的资料,正在听视频教程软核部分。
听到SPI那一讲,但是锆石科技开发板让我卖了,又买了一个简单的。
芯片型号都一样。
运行SPI_SD卡例程

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

使用特权

评论回复
评论
比神乐 2023-7-13 12:37 回复TA
@cooldog123pp :好像不是吧 
cooldog123pp 2023-7-13 11:35 回复TA
是专门做电机驱动的那家么 

相关帖子

沙发
比神乐|  楼主 | 2023-7-12 20:50 | 只看该作者
初始化代码:
alt_u8 Spi_SDInit(void)
{
        alt_u8 r1;                        //响应变量
        alt_u8 time = 0;        //超时变量
    alt_u8 r7[4];                //响应变量

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

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

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

        time = 0;

        //此处省略发送CMD58命令

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

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

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

        //此处省略发送CMD58命令

        return 0; //初始化成功,则返回0
}
调试发现r1=1,是对的,可是r7是个很大的数。

使用特权

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

本版积分规则

436

主题

3415

帖子

7

粉丝