您好,
要将输出代码转换为电压,必须首先计算最低有效位或LSB的值。一个LSB代表一个代码的电压权重。换句话说,输入电压必须改变一个LSB大小,以增加/减少ADC输出。ADC的满标度范围(FSR)除以总的代码数可得出LSB值:
LSB
= FSR / (2^n - 1), 其中“n”是ADC的分辨率。
在ADS127L01
中,每个ADC的差分输入电压可以在-VREF到+VREF之间,因此满标度范围=2 x VREF。那么,LSB值计算如下截图所示:
接下来,您必须知道ADC的输出数据格式。ADS127L01 以二进制补码输出数据,其中0x7FFFFF表示正满标度,0x800000表示负满标度。如上截图中 table
20中所示。
将输出代码转换回输入电压的最直接的方法是将数据与0x800000进行逻辑“与”计算并测试MSB(最高有效位)。如果MSB等于0,只需将十进制等效值乘以LSB值。如果MSB=1,则必须首先从十进制等效值中减去2^n,然后乘以LSB值。
例如,使用VREF=2.5
V,N=24bit,,我们可以计算LSB大小为298 nV。输出代码0x147AE1对应于+400
mV的输入电压。同时,输出代码0xD70A3D对应于-800mV的输入电压。
如果输出代码是0x348020,那么就是1.025V。
注意我这里计算都四舍五入了,取的都是整数,计算时您可以保留更多位小数位以提高计算精度。
更多回帖