ADS1130读取的数据与实际值对应不上的问题
您好以上是我PT100采集与ADS1130的电路图
uint32_t ADS1130_Read(void) //ÔöÒæ128
{
unsigned long count;
unsigned char i;
// nrf_gpio_cfg_output(DIO);
// nrf_gpio_pin_set(DIO);
//nrf_gpio_cfg_input(DIO,GPIO_PIN_CNF_PULL_Disabled);
GPIO_ResetBits(ADS1130_SPEED_PORT,ADS1130_SPEED_PIN);
GPIO_SetBits(ADS1130_PDWN_PORT,ADS1130_PDWN_PIN);
GPIO_ResetBits(ADS1130_SCLK_PORT,ADS1130_SCLK_PIN);
// delay_us(10);
// ADS1130_SCK=0;
count=0;
while(GPIO_ReadInputDataBit(ADS1130_DIO_PORT,ADS1130_DIO_PIN)==1);
while(GPIO_ReadInputDataBit(ADS1130_DIO_PORT,ADS1130_DIO_PIN)==0);
delay_us(10);
for(i=0;i<24;i++)
{
GPIO_SetBits(ADS1130_SCLK_PORT,ADS1130_SCLK_PIN);
// ADS1130_SCK=1;
count=count<<1;
delay_us(1);
GPIO_ResetBits(ADS1130_SCLK_PORT,ADS1130_SCLK_PIN);
// ADS1130_SCK=0;
if(GPIO_ReadInputDataBit(ADS1130_DIO_PORT,ADS1130_DIO_PIN))
{
count++;
// nrf_delay_us(1);
}
delay_us(1);
}
delay_us(100);
GPIO_SetBits(ADS1130_SCLK_PORT,ADS1130_SCLK_PIN);
// ADS1130_SCK=1;
count>>=6;
delay_us(100);
GPIO_ResetBits(ADS1130_SCLK_PORT,ADS1130_SCLK_PIN);
// ADS1130_SCK=0;
GPIO_SetBits(ADS1130_PDWN_PORT,ADS1130_PDWN_PIN);
return(count);
}
上面是我读取ADS的程序,根据现在的电路,我测试AINP与AINN的电压差为0.014v的时候读取的值是23584,但是理论计算值 0.014v对应输出大概是 0.014*64 *131071/ 1.65 = 71175 芯片自带64倍的放大 18位差分;其他输入值也对应不上,测试到0.7V
左右达到正向满量程,与理论值差距很大,按照计算输入0.025就已经达到满量程了,请攻城狮们帮忙看看啥问题,花了不少时间了,谢谢
有可能是共模输入电压不满足要求。适当改一下两个桥臂的电阻阻值。