<<<写在前面>>>

之所以写这篇博客,是调试能源卡程序的时候发现ADC的数值总是高了那么一点,而且如果循环检测时,两次检测读取的时间必须大于1000ms,否则会出现读取数据无变化的情况。但是用示波器或者万用表点ADC这条线,不需要延时1000ms也能够快速响应进行ADC检测了。上网查阅了相关信息初步得出一个结论:ADC硬件线路最好加上旁路电容,否则会出现上述情况。

参考

电池电压检测在ADC引脚采样,使用旁路电容可以降低噪声。实际测量中发现,为添加时,电压略微偏高,添加电容后电压稳定。

添加旁路电容的原因

高低电平变换时间越短,则产生的谐波(高频)成分越丰富,因此,低速开关并不意味着高频成分少,信号频率为1MHz方波存在的高频谐波成分比同频率正弦波要高得多,因为方波的高低电平切换时间非常短,而正弦波则相对非常缓慢。【电容(2)旁路电容工作原理深度解析

adc
adc

简单来说,STM32(其他MCU应该也是类似的)ADC通过开关打开,连接之后就可以通过运放检测电压了,这是开关打开与关闭就像上面所说,低速开关并不意味着高频成分少,自然会产生高频噪声,这是旁路电容就起到了除噪声的作用,参考链接中说到,IC中存在大量运放,所有的VDD全部同源时,这样的高频信号叠加起来便会产生杂乱的噪声,影响VDD原本干净的电压。

也就是说,其它门的噪声电压(也称为共路噪声)被传递到门A的输出端,同一时间逻辑切换越多则产生的共路噪声越大,一旦叠加在VDD上的共路噪声超过芯片的噪声容限,电路因无法有效地判断高低电平而导致异常【电容(2)旁路电容工作原理深度解析