[STM32] STM32的ADC采样值跳动很大,即使外部输入电压很稳定

[复制链接]
3088|8
hbzjt2011 发表于 2025-9-15 09:25 | 显示全部楼层 |阅读模式
我在使用STM32G0系列的ADC采集一个由电位器分压得到的直流电压。
发现即使我手不碰电位器,ADC转换的结果也在最后3-4个位上不断跳动(例如稳定值应该是1000,但实际读数在995~1005之间波动)。
我已经采取了以下措施:

在模拟输入引脚加了一个0.1uF的滤波电容到地。

使用了软件采样多次然后取平均的算法。

确保AVDD和VDDA连接到干净的3.3V,并且AGND和DGND单点共地。

配置了ADC的采样周期,尝试拉长采样时间。
虽然取平均后勉强可用,但还是想知道这种跳动的根本原因是什么?是PCB布局布线的问题,还是MCU的ADC本身精度和抗噪能力有限?有没有更有效的硬件滤波方案?

地瓜patch 发表于 2025-9-16 11:16 来自手机 | 显示全部楼层
有没有测一下AVDD的纹波多大?
地瓜patch 发表于 2025-9-16 11:17 来自手机 | 显示全部楼层
0.5%的波动,不错了吧
GlenX 发表于 2025-9-17 08:53 | 显示全部楼层
这个基本不错了,要更好的结果需要很多努力:
1.更换不同的采样时钟,不一定大了就不准。
2.采样前或采样中不得有USART功率pwm等脉冲类输出操作。
3.软硬兼施的滤波措施
4.。。。。。
ColeYao 发表于 2025-9-18 12:11 | 显示全部楼层
把分压电路改成恒流源电路或者电桥电路或许会有提升!
oufuqiang 发表于 2025-9-18 19:34 | 显示全部楼层
多少bit的AD? STC的10bit和12bit都很稳的。
qinlu123 发表于 2025-9-19 16:05 | 显示全部楼层
电位器接地应该接AGND,单片机ADC比较电压供电应该用LDO不能用DCDC且LDO接地需要接AGND,单片机ADC的VREF-需要接AGND,其余的都接DGND。或者使用多层板,有完整的地平面就不用这么费劲了。
panxiaoyi 发表于 2025-9-23 20:05 | 显示全部楼层
如果有大电流的设备, 可以试试星型接地, 芯片输出扫描数码管之类的, 也会影响到ADC
XZL 发表于 2025-9-25 11:58 | 显示全部楼层
没有电路不好做结论,一般来说有几个方面的因素:
1.AVDD与DVDD要分开供电,AGND与DGND也要分开走线;
2.模拟信号输出驱动能力不能太弱,STM32内部采样电路切换时,会需要瞬间较大电流输入。如果是缓慢变化信号,最好在MCU的ADC输入脚附近接一个微法级的电容。
3.采样率不要太高,够用即可。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

323

主题

2908

帖子

45

粉丝
快速回复 在线客服 返回列表 返回顶部