E
Member
MCU 多通道 ADC 轮询采样时,经常出现一个通道的电压被相邻通道“带偏”,单通道单独测都正常,一轮询就串扰。问题多半不在 ADC 精度,而在采样保持电路的建立时间不够。
原理很简单:ADC 内部采样电容在切换通道后需要时间充电到新的输入电压,源阻抗越大、充电越慢。如果采样时间设得太短,电容还没充满就开始转换,读到的就是上一个通道的残留电压。通道间电压差越大,串扰越明显。
排查顺序:第一,先确认是不是串扰,固定一个通道接高电平、相邻通道接低电平,轮询读数看低电平通道是否被抬高;第二,加大采样时间再测,串扰随采样时间延长而减小,基本可以锁定是建立时间问题;第三,查源阻抗,分压电阻过大、传感器输出阻抗高都会拖慢充电,必要时在运放后加一级缓冲;第四,看布线,模拟走线和数字信号平行过长也会引入耦合,模拟地和数字地单点连接不要忘。
两个容易踩的坑:一是只在室温下调采样时间,低温下源阻抗和电容特性变化,留出的余量会被吃掉;二是 DMA 高速连续采样时采样时间会被默认配置覆盖,改完寄存器要实测确认,不要只看代码。
你们多通道采样时,采样时间一般按数据手册最小值留多少倍余量?有没有遇到过缓冲运放反而引入失调的案例?
原理很简单:ADC 内部采样电容在切换通道后需要时间充电到新的输入电压,源阻抗越大、充电越慢。如果采样时间设得太短,电容还没充满就开始转换,读到的就是上一个通道的残留电压。通道间电压差越大,串扰越明显。
排查顺序:第一,先确认是不是串扰,固定一个通道接高电平、相邻通道接低电平,轮询读数看低电平通道是否被抬高;第二,加大采样时间再测,串扰随采样时间延长而减小,基本可以锁定是建立时间问题;第三,查源阻抗,分压电阻过大、传感器输出阻抗高都会拖慢充电,必要时在运放后加一级缓冲;第四,看布线,模拟走线和数字信号平行过长也会引入耦合,模拟地和数字地单点连接不要忘。
两个容易踩的坑:一是只在室温下调采样时间,低温下源阻抗和电容特性变化,留出的余量会被吃掉;二是 DMA 高速连续采样时采样时间会被默认配置覆盖,改完寄存器要实测确认,不要只看代码。
你们多通道采样时,采样时间一般按数据手册最小值留多少倍余量?有没有遇到过缓冲运放反而引入失调的案例?
