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

您所在的位置:网站首页 ads1247代码 ADS1247: 使用ADS1247测温,有恒定误差,多次复位后偶发性正常

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

2024-07-10 22:25| 来源: 网络整理| 查看: 265

Part Number: ADS1247 Other Parts Discussed in Thread: ADS1248

您好,我使用四线制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:%x\r\n",adc_raw); value_of_res=(float)adc_raw/8388608.f*2000.f/8.f;//参考电阻为2000Ω,PGA增益为8 printf("value_of_res:%f\r\n",value_of_res); Temp=TEMP_ADS1248(value_of_res); printf("Temp:%f\r\n",Temp);

} return Temp;}



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3