查看: 918|回复: 0

[经验] 如何将 ADC 代码转换为电压

[复制链接]

该用户从未签到

发表于 2021-1-30 10:16:30 | 显示全部楼层 |阅读模式
分享到:
许多初步了解模数转换器(ADC)的人想知道如何将ADC代码转换为电压。或者,他们的问题是针对特定应用,例如:如何将ADC代码转换回物理量,如电流、温度、重量或压力。在这个包含两篇文章的博客系列中,我将讨论如何为各种应用执行这一数学转换。在第1篇文章中,我将解释如何将ADC代码转换回相应的电压。在第2篇文章中,我将使用几个应用示例来展示如何从测量的电压计算感兴趣的物理参数。
将代码转换为电压
ADC采样模拟信号提供表示输入信号的量化数字码。数字输出代码得到后处理,并且结果可以报告给使用该信息做出决定和采取行动的操作者。因此,重要的是将数字码正确地与它们表示的模拟信号建立关联。
一般而言,ADC输入电压通过简单的关系与输出代码相关,如公式1所示:
其中VIN (V)是ADC的输入电压(称为输入,如下所述),输出代码是ADC的十进制格式的数字输出代码(计数),LSB大小是ADC代码中的最低有效位(LSB)。
公式1是可用于任何ADC的一般公式。如果ADC的输出代码为二进制或二进制补码格式也没有关系,只要将二进制数正确转换为其等效十进制值即可。
确定LSB大小
完成ADC转换后,将输出代码的十进制值乘以LSB大小来计算输入电压。知道LSB大小是代码和电压之间转换的关键。
公式2可确定LSB大小:
其中FSR是与基准电压成比例的ADC的满量程输入范围(单位为伏特),N是ADC输出代码中的位数。2N等于ADC代码的总数。
LSB大小等于满量程输入范围(FSR)除以ADC代码的总数。这相当于覆盖整个输入范围所需的每个代码的步长。图1为4位ADC(24 = 16个代码)的阶跃函数,它将输入电压映射到输出代码。
1.jpg
图1:ADC输入传递函数(N = 4)
满量程范围和输入基准电压
要注意所使用ADC的FSR,因为不同的ADC有不同的FSR。FSR总是与基准电压成正比,也可能取决于任何内部增益,如公式3所示:
其中VREF是ADC的基准电压(单位为伏特);m是基准电压比例系数(例如,如果ADC的差分输入范围允许输入电压为从-VREF到VREF,则m = 2,因此FSR = 2VREF),增益是ADC的内部增益(如果有,否则为1V / V)。我在这个公式中包含了增益,以便在ADC包含增益级的情况下计算输入基准电压,如图2所示。
图2:输入基准电压
delta-sigma ADC通常在ADC输入之前集成可编程增益放大器(PGA)增益级;这就是公式3包括增益项的原因。通过在FSR计算中包括PGA增益,LSB大小计算也考虑了该增益。这意味着,当输出代码乘以LSB大小时,结果是PGA输入之前的输入基准电压(VIN),如图2所示,而不是放大的(输出基准)电压。注意,如果系统在ADC之前使用额外的信号调节,则该电路的效果可能需要额外的计算以确定系统的输入基准电压(在信号调节电路之前)。
示例代码
在大多数情况下,ADC代码由微控制器以8位段读取,并连接成32位数据类型。如果ADC的分辨率小于32位,并且输出代码有符号,则需要将数据符号扩展为32位整数数据类型以保留符号。图3中的代码为该操作的示例。
图3:读取24位ADC数据的代码示例
现在你知道如何将ADC代码转换为相应的输入电压,下一步是了解ADC输入电压和物理参数之间的关系。我将在第2篇文章中讨论这一点。

回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /4 下一条



手机版|小黑屋|与非网

GMT+8, 2024-11-24 21:55 , Processed in 0.118586 second(s), 16 queries , MemCache On.

ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

苏公网安备 32059002001037号

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.