我利用信号发生器输出接到ADS1299上进行测试的时候,发现刚开始运行的时候各个通道都没有问题,但是过了四五分钟左右之后就出现了好几个通道都出现了失真的情况,请问这是什么原因呢?

This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
/**ADS1299上电复位 **/
void ADS_PowerOnInit(uint8_t num)
{
uint8_t temp=0;
switch(num)
{
case 0:
GPIO_write(CONFIG_ADS1299_CS1, 0);//Low to communicated
usleep(1000);
SPI_ReadWriteByte(ADS_RESET);
usleep(1000);//wait for stable,最小2个SCLK
SPI_ReadWriteByte(SDATAC);//STOP命令在硬件上已经将START拉低了
usleep(1000);//wait for stable
//*fc for bias test
ADS_REG(num,WREG|ID,0X3e); //ID:0X3E
usleep(5);
ADS_REG(num,WREG|CONFIG1,0xf4); // 启动CLK时钟输出 数据速率为1ksps
usleep(5);
ADS_REG(num,WREG|CONFIG2,0Xd0);//测试方波信号内部产生,方波幅值(VREFP–VREFN)/2400=±3.75mV 增益24 实际测到的电压±90mV 权值 4500000uV/8838606 = 0.509uV
usleep(5);
ADS_REG(num,WREG|CONFIG3,0Xec); //使用内部参考电压,BIASREF使用内部产生(AVDD+AVSS)/2,使能BIAS buffer ec
usleep(5);
ADS_REG(num,WREG|LOFF,0X00); //关闭导联脱落检测相关
usleep(5);
//0x65 内部方波测试,0x61 内部噪声测试
ADS_REG(num,WREG|CH1SET,0X65); //amplified x24
usleep(5);
ADS_REG(num,WREG|CH2SET,0X65); //amplified x24
usleep(5);
ADS_REG(num,WREG|CH3SET,0X65); //amplified x24
usleep(5);
ADS_REG(num,WREG|CH4SET,0X65); //amplified x24
usleep(5);
ADS_REG(num,WREG|CH5SET,0X65); //amplified x24
usleep(5);
ADS_REG(num,WREG|CH6SET,0X65); //amplified x24
usleep(5);
ADS_REG(num,WREG|CH7SET,0X65); //amplified x24
usleep(5);
ADS_REG(num,WREG|CH8SET,0X65); //amplified x24
usleep(5);
ADS_REG(num,WREG|BIAS_SENSP,0X01); //使用对应通道右腿驱动
usleep(5);
ADS_REG(num,WREG|BIAS_SENSN,0X01); //使用对应通道右腿驱动
usleep(5);
ADS_REG(num,WREG|LOFF_SENSP,0X00); //使用对应通道右腿驱动
usleep(5);
ADS_REG(num,WREG|LOFF_SENSN,0X00); //使用对应通道右腿驱动
usleep(5);
ADS_REG(num,WREG|LOFF_FLIP,0X00); //使用对应通道右腿驱动
usleep(5);
ADS_REG(num,WREG|LOFF_STATP,0X00); //使用对应通道右腿驱动
usleep(5);
ADS_REG(num,WREG|LOFF_STATN,0X00); //使用对应通道右腿驱动
usleep(5);
ADS_REG(num,WREG|GPIO,0X00); //使用对应通道右腿驱动
usleep(5);
ADS_REG(num,WREG|MISC1,0X20); //使用对应通道右腿驱动
usleep(5);
ADS_REG(num,WREG|MISC2,0X00); //使用对应通道右腿驱动
usleep(5);
ADS_REG(num,WREG|CONFIG4,0X00); //使用对应通道右腿驱动
usleep(5);
GPIO_write(CONFIG_ADS1299_CS1, 1);
temp=ADS_REG(num,RREG|CONFIG1,0xf4); // 250Hz 0x96;500hz,0x95
LOG_INFO("CONFIG1: 0X%x", temp);
break;
case 1:
GPIO_write(CONFIG_ADS1299_CS2, 0);//Low to communicated
usleep(5);
SPI_ReadWriteByte(ADS_RESET);
usleep(9);//wait for stable
SPI_ReadWriteByte(SDATAC);
usleep(10);//wait for stable
//*fc for bias test
ADS_REG(num,WREG|ID,0X3e); //ID:0X3E
usleep(5);
ADS_REG(num,WREG|CONFIG1,0xd4); // 启动CLK时钟输出 数据速率为1ksps
usleep(5);
ADS_REG(num,WREG|CONFIG2,0Xd0);//测试方波信号内部产生,方波幅值(VREFP–VREFN)/2400=±3.75mV 增益24 实际测到的电压±90mV 权值 4500000uV/8838606 = 0.509uV
usleep(5);
ADS_REG(num,WREG|CONFIG3,0Xe8); //使用内部参考电压,BIASREF使用内部产生(AVDD+AVSS)/2,使能BIAS buffer ec
usleep(5);
ADS_REG(num,WREG|LOFF,0X00); //关闭导联脱落检测相关
usleep(5);
ADS_REG(num,WREG|CH1SET,0X65); //amplified x24
usleep(5);
ADS_REG(num,WREG|CH2SET,0X65); //amplified x24
usleep(5);
ADS_REG(num,WREG|CH3SET,0X65); //amplified x24
usleep(5);
ADS_REG(num,WREG|CH4SET,0X65); //amplified x24
usleep(5);
ADS_REG(num,WREG|CH5SET,0X65); //amplified x24
usleep(5);
ADS_REG(num,WREG|CH6SET,0X65); //amplified x24
usleep(5);
ADS_REG(num,WREG|CH7SET,0X65); //amplified x24
usleep(5);
ADS_REG(num,WREG|CH8SET,0X65); //amplified x24
usleep(5);
ADS_REG(num,WREG|BIAS_SENSP,0X00); //使用对应通道右腿驱动
usleep(5);
ADS_REG(num,WREG|BIAS_SENSN,0X00); //使用对应通道右腿驱动
usleep(5);
ADS_REG(num,WREG|LOFF_SENSP,0X00); //使用对应通道右腿驱动
usleep(5);
ADS_REG(num,WREG|LOFF_SENSN,0X00); //使用对应通道右腿驱动
usleep(5);
ADS_REG(num,WREG|LOFF_FLIP,0X00); //使用对应通道右腿驱动
usleep(5);
ADS_REG(num,WREG|LOFF_STATP,0X00); //使用对应通道右腿驱动
usleep(5);
ADS_REG(num,WREG|LOFF_STATN,0X00); //使用对应通道右腿驱动
usleep(5);
ADS_REG(num,WREG|GPIO,0X00); //使用对应通道右腿驱动
usleep(5);
ADS_REG(num,WREG|MISC1,0X20); //使用对应通道右腿驱动
usleep(5);
ADS_REG(num,WREG|MISC2,0X00); //使用对应通道右腿驱动
usleep(5);
ADS_REG(num,WREG|CONFIG4,0X00); //使用对应通道右腿驱动
usleep(5);
GPIO_write(CONFIG_ADS1299_CS2, 1);
temp=ADS_REG(num,RREG|CONFIG1,0xf4); // 250Hz 0x96;500hz,0x95
LOG_INFO("CONFIG1: 0X%x", temp);
break;
}
}