两个模拟通道在pic中相互影响

时间:2013-09-30 10:45:39

标签: embedded pic adc

通过使用嵌入式c读取pic 16f73中的adc值,我正在做一个识别手势的项目。使用单个adc频道时,一切正常。当我使用多个通道时,值会相互影响。这是硬件错误还是软件问题?

3 个答案:

答案 0 :(得分:1)

可能。它很可能是一个,或另一个,或两者兼而有之。将问题分成两半。

一次消除一个。两个模拟输入的范围/仪表。改变一个输入 - 另一个输入也改变了吗?如果是,则至少存在硬件问题。如果没有,那就是软件。

这是调试101。

答案 1 :(得分:1)

这是硬件效果,但不是错误。

来自datasheet

  

11.1 A / D采集要求   为了使A / D转换器达到规定的精度,   必须允许充电保持电容(CHOLD)   完全充电到输入通道电压电平。该   模拟输入模型如图11-2所示。来源   阻抗(RS)和内部采样开关(RSS)   阻抗直接影响充电所需的时间   电容器CHOLD。采样开关(RSS)   阻抗随器件电压(VDD)变化,见   图11-2。源阻抗会影响偏移   模拟输入端的电压(由于引脚漏电流)。   模拟信号源的最大推荐阻抗为10kΩ。模拟输入通道后   选择(更改),收购期必须通过   在转换开始之前。   要计算最小采集时间,TACQ,请参阅   PICmicro™中档MCU系列参考   手册(DS33023)。但是,一般情况下,最大源阻抗为10kΩ,温度为   在100℃下,TACQ将不超过16微秒。

答案 2 :(得分:1)

可能是因为您有高阻抗源驱动所有ADC引脚。当多路复用器从一个输入切换到下一个输入时,存储在前一个输入的ADC采样电容上的任何电荷仍然存在。

如果使用合适的运算放大器输出驱动每个输入,当ADC的多路复用器切换时,运算放大器能够驱动充电输入或从采样电容中吸出电荷,以及新输入所需的时间阅读可以大大减少。另外,使用此方法您无法加载想要读取的电压。

如果您无法使用低阻抗源驱动,请确保您有足够的时间让新输入值稳定下来。