微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 硬件电路设计 > TI模拟硬件电路设计 > 关于TMP006读取温度

关于TMP006读取温度

时间:10-02 整理:3721RD 点击:

你好,关于TMP006,我现在可以把ID读出来,但是读不出来温度值和电压值,可能是什么原因呢?望知情人者告知,谢谢。

SMBUS是否有pull high;

您指的ID是device 的ID?下面是read sequence

SMBUS有加上拉电阻的,Device ID.Manufacturer ID和配置寄存器里的值都可以读出来,但是唯独温度值和电压值读不出来。

其中配置寄存器里,我是这样设置的,使使能位EN=0(禁用DRDY引脚).而且配置寄存器里的低八位写不进去,即:即使写进去是1,读出来的还是0.

读出的温度值和电压值一直是0,读出的配置寄存器里的/DRDY位一直是低电平,不会是转换一直未完成吧?

1. 确认一下ID对不对。

2.配置结存器如下,低8位本来就是写不进的,其中D7是read only,所以您看到并不是问题。

3.读出来是0,要么是根本没转换,要么是转换未完成,从手册中CR的描述可以看到,转换一次最慢也不会超过4秒。DRDY的确可以用来指示转换是否完成,但您前面提到配置 EN=0,那么

 

 

 

(continued...  不知道为什么后面的内容看不到,重新发一下试试)

1. 确认一下ID对不对。

2.配置结存器如下,低8位本来就是写不进的,其中D7是read only,所以您看到并不是问题。

3.读出来是0,要么是根本没转换,要么是转换未完成,从手册中CR的描述可以看到,转换一次最慢也不会超过4秒。DRDY的确可以用来指示转换是否完成,但您前面提到配置 EN=0,那么DRDY是disable 的。

4.给出您的配置寄存器值,特别是MOD,它有000和111两种值,000是power down mode,it aborts the current conversion and puts the device into a low-power shutdown mode。

5.enable DRDY 看一下。

6.注意硬件设计,特别是layout,网站上有layout 方面的建议。

 

 

 

 

 

 你好!

  非常感谢您的建议,我在初始化中,给配置寄存器先复位(把0x8000写入配置寄存器中),然后在给配置寄存器初始化(把0x7800写入配置寄存器中,即MOD为111),然后读的配置寄存器的值很对(也是0x7800),Manufacturer ID,Device ID中的值也读的很准(分别是0x5449和0x0067),但是唯独电压值和温度值还是为复位后的值(0),而且配置寄存器的/DRDY位一直为低电平(0)。

  关于您说的enable DRDY,我是这样做的,将/DRDY引脚引出来(已加上拉电阻),程序中,写入配置寄存器的值为0x7900。测试的结果是,DRDY引脚一直是高电平(1)。

  关于硬件设计,PCB布线,说实话我是随便布的线,不知会不会有影响?但是可以准确读出来配置寄存器,Manufacturer ID,Device ID的值,又让我疑问,布线应该没有影响吧。

  从测试结果来看,按照您之前说的那样,要么没有转换温度,要么转换了,没转换完成。可是为什么会出现这样的情况?确实让我困惑。还再次麻烦你提些建议。

  

您说您的device ID 是0x0067,但这个值是reset value,并不是真正的device ID,下面才是通过ADR PIN设定的值,只有8种。 请确认。

Mister Lei

您说您的device ID 是0x0067,但这个值是reset value,并不是真正的device ID,下面才是通过ADR PIN设定的值,只有8种。 请确认。

看起来并不是这个问题,因为的确芯片在reset 后都是reset value,包括device ID。

建议您将layout 发给我看看,最好是Allegro的,其它软件我没有装,否则只能用截图了。另外线路也最好发一份。

特别注意 AGND,DGND是否有连接。

有空可以按照之前的建议通过enable bit 使能DRDY,看一下DRDY会不会有动作。

你好!

  我确实是把AGND和DGND连接了,其实我是初学者,因为之前见过有把AGND和DGND连接到一起的器件,所以这次索性也把AGND和DGND连接到一起了。

问题是不是出在这了?

  我的PCB作图很简单,单面板,直接把引脚引出来的,没有什么技术含量。

  今天下午按照您的建议,改变了ADRO,ADR1引脚,即改变了SMBUS的器件地址。发现当且仅有ADR0=0,ADR0=0或ADR0=1,ADR0=0这两种情况时,能读出复位值(但仍然温度寄存器里的值没有转换),我用很简单的51单片机开发板调试的。TMP006器件的电源和接地的都是用开发板上的电源端口和接地端口,不知这是否会有影响?

这里的AGND和DGND可以直接连接,那么您中间的温度感应部分是如何连接的?不过这个应该不会造成读不出温度。

