chenbingjy 发表于 2023-7-12 19:21

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

<p>我有锆石科技开发板的资料,正在听视频教程软核部分。</p>

<p>&nbsp;</p>

<p>听到SPI那一讲,但是锆石科技开发板让我卖了,又买了一个简单的。</p>

<p>芯片型号都一样。</p>

<p>运行SPI_SD卡例程</p>

<p></p>

<p>只是复位成功,初始化和写都失败。不过单独用vreilog程序是可以的。</p>

<p>请问高手,可能是哪里出了问题?谢谢!</p>

chenbingjy 发表于 2023-7-12 20:51

<p>初始化代码:</p>

<pre>
<code>alt_u8 Spi_SDInit(void)
{
        alt_u8 r1;                        //响应变量
        alt_u8 time = 0;        //超时变量
    alt_u8 r7;                //响应变量

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

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

        }while((r1 != 0x01) &amp;&amp; (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 &gt; 254) return 1; //超时退出返回1

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

        //此处省略发送CMD58命令

        return 0; //初始化成功,则返回0
}</code></pre>

<p>调试发现r1=1,是对的,可是r7是个很大的数。</p>

nmg 发表于 2023-7-13 11:06

<p>新买的他们不提供技术支持?</p>

wsmysyn 发表于 2023-7-13 20:16

nmg 发表于 2023-7-13 11:06
新买的他们不提供技术支持?

<p>我印象里是不是他们倒闭了, 几年前我记得官网就进不去了, 不知道是不是说的同一家公司<img height="28" src="https://bbs.eeworld.com.cn/static/editor/plugins/hkemoji/sticker/facebook/smiling-face-with-open-mouth-and-cold-sweat_1f605.png" width="28" /></p>

led2015 发表于 2023-7-13 21:15

<p>确保开发板和SD卡都获得了足够的电源。SD卡需要特定的电源电压,如果电压不足,可能会导致读写失败。</p>

chenbingjy 发表于 2023-7-14 10:26

led2015 发表于 2023-7-13 21:15
确保开发板和SD卡都获得了足够的电源。SD卡需要特定的电源电压,如果电压不足,可能会导致读写失败。

<p>单独用vreilog是可以读写成功的</p>

chenbingjy 发表于 2023-7-14 10:27

<div class='shownolgin' data-isdigest='no'>nmg 发表于 2023-7-13 11:06
新买的他们不提供技术支持?

<p>新买的教程里面没有软核</p>
</div><script>showreplylogin();</script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script>
页: [1]
查看完整版本: 锆石科技开发板例程运行不对的问题