文章目录
在实际项目中, 软件端校准可以有效弥补硬件方面(分压电阻误差、放大器失调、参考源误差等)带来的系统性偏差,从而提高 ADC 测量精度。下面是一个常见的 多点实测校准流程与思路,个人感觉传感器标定的原理也只这样。
1. 准备工作
- 硬件稳定
- 首先确保硬件设计正常:电源供电、参考电压源、运放、分压电阻等已按要求配置,并在稳定的环境下(温度、电源、负载)进行测试。
- 若硬件电路存在严重噪声或不稳定因素,软件校准也很难取得良好效果。
- 已知基准信号
- 为进行校准,需要若干精确、稳定、且已知的输入电压点。
- 可以使用高精度直流电源或精密电压源产生不同电压点,如 0V、0.5V、1V、2V、满量程附近(比如 3.0V/3.3V) 等。
- 如果只做两点或三点校准,可选择 “0V + 满量程” 或 “0V + 中间值 + 满量程” 等关键点。
- 采样与平均
- 读 ADC 值时,为了降低瞬时噪声影响,通常会多次采样取均值(如取 16 次或更多)。
- 此时还应保证输入信号在校准点上停留足够时间,让 ADC 读数稳定。
2. 两点(或三点)线性校准
这是最简单、常见的校准方式,可校正偏移 (Offset) 和增益 (Gain)。如果分压器和运放大体呈线性,则两点或三点标定通常够用。
2.1 两点法(数据拟合)
-
测量零点 (Offset 校准)
- 将输入端施加0V(或非常接近 0V 的已知电压 V0),读取对应的 ADC 数值
Code_0
。 - 在理想情况下,0V 的测量结果应为 0(或极小值),但实际可能不为零,则存在偏移误差
Offset = Code_0
。
- 将输入端施加0V(或非常接近 0V 的已知电压 V0),读取对应的 ADC 数值
-
测量满量程 (Gain 校准)
- 将输入端施加一个接近量程上限的已知电压 V_full(比如 3.0V 或 3.3V),读取对应的 ADC 数值
Code_full
。 - 理想情况下,若 ADC 分辨率为 N 位,则满量程对应代码应为
2^N - 1
(或对应比例)。但实际测量值与理想值有差异,可计算增益误差。
- 将输入端施加一个接近量程上限的已知电压 V_full(比如 3.0V 或 3.3V),读取对应的 ADC 数值
-
计算校准系数
-
Offset:
Offset = Code 0 \text{Offset} = \text{Code}_0 Offset=Code0 -
Gain (简化为线性校正方式):
Gain = ( 理想代码 full − 0 ) ( Code full − Offset ) \text{Gain} = \frac{(\text{理想代码}_{\text{full}} - 0)}{(\text{Code}_{\text{full}} - \text{Offset})} Gain=(Codefull−Offset)(理想代码
-