ADC采集悬空引脚的电压
场景:配置ADC采集PA0(AIN0)、PA1(AIN1),PA0悬空,PA1外接2.6V电压信号。
现象:
PA1(AIN1)转换结果正常;PA0(AIN0)转换结果有值,且与PA1(AIN1)转换结果很接近。
分析:
按照ADC的连接图来看,当ADC采样连接到PA1的外部电压(图中a处)时, ADC内部模块(图中b处)是被充电的,与PA1外部电压相同。当采样从PA1切换到PA0时,ADC内部模块(图中b处)仍然是处于有电的状态,此时:1.当PA0有接外部电路(图中a处),外部电路的电压大于ADC内部模块(图中b处)电压时会通过外部电路继续给ADC内部模块充电,直到与外部电压相等,这个时候ADC采样值等于PA0的外部电压值。2.当PA0有接外部电路(图中a处),外部电路的电压小于ADC内部模块(图中b处)电压时会通过外部电路给ADC内部模块放电,直到与外部电压相等,这个时候ADC采样值等于PA0的外部电压值。3.当PA0未接接外部电路(图中a处),ADC内部模块(图中b处)无法放电,ADC内部模块的电压为上个通道的采样值,所以看到PA0的采样值与PA1是接近的。
这个算不算bug 这是正常现象。
ADC最前端就是采样保持器,输入悬空的话,理当是保持原来的电压。 叫做串音。
早年ST 的MCU 内置ADC 也这样。目前都改进了,在EOC 时顺便将采集电容放电。
国产MCU还在抄过时的作业 这个跟什么串音没关系。这只是因为电容的hold作用。不要悬空就能改善。 我一般不用的模拟量采集输入脚对接至GND。
页:
[1]