登录/注册

STM32 ADC 乱跳

STM32 ADC 乱跳

更多

STM32的ADC采样值出现跳动(乱跳)是常见问题,通常由硬件设计、软件配置或环境干扰引起。以下是常见原因及解决方法:


一、硬件原因

  1. 电源噪声

    • 问题:模拟电源(VDDA)或参考电压(VREF+)不稳定。
    • 解决
      • 确保VDDA和VREF+使用干净的电源(如LDO供电)。
      • 在VDDA和VSSA之间添加10μF钽电容 + 100nF陶瓷电容滤波。
      • 若使用外部参考电压,需确保其低噪声且稳定。
  2. 信号源问题

    • 问题:被测信号本身存在噪声或阻抗不匹配。
    • 解决
      • 在信号输入端添加RC低通滤波器(如1kΩ电阻 + 100nF电容)。
      • 对于高阻抗信号源,使用电压跟随器(运放)缓冲。
  3. PCB布局问题

    • 问题:模拟信号走线靠近高频数字信号(如时钟、PWM)。
    • 解决
      • 将模拟信号线与数字信号线隔离,避免平行走线。
      • 使用单独的地平面(AGND和DGND单点接地)。

二、软件配置

  1. 采样时间不足

    • 问题:采样时间过短,导致电容未充满。
    • 解决
      • 增加ADC的采样周期(如设置为最大SAMPLETIME_239CYCLES_5)。
      • 公式:采样时间 ≥ 信号源阻抗 × ADC输入电容 × ln(2^12)。
  2. 未校准ADC

    • 问题:ADC未校准导致偏移误差。
    • 解决
      • 上电后执行一次校准:
        HAL_ADCEx_Calibration_Start(&hadc1);
  3. 时钟干扰

    • 问题:ADC时钟(ADCCLK)频率过高或被干扰。
    • 解决
      • 将ADCCLK设置为≤14 MHz(参考数据手册)。
      • 避免与其他高频外设(如PWM、SPI)同时工作。

三、软件滤波

  1. 均值滤波

    • 连续采样多次取平均值:
      uint32_t adc_sum = 0;
      for (int i=0; i<16; i++) {
       HAL_ADC_Start(&hadc1);
       adc_sum += HAL_ADC_GetValue(&hadc1);
      }
      uint32_t adc_value = adc_sum >> 4; // 16次平均
  2. 中值滤波

    • 取多次采样的中间值,消除脉冲干扰。

四、其他注意事项


总结排查步骤:

  1. 检查硬件电源和滤波电容。
  2. 增加ADC采样时间。
  3. 执行ADC校准。
  4. 添加软件滤波。
  5. 优化PCB布局和接地。

通过以上方法,可显著减少ADC采样值的跳动问题。

ad7606采集集成运放输出电压值出现的情况怎么解决?

使用stm32f103驱动ad7606采集集成运放输出端电压值会出现采集值乱跳,但采集其他电压值时正常,唯独在采集集成运放输出电压值时出现

2025-04-15 07:25:41

ADS1211采样数据是什么原因引起的?

原理图如上用的是内部参考10M的晶振短接AIN1NAIN1P读取的数据在乱跳不是一直为0,波动还挺大,麻烦各位帮我分析一下,是什么原因引起的,寄存器,x写进去,读出来都是对的,谢谢。 void

2024-12-24 07:55:49

使用stm32f103系列的自带ADC采样时,在mV位采的电压无规则是怎么回事?

我在使用stm32自带的ADC来测量前端的电压信号,开始使用时,采的的电压信号在mV位上0-9乱

2024-05-15 06:08:39

基于STM32上的5个ADC程序

基于STM32上的5个ADC程序(单兵电源技术需求)-基于STM32上的5个ADC

资料下载 王利祥 2021-09-27 12:37:41

STM32ADC学习历程

STM32的ADC学习历程(电源技术期刊影响因子)- STM32的ADC

资料下载 王越建 2021-09-27 12:32:55

STM32ADC驱动程序

STM32的ADC驱动程序(电源技术被踢出核心)-  STM32的ADC

资料下载 刘满贵 2021-09-23 13:43:22

STM32ADC代码例程

STM32的ADC代码例程(普德新星电源技术有限公司怎么样)- STM32的ADC

资料下载 vinww特烦恼 2021-09-23 09:53:19

基于STM32ADC电流测量系统设计(包含程序 原理图)

基于STM32的ADC电流测量系统设计(包含程序 原理图)(24v稳压电源尺寸)-基于STM32的

资料下载 佚名 2021-07-26 09:47:31

AD5360输出波形是由什么问题引起的呢?

如附件所示: 我原本是输出一个标准的三角波,但是其实际输出波形乱跳 请问一下这个可能是由什么问题引起的呢? 谢谢

2023-12-22 07:14:57

单片机adc监测电压进行断电检测的时候悬浮时怎么办?

adc监测电压监测断电的时候,检测电压悬浮时乱跳,如何接地阿,可是这时候已经断电了不能接地了怎么办

2023-11-06 06:21:51

电容触摸屏点是什么原因造成的?

电容触摸屏乱跳是由什么原因造成的?这是个复杂而简单的问题,跟一定的环境有关系或者是装机过程中有电磁感应、参数太大、程序不合适等都有可能会影响到,今天深圳市瑞翔数码科技有限公司来讲解一下。我们测试电容

2022-12-20 15:56:08

CS1237称重

用CS1237/CS1231做的称重系统,拔掉传感器后,重量显示乱跳,有没有办法让系统不插传感器时,重量稳定显示在零点附近且不影响插传感器后的称重精度?

2021-10-15 16:07:42

触屏手机屏幕是怎么回事

首先尝试长按电源键重启一下手机看是否解决,也有可能是由于您处于潮湿环境使用,温度过高过低环境或者是当前处于低电量状态,都会造成屏幕暂时的乱跳;此外,也有可能是您的屏幕组件损坏导致。

2020-05-09 09:22:39

iPhone屏幕失灵的原因有哪些应该如何解决

最近有苹果用户反映,自己没有触碰到手机屏幕,它就不受控制的乱跳,有时就固定在一块区域,屏幕其他位置都没有反应。虽然大部分情况下都可以通过重新锁屏再解锁能够暂时解决问题。不过令人烦恼的是,这种屏幕失灵

2020-01-22 11:54:00

iPhone手机屏幕失灵的原因有哪些

最近有苹果用户反映,自己没有触碰到手机屏幕,它就不受控制的乱跳,有时就固定在一块区域,屏幕其他位置都没有反应。虽然大部分情况下都可以通过重新锁屏再解锁能够暂时解决问题。不过令人烦恼的是,这种屏幕失灵

2020-01-16 12:12:00

7天热门专题 换一换
相关标签