TI中文支持网
TI专业的中文技术问题咨询交流网站

ADS8689转换值计算

设置单极性5.12V

ADS8689_ReadWrite(ADS8689_WRITE_FULL, ADS8689_RANGE_SEL_REG, 0x000B); // 单极性5.12
Delay_ms(100);
ADS8689_ReadWrite(ADS8689_WRITE_FULL, ADS8689_DATAOUT_CTL_REG, 0x7d00); //Value output is the conversion data

每秒读一次转换值

ADS8689_ReadWrite(ADS8689_NOP, 0x00, 0x0000);
ADS8689_ReadWrite(ADS8689_NOP, 0x00, 0x0000);

这个转换值要通过什么公式计算出电压是多少伏?

Amy Luo:

您好,
用该器件二进制格式的输出乘以LSB值,LSB值请查看数据手册7.3.8 ADC Transfer Function部分,对于参考电压VREF=4.096 V,表4列出了与不同输入范围相对应的LSB值。

user6235274:

回复 Amy Luo:

如您所说,设置ADS8689量程为单极性5.12V,LSB为78.125uV,AIN_P输入电压为0V,读取二进制数值0x7E83,乘以LSB之后为2.530V。我在网上找到一个公式 x = (float)(5.12*(temp-32768)*4.096/65536);是这样计算的,现在不知道怎样正确计算?

Amy Luo:

回复 user6235274:

根据数据手册Figure 65.输入电压为0的话,输出code应该也是0,所以请检查您的寄存器设置和读取数据时序是否正确

user6235274:

回复 Amy Luo:

ADS8689_ReadWrite_Simulation(ADS8689_WRITE_FULL, ADS8689_RANGE_SEL_REG, 0x000B); // 单极性5.12
Delay_ms(100);
ADS8689_ReadWrite_Simulation(ADS8689_WRITE_FULL, ADS8689_DATAOUT_CTL_REG, 0x7d00); //Value output is the conversion data
Delay_ms(100);
我只是设置了这两个寄存器,没有其他设置,并且能够正确读出这两个寄存器的值,不知道该从哪里入手解决。

Amy Luo:

回复 user6235274:

您可以用示波器测量下类似数据手册Figure3或Figure4的SPI通信时序图吗

user6235274:

回复 Amy Luo:

我使用软件模拟了初始化时序

Amy Luo:

回复 user6235274:

这几个时序图都是您写入寄存器的操作,请注意02地址寄存器Device ID register不能进行写操作

您上面帖子说您可以正确读取寄存器值,那么我认为您读取AD转换值出现了问题,您可以附上您读取AD转换值的时序波形图吗,即CONVST/CS,SCLK,SDI 和 SDO波形图

赞(0)
未经允许不得转载:TI中文支持网 » ADS8689转换值计算
分享到: 更多 (0)