ZHCADY9 April   2024 LM73 , LM75B , LM95071 , TMP100 , TMP101 , TMP102 , TMP103 , TMP104 , TMP107 , TMP1075 , TMP108 , TMP112 , TMP114 , TMP116 , TMP117 , TMP121 , TMP122 , TMP123 , TMP124 , TMP126 , TMP144 , TMP175 , TMP1826 , TMP1827 , TMP275 , TMP400 , TMP401 , TMP411 , TMP421 , TMP422 , TMP423 , TMP431 , TMP432 , TMP435 , TMP451 , TMP461 , TMP464 , TMP468 , TMP4718 , TMP75 , TMP75B , TMP75C

 

  1.   1
  2.   摘要
  3.   商标
  4. 1引言
    1. 1.1 二进制补码
      1. 1.1.1 二进制补码特征
    2. 1.2 Q 格式
    3. 1.3 常见温度数据格式
    4. 1.4 高精度温度数据格式
  5. 2代码示例
    1. 2.1  16 位(采用 Q7 表示法)
      1. 2.1.1 属性
      2. 2.1.2 C 代码
    2. 2.2  12 位(采用 Q4 表示法)
      1. 2.2.1 属性
      2. 2.2.2 C 代码
    3. 2.3  13 位(采用 Q4 表示法)(EM=1)
      1. 2.3.1 属性
      2. 2.3.2 C 代码
    4. 2.4  13 位(采用 Q4 表示法)
      1. 2.4.1 属性
      2. 2.4.2 C 代码
    5. 2.5  14 位(采用 Q6 表示法)
      1. 2.5.1 属性
      2. 2.5.2 C 代码
    6. 2.6  TMP182x 格式
      1. 2.6.1 属性
      2. 2.6.2 C 代码
    7. 2.7  14 位(采用 Q5 表示法)
      1. 2.7.1 属性
      2. 2.7.2 C 代码
    8. 2.8  8 位(无 Q 表示法)
      1. 2.8.1 属性
      2. 2.8.2 C 代码
    9. 2.9  11 位(采用 Q3 表示法)
      1. 2.9.1 属性
      2. 2.9.2 C 代码
    10. 2.10 不采用二进制补码的器件
      1. 2.10.1 属性
      2. 2.10.2 C 代码
  6. 3其他编程语言
    1. 3.1 解析
    2. 3.2 二进制补码
    3. 3.3 丢弃未使用的位
    4. 3.4 应用 Q 格式
  7. 4总结
  8. 5参考资料
  9. 6附录:Q 应用源代码
  10. 7附录:器件概要表

常见温度数据格式

大多数数字温度传感器,尤其是具有 I2C 接口的传感器,都采用 12 位 Q4 格式。原始 LM75 传感器采用 Q1 格式并提供 9 位分辨率。LM75 传感器只能通过单个 Q 位以半度为增量报告温度。LM75 的后继产品提供可配置的 9/10/11/12 位分辨率。启用后,这些额外的位将作为 Q 位,并分别提供 Q1/Q2/Q3/Q4 格式。尽管具有额外的位,但这些格式仍然 100% 软件兼容。这种兼容性源于小数点的位置固定不变,如图 1-2 所示;在位数缺失时,输出数据不会在寄存器内移位。

这种格式的一个方便之处在于,如果不需要有理数分辨率,可以极大地简化温度输出的计算。结果的高 8 位表示整数温度,无需执行额外的计算步骤。请参阅下图中的示例,其中高位的值为 32,温度为 32.5625°C。

需要注意的是,这种格式无法表示超过 128°C 的温度,而现代传感器的额定工作温度高达 150°C。

 12 位 Q4 格式图 1-2 12 位 Q4 格式
表 1-5 12 位 Q4 示例数据
温度 数字输出
二进制 十六进制
127.9375°C 0111 1111 1111 0000 7FF0
125°C 0111 1101 0000 0000 7D00
25°C 0001 1001 0000 0000 1900
0.0625°C 0000 0000 0001 0000 0010
0°C 0000 0000 0000 0000 0000
-0.00625°C 1111 1111 1111 0000 FFF0
-25°C 1110 0111 0000 0000 E700
-40°C 1101 1000 0000 0000 D800