ZHCSXM2A December 2024 – April 2025 TMP118
PRODUCTION DATA
Temp_Result 寄存器使用 16 位格式。温度数据由一个最低有效位 (LSB) 等于 0.0078125°C 的 16 位二进制补码字表示。温度读数中包含小数值,其表示方法是使用 Q 符号,这是一种表示值小数部分长度的简单方法。采用二进制补码来描述负温度。在数据转换为正确的有符号数据类型时,C 代码可以轻松转换二进制补码数据。有关使用 Q 符号来解码数字温度数据的更多详细信息,请参阅如何读取和解释数字温度传感器输出数据。
请注意,加电或者复位后,在首次转换完成前,温度寄存器读数为 0°C。另请注意,解码方案允许温度测量超出 -40°C 至 125°C 的建议工作温度范围,但如果超出该范围,则无法保证器件的性能。
| 参数 | 值 |
|---|---|
| 位 | 16 |
| Q | 7 |
| 分辨率 | 0.0078125 |
| 范围 (+) | 255.9921875 |
| 范围 (-) | -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 | 0.03125 | 0.015625 | 0.0078125 |
| -256 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 | 1/2 | 1/4 | 1/8 | 1/16 | 1/32 | 1/64 | 1/128 |
-28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 2-1 | 2-2 | 2-3 | 2-4 | 2-5 | 2-6 | 2-7 |
C Code Examples:
/* 16-bit format has 0 bits discarded by right shift
q7 is 0.0078125 resolution
the following bytes represent 24.5C */
uint8_t byte1 = 0xC;
uint8_t byte2 = 0x40;
float f = ((int8_t) byte1 << 8 | byte2) * 0.0078125f;
int mC = ((int8_t) byte1 << 8 | byte2) * 1000 >> 7;
int C = ((int8_t) byte1 << 8 | byte2) >> 7;表 7-3 以二进制和十六进制格式显示了一些示例温度和转换后的寄存器值。转到基于 TMP118 GUI 的代码生成器,查找不受 MCU 约束的 C 代码驱动程序。
| 温度 (°C) | 数字输出(二进制) | 十六进制 |
|---|---|---|
| 125 | 0011 1110 1000 0000 | 3E80 |
| 100 | 0011 0010 0000 0000 | 3200 |
| 80 | 0010 1000 0000 0000 | 2800 |
| 75 | 0010 0101 1000 0000 | 2580 |
| 50 | 0001 1001 0000 0000 | 1900 |
| 25 | 0000 1100 1000 0000 | 0C80 |
| 0.25 | 0000 0000 0010 0000 | 0020 |
| 0.0625 | 0000 0000 0000 1000 | 0008 |
| 0.0078125 | 0000 0000 0000 0001 | 0001 |
| 0 | 0000 0000 0000 0000 | 0000 |
| -0.0078125 | 1111 1111 1111 1111 | FFFF |
| -0.0625 | 1111 1111 1111 1100 | FFF8 |
| -0.25 | 1111 1111 1110 0000 | FFE0 |
| -25 | 1111 0011 1000 0000 | F380 |
| -40 | 1110 1100 0000 0000 | EC00 |