TI论坛
直播中

贾永世

7年用户 1805经验值
私信 关注
[问答]

使用ADS1247测温,有恒定误差,多次复位后偶发性正常,为什么?


  • 您好,我使用四线制PT100测温,使用芯片ADS1247,使用100Ω标准电阻模拟PT100接入看测温是否准确,设置的恒流源电流为500uA,PGA增益为8,已经计算过共模输入范围是符合的,出现的问题是,有一个2.5℃恒定误差,多次复位会偶尔正常,复位20次左右会有一次正常值。
    正常值是多次复位偶尔可以得到一次,表格中是正常值与异常值对比,复位采取对板卡断电又上电,后面我又尝试了只使用RESET引脚复位,还是同样的情况。

    使用示波器看波形:波形完全正常





    原理图和代码附上:

    void task_ads1248_Reset()
    {
    RESET_OPEN();//复位拉低
    Delay_ms(20);
    RESET_CLOSE();//复位拉高
    Delay_ms(20);

    Dev_Ads1248_Write_Reg_Byte(DEV_ADS1248_IDAC0, 0x04); /* 设置恒流源IDACs的输出电流 *///0000 0100 电流为500微安
    Dev_Ads1248_Write_Reg_Byte(DEV_ADS1248_SYS0, 0x31);//0011 0001 系统控制寄存器,PGA增益为8,ADC的输出数据率为10SPS
    Dev_Ads1248_Write_Reg_Byte(DEV_ADS1248_MUX1, 0x20);//0010 0000 内部电压总是启动,REF0
    Dev_Ads1248_Write_Reg_Byte(DEV_ADS1248_IDAC1,0xf0);//0000 0000 恒流源输出通道,选择通道0
    Dev_Ads1248_Write_Reg_Byte(DEV_ADS1248_MUX0,0x11); //0001 0001 通道选择,Pos:AIN2 Neg:AIN1
    }
    float Get_adsTemp()//得到当前温度值
    {
    static u8 Flag = 0;
    int32_t adc_raw;/* -8388608 至 8388607 *///2的23次方
    float value_of_res; /* 阻值 */
    // DRDY数据转换完成标志
    if(ADS1248_DRDY_Flag == 1)
    {

    ADS1248_DRDY_Flag = 0;
    adc_raw = Dev_Ads1248_Read_Data(); // read the value from the selected channel
    printf("adc_raw:%xrn",adc_raw);
    value_of_res=(float)adc_raw/8388608.f*2000.f/8.f;//参考电阻为2000Ω,PGA增益为8
    printf("value_of_res:%frn",value_of_res);
    Temp=TEMP_ADS1248(value_of_res);
    printf("Temp:%frn",Temp);
    }
    return Temp;
    }

回帖(3)

孙海燕

7 天前
您使用的100Ω电阻精度是多少?如果是1%精度的电阻,正好有大概1Ω的误差,会不会是100Ω电阻本身存在的误差造成的?
所使用的100Ω电阻温漂参数是怎样的?一上电测量就有2.5℃的误差吗?有没有可能是电阻发热电阻阻值发生变化造成的?因为您描述“复位20次左右会有一次正常值”,我再想是不是复位20次,100Ω的电阻的温度就降下来了,所以会正常一次,随着恒定电流的持续通过,电阻再次发热变的不准确?
举报

刁海鹏

7 天前
  复位后应该有寄存器配置,每次复位寄存器配置后您是否回读所有的寄存器值,看是否一样?
另外,您是否执行了校准操作?
举报

刘娟

7 天前
根据您的描述,您在使用ADS1247芯片测量PT100温度时遇到了恒定误差问题,多次复位后偶尔能获得正常值。以下是一些建议和可能的原因:

1. 硬件问题:检查您的电路连接是否正确,包括PT100、100Ω标准电阻、ADS1247芯片之间的连接。确保没有接触不良或短路的情况。

2. 电源问题:检查您的电源是否稳定,电压波动可能会影响测量结果。确保电源电压在规定的范围内。

3. 复位问题:您提到多次复位后偶尔能获得正常值,这可能与复位电路有关。检查您的复位电路是否正确,包括RESET引脚的连接和复位电路的稳定性。

4. 软件问题:检查您的代码是否正确,包括ADS1247的初始化、配置和读取数据。确保您正确地设置了PGA增益、采样率等参数。

5. 干扰问题:检查您的测量环境是否存在电磁干扰,这可能会影响测量结果。尝试在不同的环境下进行测量,以排除干扰的可能性。

6. 芯片问题:如果以上方法都无法解决问题,可能是ADS1247芯片本身存在问题。您可以尝试更换一个芯片,看看问题是否得到解决。

综上所述,您需要从硬件、电源、复位、软件和干扰等方面进行排查,以找到问题的根本原因。希望这些建议对您有所帮助。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分