ZHCSR79A February 2024 – July 2024 TMP110
PRODUCTION DATA
TMP110 温度寄存器使用 12 位格式。12 位与 16 位字的左侧或最高有效侧对齐。四个未使用的位位于右侧,即最低有效侧。因此,需要进行移位来丢弃额外的位。采用二进制补码来描述负温度。在数据转换为正确的有符号数据类型时,C 代码可以轻松转换二进制补码数据。Q 表示法描述了表示分数结果的位数。4 位分数数据(称为 Q4)可提供 0.0625°C 分辨率。
参数 | 值 |
---|---|
位 | 12 |
Q | 4 |
分辨率 | 0.0625 |
范围 (+) | 127.9375 |
范围 (–) | -128 |
25˚C | 0x0190 |
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
符号 | 64 | 32 | 16 | 8 | 4 | 2 | 1 | 0.5 | 0.25 | 0.125 | 0.0625 | - | - | - | - |
-128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 | 1/2 | 1/4 | 1/8 | 1/16 | - | - | - | - |
-27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
2-1 |
2-2 |
2-3 |
2-4 |
- | - | - | - |
/* 12-bit format will have 4 bits discarded by right shift
q4 is 0.062500 resolution
the following bytes represent 24.5C */
uint8_t byte1 = 0x18;
uint8_t byte2 = 0x80;
float f = (((int8_t) byte1 << 8 | byte2) >> 4) * 0.0625f;
int mC = (((int8_t) byte1 << 8 | byte2) >> 4) * 1000 >> 4;
int C = (int8_t) byte1;
同样,在扩展模式下,温度寄存器以相同的分辨率 (Q4) 扩展为 13 位格式。这会改变范围和有效位,但分辨率保持不变。位移也会因此发生变化。扩展模式的编码和 C 代码示例如下所示。
参数 | 值 |
---|---|
位 | 13 |
Q | 4 |
分辨率 | 0.0625 |
范围 (+) | 255.9375 |
范围 (–) | -256 |
25˚C | 0xC80 |
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
符号 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 | 0.5 | 0.25 | 0.125 | 0.0625 | - | - | - |
-256 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 | 1/2 | 1/4 | 1/8 | 1/16 | - | - | - |
-28 |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
2-1 |
2-2 |
2-3 |
2-4 | - | - | - |
/* 13-bit format will have 3 bits discarded by right shift
q4 is 0.062500 resolution
the following bytes represent 24.5C */
uint8_t byte1 = 0xC;
uint8_t byte2 = 0x40;
float f = (((int8_t) byte1 << 8 | byte2) >> 3) * 0.0625f;
int mC = (((int8_t) byte1 << 8 | byte2) >> 3) * 1000 >> 4;
int C = (((int8_t) byte1 << 8 | byte2) >> 3) >> 4;