ADS1247对PT100测温,不稳定。
对ADS1247寄存器的配置都已经完成了,也可以正常测温,就是有时候对ADS1247关掉电源再重新打开时,PT100测温就不正常,不正常时内部参考电压输出为2.01V。得反复多重启几次才可能正常。这是什么原因?
ADS_Start = 1;
ADS_CS = 0;
//发送复位命令
ADS_RESET = 0;
delay_ms(100);
ADS_RESET = 1;
delay_ms(10);
SPI1_Read_Write_1Byte(ADS1248_CMD_RESET);
delay_ms(10);
//初始化MUX0多路复用控制寄存器
ADS1247_Wirter_Register(ADS1248_REG_MUX0, ADS1248_MUX0_BURNOUT_CURRENT_SOURCE_OFF | ADS1248_MUX0_SP_AIN4 | ADS1248_MUX0_SN_AIN1);
//初始化VBIAS偏压寄存器
ADS1247_Wirter_Register(ADS1248_REG_VBIAS, ADS1248_VBIAS_OFF);
delay_ms(10); //延时等待10ms,等待偏压输入稳定
//初始化MUX1多路复用控制寄存器
ADS1247_Wirter_Register(ADS1248_REG_MUX1, ADS1248_MUX1_VREF_ALWAYS_ON | ADS1248_MUX1_VREF_SELECT_ONBOARD | ADS1248_MUX1_SYSTEM_MONITOR_NORMAL_OPERATION);
delay_ms(10); //延时等待10ms,等待内部基准稳定
//初始化SYS0系统控制寄存器
ADS1247_Wirter_Register(ADS1248_REG_SYS0, ADS1248_SYS0_PGA_128 | ADS1248_SYS0_AMPLES_PER_SECOND_10);
//初始化偏移校准系数寄存器
//ADS1247_Init_Offset_Calibration(0xffffaae3);
//初始化满量程校准系数寄存器
//ADS1247_Init_Full_Scale_Calibration(0x3fecbf);
//初始化IDAC0控制寄存器
ADS1247_Wirter_Register(ADS1248_REG_IDAC0, ADS1248_IDAC0_DOUT_AND_DRDY_PIN_ONLY_AS_DATA_OUT | ADS1248_IDAC0_EXCITATION_CURRENT_250UA);
//初始化IDAC1控制寄存器
ADS1247_Wirter_Register(ADS1248_REG_IDAC1,ADS1248_IDAC1_FIRST_CURRENT_SOURCE_AIN5 | ADS1248_IDAC1_SECOND_CURRENT_SOURCE_AIN0);
PT100 传感器是没有问题的. 只能是在测量系统.
只有在上电时引发问题, 那应该在上电过程中. 这个过程可能是复位问题, 也可能是初始化代码的问题.
最常用的手段是增加延时. 至于在代码的哪里加延时, 你试着看吧