ADS124S08: 数据读取有问题

Part Number: ADS124S08


项目中使用ADS124S08芯片,采集3路四线PT100的温度,采用外部基准电压REFP1和REFN1;通过切换IDAC1恒流源采集3路PT100,现在遇到的问题是ADC采集的值不准,恒流源大小改变,ADC的值也会发生改变;电路原理图如下:

void ADS124S08_Init(void)
{
uint8_t status;
uint8_t Cmd;
uint8_t Gain; //PGA增益

ADS124S08_Reset(); //系统复位

ADS124S08_ReadReg( REG_STATUS, &status, 1);
if ( (status & ADS124_GetRdy) )
{
return; // Device not ready
}
else
{
Cmd = 0x00; //清除POR标志位
ADS124_WriteOneReg(REG_STATUS,Cmd);
}

// 1. 配置IDAC恒流源:IDAC1输出到AIN3
Cmd = 0xF3; // 0000 0011 - IDAC1=AIN3, IDAC2=断开
ADS124_WriteOneReg(REG_IDACMUX,Cmd);

// 2. 设置IDAC电流大小:1000uA
Cmd = 0x07; // IMAG[3:0]=0111 (1000uA)
ADS124_WriteOneReg(REG_IDACMAG,Cmd);

// 3. 配置输入多路复用器:测量AIN4-AIN5的差分电压
Cmd = (POSI_AIN(4) | NEGA_AIN(5));
ADS124_WriteOneReg(REG_INPMUX,Cmd);

// 4. 配置参考电压:使用外部参考1(REFP1/REFN1)
Cmd = 0x05; // 0011 0000
// Bit7-6: FL_REF_EN = 00 (禁用故障检测)
// Bit5: REFP_BUF = 1 (禁用REFP缓冲器)
// Bit4: REFN_BUF = 1 (禁用REFN缓冲器)
// Bit3-2: REFSEL = 01 (选择外部参考1 - REFP1/REFN1)
// Bit1-0: REFCON = 00 (参考始终开启)
ADS124_WriteOneReg(REG_REF,Cmd);

// 5. 设置PGA增益
Gain = PGA_ENABLE | GAIN_8; // 使能PGA,增益8
ADS124_WriteOneReg(REG_PGA,Gain);

// 6. 设置数据速率
Cmd = 0x10 | SPS_20; // 单次转换,20SPS,低延迟滤波
// 对于PT100测量,不需要太高采样率,20SPS足够
ADS124_WriteOneReg(REG_DATARATE,Cmd);

// 7. 系统配置
Cmd = 0x10; // 默认配置:采样8次,禁用CRC和STATUS byte
ADS124_WriteOneReg(REG_SYS,Cmd);

// 8. 偏置电压配置(可选)
Cmd = 0x00; // 禁用所有偏置电压
ADS124_WriteOneReg(REG_VBIAS,Cmd);

// 等待稳定
Delay_ms(100);

// 开始转换
AD_START_LOW;
ADS124_WriteCmd(CMD_START);

}

   初始化配置程序如下: