《ADC校正和说明》由会员分享,可在线阅读,更多相关《ADC校正和说明(11页珍藏版)》请在金锄头文库上搜索。
1、AVR120 AVR 的 ADC 校正和说明 翻译 邵子扬 第 1 页 共 11 页 AVR120 AVR 的的 ADC 校正和说明校正和说明 翻译 邵子扬 2006 年 10 月 20 日 shaoziyang 特点 特点 理解模拟到数字转换 ADC 的特点 测量参数说明 ADC 特点 温度 频率和电压的依赖性 偏移量和增益误差补偿 1 介绍介绍 这篇应用笔记解释了各种 ADC 模拟到数字转换 的特性以及它们怎样影响测量 同时说明 了怎样在产品测试中测量这些参数 以及怎样在运行时补偿测量误差 AVR 单片机的 Flash 存储器的一个很大的优点在于校正代码可以用程序替换 这样校正代码 不会在
2、最终产品中占用空间 2 理论理论 在进入讨论前 先介绍一些中心概念 下面小节 一般 ADC 的概念 可以忽略如果读者已经 熟悉了量化 分辨率和 ADC 转化 2 1 一般一般 ADC 的概念的概念 ADC 转变一个模拟输入信号为数字输出参数 表示出输入信号和参考信号的相对大小 为了 更好的说明 ADC 这篇应用笔记区别说明完美 理论和实际的 ADC 一个完美的 ADC 只是一个理论概念 在实际中并不存在 它有无限分辨率 每个输入在指定 范围输出一个唯一的值 理想的 ADC 是一个线性转换函数 如图 1 图 1图 1 完美的 ADC AVR120 AVR 的 ADC 校正和说明 翻译 邵子扬 第
3、 2 页 共 11 页 为了定义一个理论的 ADC 必须介绍量化的概念 由于将 ADC 数字化 不可能连续的输出数 值 输出范围分为一定的台阶 每个都是一个可能的输出值 这意味着一个输出值不是只对 应一个唯一输入 而是一个小范围的输入值 结果就是一个阶梯转换函数 分辨率是不同输 出的个数 例如 ADC 输出为 8 个台阶 即分辨率是 8 或者说 3 位 转换函数如图 2 所示 理论 ADC 等于完美的 ADC 在每一级台阶的中间点 这说明理论 ADC 本质上是输入参数对应的 最接近的台阶输出参数 图 2 图 2 理论上的 3 位 ADC 转换函数 对于一个理论上的 3 位 ADC 最大误差是
4、1 2 台阶 也就是说最大的量化误差总是 1 2 LSB LSB 是输入电压对应输出参数最小数据位 实际的 ADC 还存在其他误差 这将在后面说明 2 2 转换范围转换范围 Atmel 的 AVR 单片机可以配置为单端输入或者差分输入 单端输入用于测量单个通道的输入 电压 差分模式用于测量两个不同通道之间的差 不论哪种模式 每个通道的输入电压范围 都要在 GND 到 Avcc 之间 使用单端模式 相对于 GND 的输入电压被转换为数值信号 使用差分模式 从差分运放的输 出 可选增益 转化为数字量 可能是负数 一个简化的图例如图 3 图 3 图 3 简化的 ADC 输入电路 AVR120 AVR
5、 的 ADC 校正和说明 翻译 邵子扬 第 3 页 共 11 页 为了决定转换范围 转换电路需要一个参考电压 VREF 用于代表最大输出值 根据数据 手册 对于标准芯片 VREF 至少是 2V 对于工作电压是 1 8V 的芯片参考电压允许低至 1V 对于单端输入和差分输入都是一样 2 2 1 单端转换范围单端转换范围 单端转换输入通道直接连到转换电路 如图 3A 所示 AVR 的 10 位 ADC 将从 GND 到 VREF的连 续输入信号转换为从 0 到 1023 的离散输出信号 2 2 2 差分转换范围差分转换范围 差分转换连接两个输入通道到可变增益差分放大器 放大器的输出反馈到转换电路
6、如图 3B 差分电压从 VREF到 VREF 转换结果从 512 到 511 XX 即使测量负的差分电压 每个 通道的输入电压范围还是在 GND 到 AVcc 之间 小于 VREF的差分电压将得到最小值 在 10 位 ADC 时是 512 大于 VREF的差分电压将得到 最大值 在 10 位 ADC 时是 511 注意某些型号的器件不能测量负的差分电压 如 ATiny26 2 3 校正校正 ADC 实际的总误差不只是量化误差 这篇文档说明了偏置和增益误差 以及如何进行补偿 同时介绍了两种测量非线性度的方法 微分法和积分法 对于大多数应用 在使用单端模式时 ADC 无需校正 典型精度是 1 2L
7、SB 既不需要也难以 通过校正获得更高的精度 但是 使用差分模式时情况就不同了 特别在高增益时 微小的变化通过放大器就变成了很 大的误差 未补偿的误差通常大于 20LSB 这些误差需要用软件针对每个器件进行补偿 初看起来 20LSB 是一个很大的参数 但是这并不代表差分模式就没有用处了 经过简单的校 正算法 误差就可以控制在 1 2LSB 之内 2 4 绝对误差绝对误差 绝对误差是理想直线和实际曲线 包括量化误差的最大差值 因为量化误差 最小绝对误差 是 LSB 绝对误差或者叫绝对精度是未补偿误差的总和 包括了量化误差 偏置误差 增益误差和非 线性误差 偏置 增益和非线性在后面说明 绝对误差可
8、以通过使用斜坡输入电压测量 在这种情况下所有的输出参数都和输入电压做比 较 最大差值给出了绝对误差 注意绝对误差不能直接补偿 除非使用占用很大内存的查表或多项式逼近 但是绝对误差最 重要的贡献是可以补偿偏置和增益误差 AVR120 AVR 的 ADC 校正和说明 翻译 邵子扬 第 4 页 共 11 页 绝对误差会缩小 ADC 的范围 需要考虑最大和最小输入范围 避免被绝对误差截短 2 5 偏置误差偏置误差 偏置误差定义为在 0 输入时 实际 ADC 转换函数和理想直线的差 当输入参数是 LSB 时输出没有产生从 0 变到 1 我们就称之为偏置误差 对于正偏置 当输 入从下往上逼近 LSB 时输
9、出值大于 0 对于负偏置第一次输出变化时输入大于 LSB 换句 话说 如果实际的转换结果低于理想直线 就是负偏置 偏置示意图如图 4 图 4 图 4 正偏置 A 和负偏置 B 因为单端转换只产生正数结果 所以单端和差分的偏置测量过程是不同的 2 5 1 偏置误差偏置误差 单端通道单端通道 为了测量偏置误差 从 GND 开始增加输入电压直到输出产生第一个转换结果变化 计算输入 电压差 这个差值转换到 LSB 就等于偏置误差 在图 5A 第一次转变发生在 1LSB 转变从 2 到 3 等效输入电压是 2 LSB 差值是 1 LSB 这就是偏置误差 双箭头指示出差值 在图5B中显示了同样的过程 第一
10、次转变发生在2LSB 从 0 到 1 时 等效输入电压为 LSB 偏置误差也就是差值为 1 LSB AVR120 AVR 的 ADC 校正和说明 翻译 邵子扬 第 5 页 共 11 页 图 5 图 5 单端模式下的正偏置 A 和负偏置 B 误差 测量过程如图 6 图 6 图 6 单端偏置误差测量过程 偏置测量 设置输入为0 保存当前输出到A A 增加输入直到输 出产生变化 保存当前输出到B B 保存输入电压为 实际电压实际电压 计算输出从A变到 B需要的理论电压理论电压 偏置误差等于 理论 实际 换算为LSB 结束 为了补偿单端模式下的偏置误差 可以从每个测量结果中减去偏置误差 注意到偏置误差
11、会 影响 ADC 的范围 一个大的正偏置误差使输出值在输入达到最大值前就已经饱和 而大的负 偏置误差使输出值变为 0 在输入变为最小值前 2 5 2 偏置误差偏置误差 差分通道差分通道 使用差分通道 测量偏置误差变得更容易 因为不需要外部输入电压 两个差分输入端可以 连接到同一内部电压上 输出就是偏置误差 因为这种方法无法确定何时发生第一次转换 所以给出误差是 LSB 到 1LSB 最差情况 为了补偿差分模式下的偏置误差 同样是从每次测量结果中减去偏置误差 AVR120 AVR 的 ADC 校正和说明 翻译 邵子扬 第 6 页 共 11 页 2 6 增益误差增益误差 增益误差的定义是在补偿了偏
12、置误差后 最后输出中点和理想直线的偏离 在补偿了偏置误 差后 输入电压是 0 时输出结果通常也是 0 但是增益误差将导致实际的转换函数斜率偏离 理想直线的斜率 这个增益误差可以通过将输出值比例化来测量和补偿 实时补偿通常使用整数算法 因为浮点数计算起来要花费较长的时间 为了获得最高的精度 斜率偏离的测量要尽量远离 0 点 参数越大 精度越高 这将在后面详细论述 图 7 显示了一个 3 位 ADC 的增益误差 下面的说明同时包括了单端模式和差分模式 图 7 图 7 正 A 和负 B 增益误差例子 为了测量增益误差 输入从 0 开始直到达到最后的输出 增益补偿的比例系数等于理想输出 值和最后输出值
13、中点除以实际步数 如图 7A 输出值在达到最大之前就已经饱和 垂直箭头显示了最后输出的中点 在这个电 压下理想输出值是 5 5 比例系数等于 5 5 除以 7 在图 7B 输入电压达到最大时输出值只 有 6 这对于实际值是负偏差 在这个情况下理想的输出值是 7 5 比例系数等于 7 5 除以 6 测量过程如图 8 增益测量 设置输入到0 增加输入直到达到 最大输出 找出基于前级长度 的最后级中点 用实际最大输出值 作为分母A 用理论值作分子B 补偿系数 B A 结束 AVR120 AVR 的 ADC 校正和说明 翻译 邵子扬 第 7 页 共 11 页 2 7 非线性非线性 当补偿了偏置误差和增
14、益误差后 实际的转换函数应当等于理论 ADC 的转换函数 但是由于 存在着非线性 时间的曲线和理论曲线还是有微小的差别 有两个办法可以用来测量非线性 它们将在后面说明 图 9 显示了两种测量方法 图 9 图 9 非线性曲线例子 2 7 1 差分非线性差分非线性 差分非线性 DNL 定义为在实际台阶宽度和理论宽度 1LSB 之间最大和最小差异 非线性产生变化宽度的量化台阶 所有台阶应当都是 1LSB 宽 但是有的宽有的窄 为了测量 DNL 输入一个斜坡电压并记录下所有的转换值 步长由转换间的距离而定 来自 1LSB 的最大正偏离和负偏离用来报告最大和最小的 DNL 2 7 2 整体非线性整体非线
15、性 整体非线性 INL 定义为实际曲线和理论曲线之间最大垂直差 INL 可以被解释为所有 DNL 的总和 例如 一些连续的负 DNL 使得实际曲线高于理论曲线 如图 9A 负的 INL 说明实际曲线低于理论曲线 最大和最小 INL 使用同样的斜坡输入电压测量 记录下每个台阶中点的偏离 其中最大的正 偏离和负偏离就是最大和最小的 INL 2 7 3 测量和补偿测量和补偿 在补偿了偏置误差和增益误差之后再测量 DNL 和 INL 误差很重要 否则 偏置误差和增益误 差会影响测量结果 就不能得到真实的 DNL 和 INL AVR120 AVR 的 ADC 校正和说明 翻译 邵子扬 第 8 页 共 1
16、1 页 非线性误差不能通过简单的计算来补偿 可以用多项式逼近或查表法补偿 不过 AVR 的 10 位 ADC 的 DNL 和 INL 的典型值是 LSB 足以满足一般的实际应用了 2 8 温度 频率和电压影响温度 频率和电压影响 使用 ADC 的内部电压参考源时 必须考虑它的精度 内部电压参考源和能隙电压成正比 它 的特性在数据手册中说明了 特性显示能隙电压轻微的受到供电电压和温度影响 ADC 的精度也受到 ADC 时钟的影响 推荐最大的 ADC 时钟频率受内部 DAC 转换电路的限制 为了优化性能 ADC 时钟不要超过 200KHz 但是即使频率达到 1MHz 也不会显著降低 ADC 的 分辨率的 不要用高于 1MHz 的频率来操作 ADC 2 9 带宽和输入阻抗带宽和输入阻抗 使用单端模式时 ADC 的带宽受 ADC 的时钟速度限制 因为 1 次转换需要 13 个 ADC 时钟周 期 所以最大时钟 1MHz 的 ADC 时钟意味着大约每秒 77K 的采样速度 按照 Nyquist 采样定 律单端模式的带宽是 38 5KHz 使用差分模式时 因为差分放大器带宽被限制在 4KHz 大于