2013-09-30 31 views
0

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

回答

1

也许吧。这很可能是一个或另一个,或两者兼而有之。将问题分解成一半。

一次消除一个。两个模拟输入的示波器/仪表。改变一个输入 - 另一个输入是否也改变了?如果是这样,至少有一个硬件问题。如果没有,它是软件。

这是调试101

1

这是一个硬件的影响,但不是一个错误。

datasheet

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

1

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

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

如果你不能用低阻抗源驱动,那么确保你有足够的时间来处理新的输入值。

相关问题