0

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

4

3 回答 3

1

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

一次淘汰一个。两个模拟输入上的示波器/仪表。改变一个输入 - 另一个也改变吗?如果是这样,至少存在硬件问题。如果没有,那就是软件。

这是调试 101。

于 2013-09-30T11:02:28.903 回答
1

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

数据表

11.1 A/D 采集要求 为了使 A/D 转换器满足其规定的精度,必须允许电荷保持电容 (CHOLD) 完全充电至输入通道电压电平。模拟输入模型如图 11-2 所示。源阻抗 (RS) 和内部采样开关 (RSS) 阻抗直接影响电容器 CHOLD 充电所需的时间。采样开关 (RSS) 阻抗随器件电压 (VDD) 而变化,请参见图 11-2。源阻抗会影响模拟输入的失调电压(由于引脚泄漏电流)。模拟源的最大推荐阻抗为 10 kΩ。选择(更改)模拟输入通道后,必须经过采集周期才能开始转换。要计算最小采集时间 TACQ,请参见 PICmicro™ 中档 MCU 系列参考手册(DS33023)。然而,一般来说,给定 10 kΩ 的最大源阻抗和 100°C 的温度,TACQ 将不超过 16 µsec。

于 2013-09-30T13:22:57.123 回答
1

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

如果您使用合适的运算放大器的输出驱动每个输入,则当 ADC 的多路复用器切换时,运算放大器能够驱动电荷输入或从采样电容器中吸出电荷,并且您正在读取的新输入所需的时间可以是显着减少。另外,使用这种方法,您不会加载要读取的电压。

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

于 2013-10-01T13:05:31.910 回答