TI中文支持网
TI专业的中文技术问题搜集分享网站

ADS1256可以读寄存器的数据,但是读取不了电压的数据

我用普通GPIO的方式模拟SPI总线的方式去模拟,向寄存器写入了数据,然后再将他读取出来,数据是正确的,但是当我发送完sync、wakeup和radata命令后,读取电压的数据一直为0,这是怎么回事?

unsigned int value = LOW;
while(1)
{
gpio_get_value(DRDY, &value);
if (!value)
break;
}
ADS1256SPI(ADS1256_CMD_SYNC); //ADS1256转换指令
ADS1256SPI(ADS1256_CMD_WAKEUP); //ADS1256唤醒指令

while(1)
{
gpio_get_value(DRDY, &value);
if (!value)
break;
}
ADS1256SPI(ADS1256_CMD_RDATA); //ADS1256转换指令
gpio_set_value(SCLK, LOW);
DelayMs(DELAY_1US*100);

user151383853:

先看看有没有启动转换呢?

ChoBen LEUNG:

回复 user151383853:

第一条为SCLK,第二条为发送rdata,第三条为DRDY,怎么看有没有转换?

Carter Liu:

回复 ChoBen LEUNG:

时序是对的,数据线DOUT上一直是低电平吗

ChoBen LEUNG:

回复 Carter Liu:

对,DOUT一直都是低电平,这怎么回事啊?THX

Carter Liu:

回复 ChoBen LEUNG:

寄存器配置是怎样的?单次还是连续转换?电源电压、参考电压都正常吗

ChoBen LEUNG:

回复 Carter Liu:

readDrdyLowLevel(); ADS1256SPI(ADS1256_CMD_SELFCAL); readDrdyHighLevel(); readDrdyLowLevel(); ADS1256WREG(ADS1256_STATUS,0xf7); ADS1256WREG(ADS1256_MUX,0x18); ADS1256WREG(ADS1256_ADCON,0x00); ADS1256WREG(ADS1256_DRATE,ADS1256_DRATE_50SPS);

readDrdyLowLevel(); ADS1256SPI(ADS1256_CMD_SELFCAL); readDrdyHighLevel(); readDrdyLowLevel();

单次采集,电压电压、参考电压都正常,刚才不知道为什么可以读到正常的电压数据,但是后来重新运行程序就不行了。

ChoBen LEUNG:

回复 Carter Liu:

你好,这个问题怎么出来啊?

Jason Shen:

对某个寄存器写操作后,再读取,看是否设置成功?

ChoBen LEUNG:

回复 Jason Shen:

设置成功,但是电压数据还是读不出来!还是原来那样

chuan xu2:

回复 Jason Shen:

你好,我做ADS1256的模拟数据采集的时候,遇到些问题,可否加qq,或者微信聊一下

赞(0)
未经允许不得转载:TI中文支持网 » ADS1256可以读寄存器的数据,但是读取不了电压的数据
分享到: 更多 (0)