ADS1256采集传感器信号有断电重复性不好的问题?
使用ADS1256采集一个传感器的输出信号,发现系统每次上电后采集到的电压值会有不同,大约有30uV的偏差(传感器是高精度加速度计,理论上只要保持静止,信号不会出现整体偏移)
刚开始以为是传感器或者电源以及基准电源的上电重复性有问题造成,但通过逐步排除确定是ADS1256的问题,排除过程因为饶了很多弯不再叙述,现在故障现象比较明确:只要ADS1256进行初始化,采集的电压就会有明显的上偏移或者下偏移,偏移幅度不定,最大约30uV,ADS1256初始化时,传感器 供电电源等均是处于工作状态。
我用了两个方法让系统在不断电的情况下让ADS1256初始化,(这样排除了传感器 电源等上电重复性因素的干扰)
1.单片机处与仿真状态,利用仿真器让单片机重启,这样ADS1256初始化函数就会运行一遍,采集电压出现整体上移或下移
2. 为排除单片机原因,单片机处于正常工作状,向单片机发送异步串口命令,单片机接到这个命令,运行一次ADS1256初始化函数一次,采集电压同样出现整体上移或下移
请教TI工程师,可能的原因?附上我的初始化函数代码
void ads1256_init(void)
{
ADS1256CS_L();
while(DRDY_ads1256==0);
while(DRDY_ads1256);
SPI1_RWByte(CMD_RESET);
while(DRDY_ads1256);
delay(50);
ads1256_write_reg(REG_STATUS ,0xf6);
delay(10);
ads1256_write_reg(REG_MUX ,0x01);
delay(10);
ads1256_write_reg(REG_ADCON ,0x01);
delay(10);
ads1256_write_reg(REG_DRATE ,0xA1);
delay(10);
ads1256_write_reg(REG_IO ,0x00);
delay(50000);
while(DRDY_ads1256);
SPI1_RWByte(CMD_SELFCAL);
while(DRDY_ads1256);
ADS1256CS_H();
}
不知道是偏大还是偏小?
刚初始化后有些不大的偏差, 可能芯片内部的电路还没有调整稳定, 比如基准电压的稳定性.
可否初始化后留一点延迟时间 来解决这个问题?