1. 校准的工作原理
有三个主要子块对于理解 Kinetis SAR 模块的工作原理非常重要。有一个电容式 DAC、一个比较器和控制模块的 SAR 引擎。在这些区块中,
DAC 最容易受到可能导致 SAR 线性问题的变化的影响。
DAC 采用三组二进制加权电容器按组排列而成,如图 1 所示。代表 SAR 最高有效位 (B15:B11) 的电容器直接连接到比较器的输入。下一组五个电容器(B10:B6)通过故意加大尺寸的缩放电容器连接到 MSB 阵列的顶板。构成 SAR 最低有效位 (B5:B0) 的最后六个电容器通过另一个缩放电容器相应地连接到中间电容器组的顶板。
图 1.DAC电容的排列
仅校准 MSB 电容器组。由于第一个缩放电容器故意尺寸过大,每个未校准的 MSB 电容器的有效电容都会太小,无法产生准确的结果。然而,因为它们总是太小,我们可以测量每个电容器单独引起的误差量,并将其添加到结果中。
校准从最小的 LSB 电容器 B11 开始。SAR 对所有低于或等于被测电容器 (CUT) 的电容器上的 Vrefl 进行采样,同时将所有较小的电容器连接到 Vrefh。当发生这种情况时,所有 MSB 电容器的顶板都保持在 VDDA。采样阶段完成后,MSB 电容器的顶板可以浮动,而未经测试的 MSB 的底板则连接到 Vrefl。这使得电荷从 CUT 重新分配到较小的电容器。最后,执行 11 位 SAR 算法(对应于小于 MSB 阵列的 11 个电容器),该算法产生的结果指示 CUT 与理想尺寸电容器相比的误差量。对正侧和负侧 DAC 上的五个 MSB 中的每一个重复此过程,并且报告的五个错误值相应地与五个 MSB 相对应。所有这些误差值的幅度都大致相同,单位为 16 位 LSB。参见图 2 的示例。
图 2. 第 11 位校准示例
DAC MSB 误差是累积的。也就是说,如果设置了 DAC 的第 11 位,那么错误就是该位的错误。然而,如果设置了 DAC 的第 12 位,则总误差等于第 12 位报告的误差加上第 11 位报告的误差。对于每个 MSB,误差按如下方式计算,其中 Ex 是在校准其相应 MSB 位时发现的误差:
图3. 校准误差对ADC响应的影响
这些值随后会被放入每个 CLxx 校准结果寄存器中。图 3 显示了如果所有 CLxx 寄存器均设置为零,误差将如何累积。失调和增益寄存器也是基于这些值计算的。因此,增益和失调寄存器仅校准 SAR 本身内部的误差。自校准无法补偿电路板或系统级增益或失调问题。
2. 推荐的校准程序
从以上描述可以看出,校准过程实际上是多次连续的模数转换。这些转换容易受到所有 ADC 转换中相同误差源的影响。由于主要测量的是 MSB 电容大小的误差,因此建议以适当的方式配置 SAR,以便在校准 SAR 的环境中实现尽可能精确的转换。 噪声是造成此过程中批次间差异的主要原因,因此应采取措施降低校准过程中噪声的影响。例如:
高速转换和采样时间加法器在大多数情况下不会产生太大影响,并且校准程序完全忽略了 Diff 和 Mode 位。
应针对上述条件下芯片上的每个 SAR 实例获取校准值。它们应该存储在非易失性存储器中,然后在 ADC 寄存器值被清除时写入适当的寄存器中。
在某些情况下,存在的系统噪声仍然会导致校准程序表现出大于期望的运行间变化。一个经验法则是重复校准几次并查看 CLx0 寄存器。如果该寄存器中报告的值相差超过三,则可以实施以下程序。运行校准程序几次。二十到四十次。将每个校准寄存器的值放入相应的数组中。对每个数组执行冒泡排序并找到每个校准寄存器的中值。按照典型校准结果的描述使用这些中值。