This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

请教ADS1292的SPI接口读不出数据



CLKSEL脚设置为高电平,ADS_RST脚设置为高电平,START脚为低电平,测试SPI接口。执行读REG命令,发送0X20,0X01,0X0,0X0,读0地址2个字节数据。感觉时序没什么问题,回读的数据MISO脚一直为低电平。AVDD和DVDD都为+3.3V.

时序如下图,黄色线为CLK,请问是什么问题?

CS脚

MOSI脚

MISO脚,都为低电平

  • 从图形看, 可以大体判断为 "毫无反应" 的类型, 那么时序波形看到了,先检查一下 SPI 从机的供电, 复位, 信号连接和焊接有没有问题吧

  • 测试了,应该是复位时序的问题。通过以下代码测试,循环的复位,不是每次复位都能回读到正确的数据。回读的数据要么正确,要么全零。请问这颗芯片初始化是否有比较严格的时序?

    while(1)

    {

    for(ucLoop = 0; ucLoop < 5; ucLoop++)
    {
    printf("reg%d=0x%x\n",ucLoop,fnAdsRdReg(&CAdsSpi,ucLoop));  //读REG,并打印
    fnTickDelay(2);  //20ms
    }


    CLR_ADSRST_PORT();   //拉低复位脚
    printf("rst\n");
    fnTickDelay(100);  //1s
    SET_ADSRST_PORT();  //抬高复位脚
    fnTickDelay(200);  //2s
    fnSpiCmd(&CAdsSpi,0x11);  //sdatac

    }