打印
[技术问答]

L196 ADC 采样精度偏差较大如何解决?

[复制链接]
451|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 yang377156216 于 2025-6-11 15:42 编辑

一、问题背景
    产品为IOT终端控制器,使用主控MCU为 HC32L196KCTA-64,在工厂 FCT 测试过程中概率性出现水泵电流检测不良问题导致产品检测 fail,不良率还挺高的。对应到 MCU 功能异常体现在:水泵电流 ADC 通道采样结果转换成电流值后,该值超出产线工装预设的范围值,这种情况会被判定为水泵电流检测不良,目前预设的 AD 值范围是电机不工作时不超过 80,电机工作时在 80-200。另外测试波形还发现,主板上电后电机不工作时水泵电流采样通道引脚上会有周期性脉冲信号产生,且周期频率与 ADC 采样频率一致:

二、问题定位测试
1、主控板使用 PA05 引脚采样水泵电流,使用 PA06 引脚采样按键电压值,硬件上断开相邻的PA04/PA06 外部电路,或者这 2 个端口不配置成 ADC 输入和采样, PA05 上的异常脉冲都会消失;
2、采样时只配置 PA05 这一路,其它 ADC 通道都不进行配置, PA05 上同样未看到异常脉冲;
3、PA04/PA06 连到 GND 上,PA05 上同样未看到异常脉冲;
4、减小 ADC 采样频率和工作时钟,效果不明显,异常脉冲仍旧存在。
三、继续排查软硬件
1、PA05 采样的水泵电流信号较弱,约为 100mv 左右的电压,端口的输入匹配阻抗值由一个 RC 和10K 电阻构成;
2、总共有 7 个 ADC 通道进行采样,ADC 基础配置中工作时钟、工作模式以及采样设置都无明显异常,只是根据配置来看,PA05 通道是在 PA06 通道后面完成采样转换的。
3、结合软硬件分析以及问题定位测试结果来看, PA05 引脚上的异常脉冲信号极大可能是前个采样通道串扰影响到了 PA05 所在的采样通道。



4、抓取波形看到 PA05 引脚上存在一个 ADC 采样频率同频的异常脉冲信号,导致转换结果精度偏差较大,且电机不工作和电机工作时对信号的干扰程度有所不同,会使得 ADC 采样转换后的结果有所偏差,如下图右边波形图所示。
5、为了验证前述分析时的猜想,使用 HC32L196 Demo 板对 PA05 和 PA06 两通道 ADC 采样做了现象复现测试。使用2K、1K电阻分压后再通过一个匹配电阻将电压输入到 PA05 引脚,PA06 引脚直接连到 VCC,分别用 10K 和 1K 匹配电阻 R3 进行了对比测试,将采样通道 0/1/2 设为 PA05 通道,将通道 3 设为 PA06 通道,同时串口输出采样结果。测试结果如下(一通道为 ADC 采样触发信号,2 通道为 PA05 引脚波形):
  • R3 = 10K,PCLK = 24M,ADC时钟8分频,ADC采样周期数为12。
  • R3 = 1K,PCLK = 24M,ADC时钟8分频,ADC采样周期数为12。
  • R3 = 10K, PCLK = 12M,ADC时钟8分频,ADC采样周期数为12,使用ADC内部buff。

    模拟测试结果逼近前述问题表现,表明 ADC 通道输入阻抗较大时更加容易引发前面通道对后面通道采样串扰问题,需要在应用上规避此类情况。

四、软硬件优化措施
    根据手册获取到 ADC 模块相关重要信息:


    针对前述 2 个问题以及结合一系列验证测试的结果,准备采取以下能够想到的软件优化和规避措施:
1、降低 ADC 工作时钟频率,有足够的采样保持时间,同时打开内置跟随器 buff(buff 本身误差在 10LSB);
2、相互有影响的两个相邻通道,可以将后采样的通道多采样几次,丢掉前几个采样结果,也可以在中间插入内部模拟通道;
3、适当调整采样通道的前后顺序,将驱动力以及信号都较弱的源置于优先顺序;
4、软件滤波算法尽可能参照的原则为先进行排序、再抛去头尾最后取平均值;
5、如果有 2 个 ADC 单元,可以将信号相差较大的分别放在 2 个模块进行采样,如果只有单个 ADC 单元,可以分时采样互相影响的2个通道,即先采完前一个通道后再对 ADC 和对应引脚切换配置到下一个通道进行采样。
    目前已经验证确认,加 buff 和交换采样通道的有效性。
    同时准备采取以下硬件优化措施:
1、尽可能地减小 ADC 通道的输入阻抗,加强信号源的驱动能力;
2、尽可能避免压差过大的两路信号放置在相邻 2 个采样通道引脚上,在布局上避免信 2 个信号的干扰;
3、优化 layout 保证GND平面的完整性。
    目前已经验证确认,减小输入阻抗的有效性。
五、小结
    本次遇到的 ADC 精度偏差大问题,实际上是由于系统上软硬件没有注意到 SAR ADC 的一些模拟特性而造成的,在当前硬件设计和生产条件不动情况下,可以采取一系列软件规避措施,在下一版硬件设计过程中,也会注意匹配电阻和layout设计。


使用特权

评论回复
沙发
chenqianqian| | 2025-6-12 08:07 | 只看该作者
MCU的ADC一般初始化后都要执行校准操作,采样过程中做一下滤波处理。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

39

主题

238

帖子

12

粉丝