为什么MCU在ADC采样时IO口有毛刺?

        大家在使用MCU内部ADC进行信号采样一个静态电压时,可能在IO口上看到这样的波形。这个时候大家一般会认识是信号源有问题,但仔细观察会发现这个毛刺的频率是和ADC触发频率一样的。

        那么为什么MCU在ADC采样时IO口会出现毛刺呢?这个毛刺对结果有什么影响吗?让我们一起研究下。首先我们先看下GD32 MCU的ADC内部采样电路的原理示意图(仅举例),这个电路很简单,MCU采样保持电路可以等效为一个开关、一个采样电阻和采样电容,当然了后面还有逐次逼近式的转换电路。

         所以当开关闭合时,外部的信号会通过开关经过采样电阻对采样电容进行充电或放电,此时会导致外部电压瞬间变化,这个过程内部电压和外部电压的变化可以等效为如下图所示。

         

从波形图里可以看到是一个向下的毛刺,当然如果ADC在扫描模式采样多个信号时,也可能出现电容对外放电,则会出现向上的毛刺,比如下图这个波形。

      这个毛刺对结果有什么影响吗?这个需要根据这个ADC通道所配置的采样保持时间来判断了。我们可以用程序配置的采样保持周期和ADC时钟计算出ADC采样开启的时间。如果从毛刺产生时刻开始,经过采样开启时间后电压已经恢复平稳,那么此时这个平稳的电压和ADC采样电容上的电压一致,接下来的ADC转换也就能得到正确的结果。如果采样时间结束时信号还在毛刺阶段,则采样结果就会出现偏大或偏小。

        那么如何从软硬件方面优化MCU的ADC性能?发散思维一下。

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-18 09:34:07       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-18 09:34:07       106 阅读
  3. 在Django里面运行非项目文件

    2023-12-18 09:34:07       87 阅读
  4. Python语言-面向对象

    2023-12-18 09:34:07       96 阅读

热门阅读

  1. AcWing802. 区间和思路

    2023-12-18 09:34:07       64 阅读
  2. ES6之对象新增的方法

    2023-12-18 09:34:07       58 阅读
  3. IDEA中如何使用Vue

    2023-12-18 09:34:07       57 阅读
  4. 全志V3s之NFS连接ubuntu22.04

    2023-12-18 09:34:07       60 阅读
  5. conda channel的镜像设置

    2023-12-18 09:34:07       49 阅读
  6. 力扣面试150题 | 15.三数之和

    2023-12-18 09:34:07       56 阅读