This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMP112: 温度数据需要额外系数才能符合预期

Part Number: TMP112

您好,我在使用TMP112AIDRLR时遇到一些问题:

读取温度数据,并按手册要求乘以0.0625系数后能够得到符合数据范围且连续变化的温度数据(连续变化表明数据的大小端、高低字节正确)

    但是在我定性的分析中,它的温度数据显然不正确,因为仅乘以0.0625系数会导致手感明显温热(即高于36摄氏度体温)的TMP112所在区域,TMP112的实际读数小于体温值(若此温度为真实温度,则应当用手触摸感觉冷于体温)。

由于TMP112页面提供的arduino示例程序并未乘以额外系数,所以我在github上尝试搜索了相关的驱动程序,在tmp112x_lib/tmp122x.c at master · phaelbotelho/tmp112x_lib中,我看到了tmp112x.c文件61行有一注释掉的返回值,他对返回数据乘了额外系数1.8,我进行相同尝试后,数据趋于正常。

后续,我在MCU中打开了内部测温功能,并且通过整机下电放置一段时间后冷启动,立即测温,来在合理范围内使板载的三颗TMP112与MCU温度相同,来验证乘以额外1.8系数的正确性

结果证明,1.8系数后的温度为合理范围

下图是PCB布局,上方三个小红框内是TMP112,地址从0x48到0x4A,共三颗;下方大红框是MCU

下图是冷启动立即log输出的温度值(MCU发热几乎不计入影响),含义已在内容注明

可以看到MCU与TMP112温差范围比较合理

但此时的温度数据如下图代码,是乘以1.8系数后的结果

请问我是否在编写代码过程中有遗漏,或者芯片批次等原因造成了此次的问题?