如图为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,是配置问题吗?
Kailyn Chen:
这个是每个输入端的电压范围以及差分输入的电压范围。 在这个范围内即可正常采集。
6.144V是怎么回事?最大电压不能超过VDD=5V。