关于ADS1220问题: AIN0P+AIN1N 模式测量错误, AIN0+AVSS 模式测量正确. AIN1N接的1650mv.
时间:10-02
整理:3721RD
点击:
大家好! 我此前项目的ADC部分用的是 ADI的AD7795,
他的每个通道可以做成差分输入.
对于AD7795:
AIN1+接传感器信号输出, AIN1-如果接地, 那么是单极性,
AIN- 接参考电压的一半时, 是基于AIN-的一个正和负的值.
同样的思路, 我用在ADS1220时, 发现问题还挺大的. 如电路图, 我给芯片是3.3V的参考电压,
如果用AIN0=P, AIN1=N(1650mv), 程序读到的结果是错误的.
如果用AIN0=P, 测量他和ASS值确实正确的.
难道这个芯片不使用双极性电源时无法实现双极性测量吗?
/* ADS1220_MUX_AIN0_AVSS 模式,可以正确读取 */ Setup_ADS1220 (ADS1220_MUX_AIN0_AVSS, ADS1220_OP_MODE_NORMAL, ADS1220_CONVERSION_CONTINUOUS, ADS1220_DATA_RATE_20SPS, ADS1220_GAIN_1, ADS1220_USE_PGA, ADS1220_IDAC1_DISABLED, ADS1220_IDAC2_DISABLED, ADS1220_IDAC_CURRENT_OFF, ADS1220_VREF_EXT_REF0_PINS, ADS1220_TEMP_SENSOR_OFF); /* ADS1220_MUX_AIN0_AIN1模式, 读取不正确 */ Setup_ADS1220 (ADS1220_MUX_AIN0_AIN1, ADS1220_OP_MODE_NORMAL, ADS1220_CONVERSION_CONTINUOUS, ADS1220_DATA_RATE_20SPS, ADS1220_GAIN_1, ADS1220_USE_PGA, ADS1220_IDAC1_DISABLED, ADS1220_IDAC2_DISABLED, ADS1220_IDAC_CURRENT_OFF, ADS1220_VREF_EXT_REF0_PINS, ADS1220_TEMP_SENSOR_OFF);
ADS1220_Get_Conversion_Data((unsigned char *)tempData); // 写一个全为0, 让DIN为0 // SPI_Write_Byte(0); // while ( (P2IN & BIT6)==BIT6); // 高电平等待, 低电平跳出 ADS1220code = (((long)tempData[0] << 16) + ((long)tempData[1] << 8) + (long)tempData[2]); // take 3 bytes of voltage returned and place in word voltage= ADS1220code * 0.000393390655517578125; // ((2*3300)/增益)/(2^24)
参考电压是: REF2033提供.我测量了AIN1是1650mv.
我看, 不是程序的问题, 还是信号的问题. 输入信号不要超出 VREF 的范围才好
没超过, 才70多mv.
有人帮忙解答一下吗?
顶一顶