建议您先检查一下PCB是否和硬件线路连接的一致,您提到电源和接地的都是用开发板上的电源端口和接地端口指的是51单片机的电源和GND是链接到开发板吗?这个不会有影响,因为至少您前面的工作都没有问题。

是否有换过其它芯片试一试,芯片是用热风枪吹上的吗?大概多大的温度。

Lei 你好,

请问我们用TMP006为什么ID 读出来不对,但是读写都算正常?这样有没有影响?

你好!

  非常感谢您的回答,我刚重新做的板,还没来得及测试,有情况再问你哈。这次TMP006中间部分是按照TI指导来的。

HI ee pp,

好的。

Hi haiyan,

请问您读出来的ID值是多少? 正常在reset后读出来的并不是通过ADR设定的ID值,而是reset value.

HI lei

    多亏您的提醒,是布局的问题,我重新布局一下,寄存器里的本地温度和电压值就可以转换了,但是请问在计算时,有个校准系数s0。我测的是体温,这个值是多少合适呢?我学校没有条件去测试的,求出s0的。

S0是和具体的系统有关,同时决定于被测物体。它是描述被测物体温度系数的值。不同的物体需要做不同的校正,不知道您有没有看TMP006 的User Guide,在第6节Calibrating the System有详细提到计算方法,您可以直接用最小最大值的斜率(y2-y1)/(x2-x1)来计算即可。 S0本来就是微调的值,它的default value 是6.4E-14,可以适应于一般应用中。

Hi Lei 感谢,明白了!呵呵

你好! 

  请问TMP006温度数字传感器的反应速度应该如何。我这边现象是变化很慢的,是不是我哪里用错了?

  现象是目标温度值变化很缓慢,有点像反应迟钝.

单纯对TMP006而言,温度转换主要受到ADC 的限制,如果最快速度为250ms的convert,即每秒最多4次转换。但注意会带来较大的noise。

另外受限的就是温度的计算到显示,这也是一个重要的原因。

HI Lei

     OK !   Thanks !

 

HI Lei:

    你好,51单片机处理浮点型的速度如何?我在想是不是因为51单片机处理浮点型的速度太慢,导致的测目标物体温度太慢?我程序里面没什么内容,只有读计算出来的物体温度和显示(显示只是显示温度)。

HI lei

     抱歉,之前搞错了,不是因为浮点运算问题,我想请教您,目前的现象是:响应时间慢,而且读出的电压寄存器中的值,随着环境温度和目标温度的值变化。(如果目标温度的值大于环境温度的值,则电压寄存器的值大于零;如果目标温度的值小于环境温度的值,则电压寄存器的值小于零;否则,等于零),这是否正常?

VOBJECT 的符号确切说是和 TAMBIENT 有关系,在它们相等的时候 TOBJECT 基本就等于 TAMBIENT。稳定室温下对一般使用来说,如果您用一个和室温一样且较高辐射系数的物体置于TMP006的探测目标上,得到的 TOBJECT 大概也就等于 TAMBIENT。当然所有的前提是TMP006 拥有一个规范的layout。

你好!

    不知道为什么,好奇怪哦,我的这个TMP006反应很慢,测个东西要30秒钟,我觉得是因为电压寄存器里的值变化太慢而导致的.实在是不值为何?不知你是否有代码?我想看一下是不是我的程序代码错了?(虽然这种可能性也不大,因为从寄存器里读来的电压值也不是很快稳定。)

您这里说的反应慢指的是寄存器的值变化慢,即直接测不同温度然后读V的变化。还是包含整个计算?

如果是寄存器的值变化慢有没有先换芯片试试。

另外变化慢和不稳定是不是一个意思?即其实您说慢是V 的值在测温时很难稳定下来。

您好!

     是电压寄存器里的值变化慢,但是最后是可以稳定的。比如,我在测额头的时候,本来应该寄存器电压值一次性稳定在某个值的,但是,这个电压值是缓慢上升然后在稳定在某个值的。布局时,虽然我没有完全按照TMP006指导的那样布局,应该也可以吧,毕竟可以转化了。有什么原因导致TMP006电压寄存器里的值变化慢呢?

不好意思没看到您的回复。 关于您提到的问题,看起来并不是转换速度慢的问题,而是“稳定速度”慢。这个还是比较和外部的影响因素有关。而能想到的只有layout,毕竟测温芯片对布局,layout 的要求很高,这些都会是影响精度,线性度的主要原因。 还有注意线性度S0的设定。

Hi lei,

   多谢!

你好,最近我在做tmp006的温度测量,可以给我一下您的程序参考一下吗

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top