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.

TMP007 says negative temperature

Other Parts Discussed in Thread: TMP006, CC2650STKHello, I can not understand the reason that TMP007 says negative temperature when it was toward sun. In same situation , TMP006 always says positive temperature. I'm using TI's sensor tags, CC2650STK(TMP007) , CC2541-SensorTag(TMP006). And the TMP007 module by Adafruit-Industries outputs similar results. Thanks Dzone
  • Hello,

    Our expert on this is on vacation and will be back next week. Thank you for your patience.

    -Michael Wong
  • OK. Have a good vacation! :-) Dzone
  • The TMP007 on the CC2650STK will not work correctly without removing the housing. The plastic does not allow IR transmission, and was not designed with adequate opening. I've not evaluated the CC2541-SensorTag. There is a chance that devices mounted incorrectly will have damage to their thermopile. This is because the thermopile is on the bottom of the device in between the solder balls.

    Ren
  • Hello Ren,


    Thanks for your reply. I used a CC2650STK which was removed the housing. But same result. a picture is here: twitter.com/.../752702350855327744 . And the module using a TMP007 also outputs same results. The site of that module is here: www.adafruit.com/.../2023 .


    Thanks


    Dzone
  • Are you seeing negative object temperature or negative sensor voltage? If object temperature, are you seeing it go below zero or simply decrease from ambient temperature?

    Object Temperature can droop when the device heats quickly. We call this Transient Error. It can be minimized for a given application using Transient Correction feature, but it must be tuned to the application. I would not expect this type of error to cause a change in Object Temperature from 25C ambient to below freezing.

    The sensor voltage often reads back a small negative offset when there is no signal. This could be from damage or obstruction.

    Ren
  • Hello Ren,
    Thanks for your reply. And sorry for the delay in replying to you.

    Yes. I saw negative object temperature and negative sensor voltage like a attached picture. In this picture , a blue line is a plot of calculated temperature using voltage value. when I took out a TMP007 from my office building, the die temperature ("body" in the picture) increased but the object temperature decreased.

    I can make out that a thermopile makes a Transient Error when it was heated. But I cannot understand a difference of behavior on TMP007 and TMP006.

    Is that difference of characteristic in between TMP007 and TMP006?

    Thanks
    Dzone.

  • There is a small sensitivity difference between TMP006 and TMP007. There is also device-to-device variation within our specified limits.

    Can you share the raw data?

    Thanks,
    Ren
  • OK!. I will attach files next Monday of JST.
    Thanks
    Dzone
  • Hi Ren,

    I can not understand how much different they are by both data sheets regarding this minus temperature issue. 
    (Is that "Noise-Limited, Object-Temperature Accuracy", Figure4 of TMP006 ?)

    The data is Here. This is not RAW data, just copied characters from terminal.

    gist.github.com/.../4c00ba646cb77e19e4239f5da1ba5508

    And there is a sketch for Arduino uno in same page.

    (I can not attach files on this site today. I don't know reasons.)

    each parameters are bellow:
    ---TMP007
    So = 4.43E-14;
    a1 = 9.995E-4;
    a2 = -6.02E-6;
    RefTemp = 25 + 273.15;
    b0 = -3.094E-5;
    b1 = -8.728E-8;
    b2 = 1.30E-8;
    c2 = 0;

    register: CR2=CR1=CR0 =0

    ---TMP006
    So = 6E-14;
    a1 = 1.75E-3;
    a2 = -1.678E-5;
    RefTemp = 25 + 273.15;
    b0 = -2.94E-5;
    b1 = -5.7E-7;
    b2 = 4.63E-9;
    c2 = 13.4;

    register: CR2=CR0=0, CR1 =1

    Thanks
    Dzone

  • Hi Dzone,

    I see the raw file. Could you please label your columns? There are more rows than I expected.

    Thanks,
    Ren
  • Hi Ren,

    I added a label as first row.  Could you download the file again?

    The label is here.

    %Calc007 Direct007 Die007 Vsens007 Calc006 Die006 Vsens006 Direct007 Die007 Vsens007 Die006 Vsens006

    1st column  to 7th column are decimal value.  8th column to 12th column are hexadecimal value.

    Calc007 : TMP007 Object  Temperature by calculation using  sensor voltage.

    Direct007 : TMP007 Object  Temperature by result register 03h

    Die007 :  TMP007 Die Temperature by result register 01h

    Vsens007: TMP007 Sensor Voltage by result register 00h

    Calc006 : TMP006 Object  Temperature by calculation using  sensor voltage.

    Die006 : TMP006 Die Temperature by result register 01h

    Vsens006 : TMP006 Sensor Voltage by result register 00h 

    Thanks,
    Dzone

  • Your software does not correctly decode the negative voltages. You report Vsense -0.00 when the device reports a negative number (two's complement.) Your TMP006 and TMP007 die temperature and sensor voltage are very similar when voltages/temperatures are decoded correctly. For most of the log, the devices track each other. When pointed at the sun, the device die temperature begins to ramp up. The sensor is often confused when it's die temperature is changing, because the object temperature depends on cold junction compensation. In this case, the data tells us that the thermopile is colder than the device temperature. The IR energy from the sun is being absorbed by the device and rapidly heating the silicon, but the thermopile is (by design) somewhat isolated from this. This isolation causes the thermopile to lag behind in temperature.

    Ren
  • Hi Ren,

    Thanks for your reply.
    Regarding My software , I had checked correct value of negative voltages. And I know I should use a pointer casting.
    The Arduino's compiler corrects a casting method.
    The shown voltage floating point  value are multiplied by 156.25e-9.
    ( as first data: FF65(hex)  = -155(decimal) , -155 * 156.25e-9 = -0.00002421875 , so displayed only  "-0.00")

    Regarding decrease temperature issue, in my understanding from your comment the reason is a kind of isolation.
    So I think,  there are differences of thermal conductivity of die between TMP007 and TMP006. Is this right?

    Thanks,
    Dzone

  • Both TMP006 and TMP007 have the same thermopile. In your data, TMP007 die heats faster and reaches a higher max temp. We can speculate that this happens because of slight shade, hot spots, or simply that the TMP007 has a larger surface area to absorb energy with.

    During this time that the devices are heating, the TMP007 has a larger negative voltage than TMP006. This makes sense, because the difference in device temperature and "object" temperature is greater. I say "object" because there is no object to measure. You won't be able to measure the sun's temperature. Most of the medium wavelength IR that is used in temperature measurement is blocked by the gases in the atmosphere. This means there is a lack of IR energy to be measured by the sensor when it is pointed at the sky.

    Ren

  • Hi Ren,

    Thanks for your reply and graph.
    I can understand bellow points.
    - Thermopiles of TMP007 and TMP006 are same.
    - A difference of Vsens with TMP007 and TMP006 comes from a difference of die size.
    - The sensor sometimes confuse when the die temperature was heated rapidly.
    - The Vsens value decrease  when the sensor confused.

    I have one more question.
    Does the gain of thermopile have a AGC (auto gain control)?

    I think you recommend comparing by two voltage value (not calculated temperature).
    so, I took data again.
    I found that similar shape TMP007 and TMP006.
    And I think a difference comes from difference of die size as you say.


    Thanks,
    Dzone

  • Another point to consider is that there is variation between devices.

    Yes, it is helpful to observe the voltage output to understand device operation.

    Both of these devices need to be calibrated to correctly resolve object temperature in a given application. It is best to thermally isolate the device, so it can only receive heat transfer from infrared radiation. The other types of heat transfer are conduction and convection. Thermal changes due to conduction and convection cause measurement errors. This is the technical explanation of "confused."

    There is not an automatic gain control. The sensitivity (S0) must be chosen for the application.

    Ren
  • Hi Ren,

    Thanks for your reply.
    I see that there is not AGC.
    And I can understand a "confused" and a variation.

    I will decide to use TMP007 in my design.
    Then, I have to implement a exception for transient error, and a calibration mode.

    My question was solved at this time. As the next step, I will contact sales.

    Thanks a lot,
    Dzone