【STM32CUBE】ADC 电流检测未校准导致测量值异常

背景

这两天在做一个工装的调试,其中有一项是对接入设备的电流进行检测。
测试发现 ADC 采样换算后的电流值与实际的电流值相差甚异。
后来才发现,在开启 ADC 采集之前没有对ADC进行校准所导致。

ADC采集流程

【STM32CUBE】ADC 电流检测未校准导致测量值异常_第1张图片
Notice
在进行测试之前,必须使用 HAL_ADCEx_Calibration_Start 函数进行 ADC 校准,不然测出来的值会有很大的误差。比如说,我现在的机器的平均电流为 100mA, 而 ADC 输出的仅有 68 mA。

采样时间对测量的影响

【STM32CUBE】ADC 电流检测未校准导致测量值异常_第2张图片
上图是 2 种采样时间的测试结果,其中:

  • △I 表示:上次采集与下次采集之电流差
  • △I / I 表示:本次采集与下次采集之电流差除以本次采集的电流值

由图中,可以看到,239.5 Cycles 明显比 28.5 Cycles 波动性小。
这个是和采集密度和采样窗口的大小所导致。

你可能感兴趣的:(#,【Cherry,的,BUG,库】)