“我们所接触到自然界的各种信号,无论是电压、电流、温度、压力等都属于模拟信号的范畴。但因为单片机只能处理数字信号,所以需要⼀个能将模拟信号转换为数字信号的介质——模数转换器(ADC),模拟量转换为数字量包含以下几个步骤:采样、保持、量化、编码。本文我们以ADI亚德诺半导体24位Σ-ΔADC为例,为大家讲解ADC码值的转换过程。
”作者:陆聪
AD7768-1介绍
AD7768-1是一款低功率、高性能 Σ-Δ 模数转换器(ADC),其具有一个Σ-Δ调制器和数字滤波器,可实现AC和DC信号的精确转换。下图(图1)所示为AD7768-1的核心信号链:
图1 AD7768-1的核心信号链
Σ-Δ调制器对模拟输入进行过采样,并将数字表示传递给数字滤波器块。数据被滤波,增益调整和抽取(抽取率取决于用户设置)后在SPI接口上输出。其中量化以及编码除了ADC本身之外,还涉及到基准源Reference,AD7768-1外部基准源电压范围支持1V至(AVDD1–AVSS)电压,前端输入电压范围支持到±VREF。
ADC理想传递函数
AD7768-1可以使用高达5V的参考电压并转换模拟输入之间的差分电压(AIN+和AIN−)到数字输出。模拟输入可以配置为以下任意一种:差分或伪差分输入。作为伪差分输入时,AIN+或AIN-可以连接到一个常数输入电压(如0V、AVSS或其他参考电压),ADC转换模拟量之间的电压差,使用共模(AVDD1−AVSS)/2可以最大限度地提高ADC输入范围。下图(图2)显示了AD7768-1的理想传递函数,值得注意的是目前绝大多数ADC在输出码值的时候是以二进制补码(twos complement format)的形式输出的,AD7768-1也是如此。
图2 ADC理想传递函数
二进制补码
二进制补码(twos complement format)是一种常用的二进制数表示方法,它主要用来表示负数的大小。在二进制补码中,正数的表示方法和普通的二进制数表示方法没有任何区别,但是负数的表示方法是通过将它的绝对值的二进制数取反(即将每一位的0变为1,1变为0),再加1得到的。假设要用二进制补码表示数字-5,则首先需要将5的二进制数101取反得到010,再加1得到011,即011就是-5的二进制补码。
基于以上信息,根据下图(图3))我们可以得出ADC输出的码值和理想输入电压的对应关系;其中-FS是可以输入的最低电压,因为是一个负值,MSB位取1,所以得到800000,正常来讲的话这个值应该是最小的,FS是可以输入的最高电压,应该对应0XFFFFFF。Midscale对于24分辨率ADC来说的话,应该取2的23次方,也就是8388608(0X800000)这个值。
图3 ADC输出码值与理想输入电压
根据ADC输出码值求输入电压
下图(图4)为求输入电压的计算公式,需要注意的是,部分工程师通过ADC读出来的CODE是直接二进制码值,那么此时Midscale Code需要对应转换为直接二进制的码值0X800000(对应十进制的 8388608),否则就会发现只有前端输入正电压是正确的,负电压就会报错了。
图4 根据ADC输出码值求输入电压
总结
本文以AD7768-1为例介绍了通用ADC进行编码过程,以及根据输出码值反推出实际 ADC输入的电压。但需要注意,目前绝大多数ADC都是按照二级制补码方式输出编码值,这是为了方便计算机对符号和数值的统一运算而不需要增加额外的硬件电路,一定要和ADC输出的原码区分开。欲了解关于更多ADI产品和方案信息,请与骏龙科技当地的办事处联系,骏龙科技公司愿意为您提供更详细的技术解答。
参考资料:
AD7768-1 数据手册和产品信息 | 亚德诺(ADI)半导体 (analog.com)
更多精彩资讯,敬请关注骏龙电子公众号或浏览骏龙科技官方网站:
分享到:
猜你喜欢