一站式电子元器件采购平台

华强商城公众号

一站式电子元器件采购平台

元器件移动商城,随时随地采购

华强商城M站

元器件移动商城,随时随地采购

半导体行业观察第一站!

芯八哥公众号

半导体行业观察第一站!

专注电子产业链,坚持深度原创

华强微电子公众号

专注电子产业链,
坚持深度原创

电子元器件原材料采购信息平台

华强电子网公众号

电子元器件原材料采购
信息平台

如何解释DS1847/DS1848温度信号

来源:analog 发布时间:2023-08-08

摘要: DS1847和DS1848具有片上直接数字温度传感器。温度存储在地址位置E2h和E3h。本应用说明说明如何将数字温度数据转换为十进制摄氏度值。

将温度从十六进制转换为十进制

转换DS1847和DS1848的温度值的过程从重新生成存储在字节E2h(温度的MSB)和E3h(温度的LSB)中的十六进制值开始。这两个字节包含最近的温度值。一旦这两个字节被读取,它们就可以被转换成二进制。位权重如表1所示。

表1、来自DS1847和DS1848数据表第5页的位压
E2h(温度MSB)E3h(温度LSB)
年代2 (7)2 (6)2 (5)2 (4)2 (3)2(2)2 (1)2 (0)2 (1)2 (2)2 (3)2 (4)000

温度存储在二进制数据的13个msb中。MSB是符号位,指示2的补码二进制数是正还是负。如果MSB为0,则该值为正。如果MSB为1,则该值为负。接下来的12位包含温度的值,并通过不同的方法转换成十进制的正值和负值。

正温度平移

下面是一个如何转换正温度的例子。在本例中,地址位置E2h和E3h分别包含2Ah和88h。将这两个字节组合得到2A88h。接下来,将十六进制数据转换为二进制。2A88h的二进制等价物是0010 1010 1000 1000。由于MSB为0,温度为正。二进制数据的低3位被忽略,因此它们被0掩码。表2显示了从十六进制到二进制的转换和低3位的屏蔽。

表2、正数(MSB = 0)翻译
HEXIDECIMAL数据二进制数据掩码二进制数据
2 a88h0010 1010 1000 10000010 1010 1000000

因为温度是正的,所以需要2的补变换。数据可以用计算器直接转换成十进制数。二进制数0010 1010 1000 1000等于十进制数10888。由于数据包含小数部分,因此必须将小数值除以以获得真实温度。十进制数值必须除以128(或乘以2(-7)),才能计算出正确的十进制温度值。十进制数值10888除以128得到的十进制温度值为85.0625°C。

负温度平移

转换负温度值(MSB = 1)有点复杂。例如,地址E2h和E3h包含数据F8h和08h。第一步是将十六进制值转换为二进制。同样,低3位被忽略,因此它们将被0掩盖。表3显示了从十六进制到二进制的转换以及3个较低位的屏蔽。

表3、负数(MSB = 1)翻译
HEXIDECIMAL数据二进制数据掩码二进制数据
F808h1111 1000 0000 10001111 1000 0000000

下一步是取掩码二进制值的2的补码。这是通过首先反转被屏蔽的二进制数,然后对其加1来完成的。对二进制数1111 1000 0000 1000进行逆变换得到二进制数0000 0111 1111 0111。加1得到二进制数0000 0111 1111 1000。该值等于十进制数2040。与正温度示例一样,转换后的十进制值除以128,但由于MSB指示的温度为负,因此也为负。因此,当十进制值2040除以-128时,结果是-15.9375°C的十进制温度值。

结论

这个应用笔记演示了将地址E2h和E3h中的十六进制数据转换为十进制摄氏度温度值的两种方法。



声明:本文观点仅代表作者本人,不代表华强商城的观点和立场。如有侵权或者其他问题,请联系本站修改或删除。

社群二维码

关注“华强商城“微信公众号

调查问卷

请问您是:

您希望看到什么内容: