请教ADS1292的SPI接口读不出数据
时间:10-02
整理:3721RD
点击:
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
}