查看: 7|回复: 0

单片机 ADC 读数为什么一直跳?聊聊采样与滤波

[复制链接]
发表于 16 小时前 | 显示全部楼层 |阅读模式
🌡️ 同一个稳定电压,ADC 每次读出来却忽高忽低,很多人第一反应是芯片坏了——其实多半是方法问题。
🔍 读数是怎么来的
ADC 把模拟电压按量程切成 2 的 N 次方份:12 位 ADC 就是 4096 格。理论上最小分辨一格,但真实读数会被各种噪声搅动。
  • ✔ 参考电压波动:VREF 抖 10mV,读数整体漂移
  • ✔ 电源噪声干扰:开关电源的毛刺串进采样通道
  • ✔ 信号源阻抗过高:内部采样电容来不及充满,读数偏低

💡 怎么让读数稳下来
  • ✔ 硬件:信号源加 RC 低通,VREF 加去耦电容
  • ✔ 均值滤波:连采 16 次取平均,随机噪声约按 1/√N 收敛
  • ✔ 中位值滤波:先排序去掉极值,专治偶发毛刺
  • ❌ 盲目无限平均:响应变慢,动态信号直接糊掉

⚙️ 一个常被忽略的坑
采样时间设置太短,内部采样电容充不满,前级阻抗越高越明显。排查读数跳动时,先查采样周期配置,再谈滤波算法,顺序别搞反。


STM32 的 ADC 还支持过采样,硬件帮你把分辨率往上凑,12 位可以堆出接近 16 位的效果,代价是采样率下降。
读数跳,先怀疑噪声和采样设置,不是芯片的锅。

💬 互动一下:你遇到过最玄学的 ADC 跳动是什么?最后怎么解决的?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注公众号
免责声明|Archiver|手机版|小黑屋|半导贴吧

相关侵权、举报、投诉及建议等,请发 E-mail:1152577621@qq.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.|渝ICP备2024033348号|渝ICP备2024033348号-1

在本版发帖
关注公众号
QQ客服返回顶部