为什么MCU在ADC采样时IO口有毛刺?
大家在使用MCU内部ADC进行信号采样一个静态电压时,可能在IO口上看到这样的波形。这个时候大家一般会认识是信号源有问题,但仔细观察会发现这个毛刺的频率是和ADC触发频率一样的。那么为什么MCU在ADC采样时IO口会出现毛刺呢?这个毛刺对结果有什么影响吗?让我们一起研究下。首先我们先看下GD32 MCU的ADC内部采样电路的原理示意图(仅举例),这个电路很简单,MCU采样保持电路可以等效为一个开关、一个采样电阻和采样电容,当然了后面还有逐次逼近式的转换电路。
所以当开关闭合时,外部的信号会通过开关经过采样电阻对采样电容进行充电或放电,此时会导致外部电压瞬间变化,这个过程内部电压和外部电压的变化可以等效为如下图所示。
从波形图里可以看到是一个向下的毛刺,当然如果ADC在扫描模式采样多个信号时,也可能出现电容对外放电,则会出现向上的毛刺,比如下图这个波形。
这个毛刺对结果有什么影响吗?这个需要根据这个ADC通道所配置的采样保持时间来判断了。我们可以用程序配置的采样保持周期和ADC时钟计算出ADC采样开启的时间。如果从毛刺产生时刻开始,经过采样开启时间后电压已经恢复平稳,那么此时这个平稳的电压和ADC采样电容上的电压一致,接下来的ADC转换也就能得到正确的结果。如果采样时间结束时信号还在毛刺阶段,则采样结果就会出现偏大或偏小。
那么如何从软硬件方面优化MCU的ADC性能?发散思维一下。
————————————————
版权声明:本文为CSDN博主「The Kite」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_45796666/article/details/135049664
从软硬件方面优化MCU的ADC性能需要考虑多个方面,包括选择合适的ADC类型、优化ADC分辨率、采样时间、触发源、校准和补偿、电源和时钟系统以及软件算法等。 前段时间有发现这个问题,当时检测电源线也会同周期出现,还以为是电源的问题 因为ADC采样是靠对对内部电容充电实现的 ADC不是用一群电阻串联实现的吗 MessageRing 发表于 2023-12-26 10:20
ADC不是用一群电阻串联实现的吗
我见到的微积分的ADC都是充放电形式的。不是用电阻串分压的。 这个跟硬件设计的问题也有关系吧 如果从毛刺产生时刻开始,经过采样开启时间后电压已经恢复平稳,那么此时这个平稳的电压和ADC采样电容上的电压一致,接下来的ADC转换也就能得到正确的结果。 建议增加一个滤波电容进行稳定转换 从软硬件方面优化MCU的ADC性能需要考虑多个方面进行优化,一般情况下软件优先,然后必要时硬件优化 电源噪声导致的 调整ADC采样配置 外部电磁干扰或信号串扰也可能导致ADC采样时IO口出现毛刺。这些干扰可能来自其他电子设备、无线信号或物理环境中的其他因素。 ADC的采样配置,如采样率、分辨率和滤波设置等,可能会影响采样结果的准确性。如果配置不当,可能会导致IO口在采样时出现毛刺。 加个小电容,有惊喜 在使用MCU内部的ADC进行信号采样时,有时在IO口观察到与ADC触发频率一致的毛刺现象,这可能是由ADC采样过程中的开关动作引起的外部电压瞬间变化导致的。 MCU的ADC内部采样电路可以等效为一个开关、一个采样电阻和采样电容的组合。当开关闭合时,外部的信号会通过开关经过采样电阻对采样电容进行充电或放电,这个过程可能会导致外部电压瞬间变化,从而在IO口上产生毛刺。 ADC内部振荡器的不稳定可能导致在转换过程中产生毛刺。这可能与温度、电源电压和其他外部因素有关。 调整采样保持时间 外部信号通过开关和采样电阻对采样电容进行充电,此时外部信号电压下降,产生一个向下的毛刺。