如图为ads1115采集电路,ads1115供电电压为+5V,四路共模输入。
Config寄存器配置如下:
typedef union
{
struct
{
Uint16 COMP_QUE :2;
Uint16 COMP_LAT :1;
Uint16 COMP_POL :1;
Uint16 COMP_MODE :1;
Uint16 DR :3; //转换速率,000:8SPS,001:16SPS,010:32SPS,011:64SPS,100:128SPS(默认),101:250SPS,110:475SPS,111:860SPS
Uint16 MODE :1; //0:连续转换模式,1:单个转换模式
Uint16 PGA :3; //可编程放大系数000:FSR=6.144V,001:FSR=4.096V,010:FSR=2.048V
Uint16 MUX :3; //通道切换100:AIN0,101:AIN1,110:AIN2,111:AIN3
Uint16 OS :1;//
}b;
Uint16 val;
}_DEF_ADS1115_CFG;
static void ADS1115_Switch_Channl(uint8_t ch)
{
_DEF_ADS1115_CFG ADS1115;
ADS1115.b.COMP_QUE =3;
ADS1115.b.COMP_LAT =0;
ADS1115.b.COMP_POL =0;
ADS1115.b.COMP_MODE =0;
ADS1115.b.DR =4; //1S转换128SPS
ADS1115.b.MODE =0; //连续转换模式
ADS1115.b.PGA =0; //参考电压正负6.144V
ADS1115.b.MUX =ch; //AIN0输入
ADS1115.b.OS =0; //
AD1_WriteBytes(ConfigReg,ADS1115.val);
}
AIN0输入电压为4.3V,AIN2输入电压为0.94V。但采集得到的AD值为 0X191B和0X138D,经计算采集得到的值为1.2V 和 0.94V。
请问一下,为什么输入电压为4.3V时输入电压不对,0.97v是正确的呢?还是说在+5V的供电电压下,FSR不能配置为6.144V,是配置问题吗?
