DS1852 点击型号即可查看芯片规格书
DS1852的数字转换器(ADC)读取五个输入。本应用说明说明如何解释温度、V(CC)和输入数据的数字值,并将其转换为温度和电压。
每个输入(V(CC), B(in), P(in), R(in))在表03h EEPROM中具有16位刻度值用于校准。本应用说明假设使用工厂默认的缩放值。
转换DS1852温度值的过程从重新生成以字节60h(温度的MSB)和61h(温度的LSB)存储的十六进制值开始。这两个字节包含最近的温度值,但是较低的4位被忽略,并且在读取时应该用0掩盖。读取两个字节后,将十六进制值转换为二进制。下4位的位权和掩码如表1所示。
60h(温度MSB) | 6h(温度LSB) | ||||||||||||||
年代 | 2 (6) | 2 (5) | 2 (4) | 2 (3) | 2(2) | 2 (1) | 2 (0) | 2 (1) | 2 (2) | 2 (3) | 2 (4) | 2 (5) | 2 (6) | 2 (7) | 2 (8) |
年代 | 2 (6) | 2 (5) | 2 (4) | 2 (3) | 2(2) | 2 (1) | 2 (0) | 2 (1) | 2 (2) | 2 (3) | 2 (4) | 0 | 0 | 0 | 0 |
温度存储在二进制数据的12个msb中。MSB是符号位,指示2的补码二进制数是正还是负。如果MSB为0,则温度为正。如果MSB为1,则温度为负。接下来的11位包含温度的值,并且对于正值和负值转换成不同的十进制。
下面是如何将正温度值从十六进制转换为十进制的示例。在本例中,地址60h和61h中的值分别读取为3Ch和50h。将这两个字节组合起来得到3C50h的十六进制值。接下来,将十六进制数据转换为二进制。3C50h的二进制等价物是0011 1100 0101 0000。由于MSB为0,温度为正。二进制数据的低4位被忽略,因此它们被0掩码。表2显示了从十六进制到二进制的转换和低4位的屏蔽。
HEXIDECIMAL数据 | 二进制数据 | 掩码二进制数据 |
3 c50h | 0011 1100 0101 0000 | 0011 11001010000 |
由于MSB符号位为0,因此温度为正,需要进行no 2的补位变换。因此,可以使用计算器将该值直接转换为十进制数。二进制数0011 1100 0101 0000等于十进制数15440。十进制数值必须除以256(或乘以2(-8))才能计算出正确的十进制温度值。将十进制值15440除以256得到的十进制温度值为60.3125°C。
转换负温度值(MSB = 1)有点复杂。例如,如果地址60h和6h包含数据D3h和60h。第一步是将十六进制值转换为二进制。同样,低4位被忽略,因此它们将被0掩盖。表3显示了从十六进制到二进制的转换以及4个较低位的屏蔽。
HEXIDECIMAL数据 | 二进制数据 | 掩码二进制数据 |
D360h | 1101 0011 0110 000 | 1101 0011 01100000 |
下一步是取掩码二进制值的2的补码。这是通过首先反转掩码二进制数据,然后在LSB中添加1来实现的。二进制数1101 0011 0110 000转换成0010 1100 1001 1111。LSB加1得到二进制数0010 1100 1010 0000。这个二进制数等于十进制数11424。与正温度示例一样,转换后的十进制值除以256,但由于MSB指示的温度为负,因此也为负。因此,十进制值11424除以-256,得到的十进制温度值为-44.625°C。
V(CC)值存储在地址位置62h和63h。电压数据作为无符号16位值读取,但忽略低4位。当读取62h和63h时,下4位应该用0掩码。表4显示了V(CC)数据的位权重和4个较低位的掩码。在低4位掩码的情况下,最大范围为65520,当它乘以100 μ V(出厂默认值)的LSB(缩放因子)时,转换为0V至6.552V的电压范围。
62h (V(CC) MSB) | 63h (V(CC) LSB) | ||||||||||||||
2 (15) | 2 (14) | 2 (13) | 2 (12) | 2 (11) | 2 (10) | 2 (9) | 2 (8) | 2 (7) | 2 (6) | 2 (5) | 2 (4) | 2 (3) | 2(2) | 2 (1) | 2 (0) |
2 (15) | 2 (14) | 2 (13) | 2 (12) | 2 (11) | 2 (10) | 2 (9) | 2 (8) | 2 (7) | 2 (6) | 2 (5) | 2 (4) | 0 | 0 | 0 | 0 |
例如,从62h和63h读取的值发现为D7A0h。将此数字直接转换为十进制值的结果为55200,当乘以100 μ V缩放因子时,其转换为5.52V。
输入引脚B(in)、P(in)和R(in)是无符号16位数字,并以相同的方式进行转换。表5显示了输入字节的位权重和4个较低位的掩码。在低4位掩码的情况下,最大范围为65520,当它乘以38.147µV(出厂默认值)的LSB(缩放因子)时,转换为0V至2.499V的电压范围。
64h (B(in) MSB) | 65小时(B(in) LSB) | ||||||||||||||
66h (P(in) MSB) | 67h (P(in) LSB) | ||||||||||||||
68h (R(in) MSB) | 69h (R(in) LSB) | ||||||||||||||
2 (15) | 2 (14) | 2 (13) | 2 (12) | 2 (11) | 2 (10) | 2 (9) | 2 (8) | 2 (7) | 2 (6) | 2 (5) | 2 (4) | 2 (3) | 2(2) | 2 (1) | 2 (0) |
2 (15) | 2 (14) | 2 (13) | 2 (12) | 2 (11) | 2 (10) | 2 (9) | 2 (8) | 2 (7) | 2 (6) | 2 (5) | 2 (4) | 0 | 0 | 0 | 0 |
例如,从两个地址位置读取十六进制值9E70h。用0掩码4位后,确定二进制值为1001 11100 0111 0000。十进制的对应值是40560。将该值乘以缩放因子38.147µV,得到缩放后的电压值为1.547V。
这个应用程序笔记演示了如何将存储在DS1852中的十六进制数据转换为十进制值。