选择正确的模数转换器 (ADC) ,计算和使用ADC校准值
扫描二维码
随时随地手机看文章
校准值可以通过读取已知参考值然后找出要使用的校正因子(二进制因数)来计算。对于给出的示例,理想情况和最坏情况 ADC 值之间的差异永远不会超过 1.2%,因此从原始值的二分之一或四分之一开始是没有意义的。测试和使用的唯一值是 1/128、1/256 和 1/512。你想从接近你期望看到的价值开始。
使用计算器很容易找到校正因子,但如果我们必须在应用程序中使用的定点处理器上计算它,则需要一种基于整数的方法。
以流程图形式显示了本示例中用于计算和使用校准常数的算法。在此方法中,使用单个字节(或字)来存储校准常数。位 7 指示参考电压是低(需要减去校准值)还是高(添加校准值)。位 0、1 和 2 指示是否使用 1/128、1/256 和 1/512 因子。
当然,我们可以为每个可能的因素使用一个单独的字节,用第四个字节来指示参考值是高还是低。
写入校准值
无论我们使用表格还是校准常数,如何将校准值输入系统?任何校准方案的一个关键组成部分是非易失性存储的可用性。许多微控制器都有片上 EEPROM。校准通常在测试电路板时进行。在大批量生产环境中,这可能会通过某种钉床自动测试设备来完成。
我们通常希望将处理器置于某种“校准模式”,可能通过将引脚接地。可以对生产测试设备进行编程,以将非常精确的电压施加到模拟输入并将校准引脚接地。然后微控制器可以进入校准模式,读取参考值并计算补偿值或创建查找表。
在某些情况下,我们没有足够的内存将校准代码添加到微控制器。在这种情况下,我们可以让微控制器将 ADC 值返回到输出引脚(串行)或一组引脚(并行),由生产测试设备读取。然后,外部计算机可以计算校准值或表格值,并通过相同的接口将它们返回给微控制器。
如果生产设备还对微控制器进行在线编程,则校准数据可以嵌入到闪存中编程的数据中。如果被校准的参考在微控制器内部,则测试设备可能必须首先将校准程序加载到微控制器中,执行校准,然后加载实际的应用程序代码。
最后,一些非常小的微控制器根本没有足够的引脚来进行校准。在这种情况下,我们通常可以使输出引脚兼作校准引脚。我们使用外部电阻器将引脚拉高。生产设备在上电前将引脚接地以选择校准模式。
它的工作方式是微控制器上电,所有引脚都处于输入状态。它在将引脚配置为输出之前读取校准引脚。如果该引脚为高电平,则开始正常操作。如果引脚为低电平,则必须外部接地,因此单片机进入校准模式。当然,输出必须是在引脚外部接地时不会损坏任何东西的输出。
最后,如果我们正在校准基准,将精确电压施加到备用 ADC 输入,我们可以使用该输入本身将系统置于校准模式。使用一个电阻器将备用输入拉至零电平 ADC 电压(在我们一直使用的示例中为接地)。然后,当在引脚上检测到超过某个预定阈值(例如,满量程电压的三分之二)的电压时,让软件进入校准模式。
选择校准电压时,我们希望选择在参考电压处于其可能的最低值时不会使 ADC 饱和的最大值。这可确保我们在计算校准常数(或表格)时不会因为位舍入误差而失去准确性。这通常会使校准电压高于满量程值的 90%,尽管我们可能希望选择最接近的标准参考电压以简化设计。
在某些应用中,我们可以通过寻找 ADC 输入的变化来解决参考问题。我们可能会看到光学传感器发生 10% 的变化,而不是将其与固定值进行比较,或者我们可能会看到温度下降 25%。当然,传感器的精度也包括在内,但该主题超出了本文的范围。
尽管有时很难知道要为我们的应用使用哪种 ADC,但种类繁多的部件可确保我们找到适合我们需要的部件。将软件与硬件相匹配可确保我们获得产品所需的准确性和可靠性。