如何解释DS1852的温度和电压读数

描述

DS1852是一款数字电位器,具有5路模拟输入,可与电位器配合使用,收集模拟系统的反馈信息,并提供模拟控制功能。其预期应用是在激光收发器中提供高水平的控制和仪表,但它可用于需要这种仪器和控制的任何类型的控制系统。本应用简介讨论DS1852中模拟输入寄存器的解释。它旨在作为数据资料的补充,供软件/固件开发人员编写代码来控制DS1852。

介绍

DS1852的模数转换器(ADC)读取5个模拟输入。本应用笔记解释了如何解释温度的数字值,VCC,并模拟输入数据并将其转换为温度和电压。

缩放校准

每个模拟输入 (VCC, Bin, Pin, Rin) 具有表 03h EEPROM 中用于校准的 16 位缩放值。本应用笔记假设使用出厂默认缩放值。

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

转换DS1852温度值的过程从读取以字节60h(温度的MSB)和61h(温度的LSB)为单位的十六进制值开始。这两个字节包含最新的温度读数,但是较低的4位被忽略,并且在读取时应用0屏蔽。读取两个字节后,将十六进制值转换为二进制。4个较低位的位权重和掩码如表1所示。

 

60小时 (温度兆字节) 61小时 (温度LSB)
S 26 25 24 23 22 21 20 2-1 2-2 2-3 2-4 2-5 2-6 2-7 2-8
S 26 25 24 23 22 21 20 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 位的屏蔽。

 

十六进制数据 二进制数据 屏蔽的二进制数据
3C50h 0011 1100 0101 0000 0011 1100 0101 0000

 

由于MSB符号位为0,因此温度为正,不需要2的补码变换。因此,可以使用计算器将该值直接转换为十进制数。二进制数 0011 1100 0101 0000 等于十进制值 15440。十进制值必须除以 256(或乘以 2-8) 以计算正确的十进制温度值。将十进制值 15440 除以 256 得到十进制温度值为 60.3125°C。

负温度转换

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

 

十六进制数据 二进制数据 屏蔽的二进制数据
D350K 1101 0011 0110 0000 1101 0011 0110 0000

 

下一步是获取掩码二进制值的 2 补码。这是通过首先反转屏蔽的二进制数据,然后将 1 添加到 LSB 来完成的。二进制数 1101 0011 0110 0000 转换为 0010 1100 1001 1111。将 1 添加到 LSB 会得到二进制数 0010 1100 1010 0000。此二进制数等于十进制数 11424。与正温度示例一样,转换后的十进制值除以 256,但也变为负值,因为温度为负,如 MSB 所示。因此,十进制值 11424 除以 -256,得出十进制温度值为 -44.625°C。

VCC译本

五世抄送值存储在地址位置 62h 和 63h 中。电压数据作为无符号的16位值读取,但较低的4位被忽略。读取 62h 和 63h 时,较低的 4 位应用0 屏蔽。表 4 显示了 V 的位权重抄送数据和 4 个较低位的屏蔽。在屏蔽较低的4位时,最大范围为65520,当乘以100μV的LSB(比例因子)(出厂默认值)时,转换为0V至6.552V的电压范围。

 

62小时(VCC MSB) 63小时( VCC LSB)
215 214 213 212 211 210 29 28 27 26 25 24 23 22 21 20
215 214 213 212 211 210 29 28 27 26 25 24 0 0 0 0

 

例如,从 62h 和 63h 读取的值为 D7A0h。将此数字直接转换为十进制值得到的值为55200,乘以100μV比例因子时转换为5.52V。

模拟输入 (Bin, Pin, Rin) 

模拟输入引脚B在, P在和 R在是无符号的 16 位数字,并以相同的方式翻译。表5显示了模拟输入字节的位权重和4个较低位的屏蔽。在屏蔽较低的4位时,最大范围为65520,当乘以38.147μV(出厂默认值)的LSB(比例因子)时,相当于0V至2.499V的电压范围。

 

64小时 (Pin MSB) 65小时(Pin LSB)
66小时(Pin MSB) 67小时(Pin LSB)
68小时(Rin MSB) 69h (Rin LSB)
215 214 213 212 211 210 29 28 27 26 25 24 23 22 21 20
215 214 213 212 211 210 29 28 27 26 25 24 0 0 0 0

 

例如,从两个地址位置读取十六进制值 9E70h。用 0 屏蔽 4 个低位后,二进制值确定为 1001 1110 0111 0000。十进制等效项为 40560。将该值乘以比例因子 38.147μV 得到 1.547V 的缩放电压值。

结论

本应用笔记演示如何将DS1852中存储的十六进制数据转换为十进制值。

审核编辑:郭婷

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分