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 math engine problems

Other Parts Discussed in Thread: TMP007, TMP006

Hello

I'm evaluating the TMP007 using this board: 

http://www.exp-tech.de/advanced_search_result.php?keywords=tmp007&XTCsid=2a8ba5de221b31f3f8e273679d2dea46

It can't make the math engine working properly.

The sensor is used with the default registers values, supply 3.3V  and I read Vsensor, Tdie and Tobj every 3 sec.

At the beginning I read Tdie=20°, Tobj=21°.

When I put a heat source (my hand) on top of the sensor, at distance of few cm. the Vsensor increase, the Tobj after some reading shows about 34°, but slowly also the Tdie increase. When this happens the Tobj decrease.

After few minutes, I have a reading of  both Tdie and Tobj around 23°.

If ,at this point, I remove the hand the Tobj fall to 17° and slowly, as the Tdie decrease, it will goes again to the initial reading.

So, what I making wrong? It seems that the math engine is not working.

  • Hi Ettore,

    Thank you or your interest in TMP007.  I repeated your experiment using the TMP007EVM from Texas Instruments and I did not get the same result you described.  My readings started out similar to your, ie object and die temp were about 25C each...when I placed my hand over the sensor the object rose quickly, had a little overshoot and settled in at the 34C range...the die temperature slowly increased from 25 C to about 28 C.  My recommendation is to evaluate the TMP007 using the TMP007EVM.  I cannot provide any support for third party hardware.  What SW did you use to configure the device?  Do you write your own or is it also from a third party?  You can learm more about the TMP007EVM (Evaluation Module) here:

    http://www.ti.com/tool/tmp007evm?keyMatch=tmp007evm&tisearch=Search-EN

     

  • Thanks for the replay

    I understand the the different hardware can have some impact over the performance, but  my results are too different from what expected.

    I use a micro to talk to the sensor.
    The ADR0/ADR1 pins are tied to Gnd. 
    The software flow is:

    Main reset serial interface ( SCL held down 30ms)
              read config reg 0x02 ( result 0x1440)
    loop  wait 3sec
              read Vsensor and print
              read Tdie and print
              read Tobj and print
              goto loop       

    and this is what I get:

    -00074 018.62  022.65
    -00076 018.62  022.65
    -00076 018.62  022.65
    00075 018.62  023.65  <-- here I put a hand over the sensor
    00327 018.65  027.81
    00304 018.65  030.43
    00307 018.68  032.68
    00302 018.71  033.43
    00277 018.75  033.96
    00268 018.78  034.03
    00252 018.84  033.93
    00246 018.87  033.81
    00236 018.90  033.62
    00224 018.96  033.37
    00212 019.00  033.09
    00201 019.06  032.78
    00210 019.12  032.62
    00196 019.15  032.37
    00187 019.21  032.09
    //
    40 samples
    //
    -00006 020.68  027.34
    -00010 020.71  027.25
    -00004 020.75  027.25
    00005 020.78  027.21
    -00001 020.81  027.15
    -00019 020.81  027.03
    -00019 020.84  027.03
    -00012 020.87  027.06
    -00076 020.90  026.62  <-- remove the hand
    -00411 020.90  022.21
    -00409 020.90  018.93
    -00402 020.90  016.15
    -00392 020.90  015.25
    -00397 020.87  014.56
    -00373 020.87  014.43
    //
    110 samples
    //
    -00115 019.34  022.03
    -00115 019.34  022.03
    -00116 019.34  022.03
    -00113 019.34  022.03

    As you see, seems that the math engine is not running.

    I've checked the coeff register and they are at the default values.

    The only change I made to the protocol quoted in the datasheet (p19, figure23) is using the word b'10000000' as frame and b'10000001' as frame3. Using the suggested bytes I have not ACK by device. Is this correct?

    Ettore

  • Hi,

    I think you meant  b'10010000' for frame 1 and b'10010001' for frame 3???  I tried again out TMP07EVM, I increased the conversion time to 4 sec and tried with and without transient correction...I always achieved a similar result meaing that initially I see tdie and tobj very near each other at 24C...I place my hand over the sensor and see teh tobj ncrease to about 34C...it remains at 34C to 33C until I remove my hand...at the same time as my hand is there I see that the Tdie is increasing to about 28C or 29C...I never get the result that you show wherein the Tobj decreases to almost that o fthe Tdie.  If you feel that the math engine is not working plesaee return your HW to the vendor and request another...or you may buy one direct from TI.  Now I do suspect your HW may actually be OK, but there is something in your physical setup that you are not taking into account.  Can you please take a video of your testing so I can see exactly how you are placing your hand over the sensor during your testing?

  • Hello

    here is a picture from datasheet. I mean that if I use this protocol, I get no akn from device. If I put a 0 on the bits marked red, everything works.

    If you confirm that the datasheet is correct, than, probably I have a problem on my protocol or is a timing issue.

    Is it possible that using a zero on those bits the math engine stops working?

    Looking at the TMP006 datasheet, those bits are zero. I  tought also that the chip on the board is a TMP006, but all registers values match the TMP007 .

  • Thanks Ettore,

    I am verifying with the digital design team the accuracy of the drawing...I think you may have found a mistake in the data sheet drawings, Figures 22, 23 and 24...as soon as I have verified if the drawings are correct or not I will reply on this thread.

  • Hi Ettore,

    I confirmed that the data sheet is correct.  Because you have ADR0 and ADR1 pins tied to ground your device address is 1000000x...please refer to Table 2.  You indicated that if you have a "one" for the red highlighted bits in frame one (Fig 22) the device will not ACK, but when you have "zero" the device works as expected.  This is the correct behaviour.  With both address pins tied to ground bits A0, A1 and A2 in frame one should all be 'zero" when communicating with the device.  Now when you say "everything works" are you saying you can communicate with the device and get correct temperature information or are you still not recieving the expected temperature information?

  • Hi Ed

    I dont understand,

    from the datasheet (figure 23) seems that the bit I have highlighted should be always '1', even when the address (A0,A1,A2) is zero, so I should send '1001000x', but you says that  with address zero I should send the word '1000000x' ( as quoted in table 2 and also from figure22). So, picture 23 is wrong.

    I confirm that using '1000000x' I can comunicate with the device and get all the registers, but still I have the wrong temperature.

    I, was hoping that there was a bit somewhere to enable/disable the math engine that I missed, but maybe my chip don't work properly.  I'll try to make a video.

    Do you know if there was a pre-series with this problem?

    Thanks

     

  • Hi Ettore,

    My apologies, you are exatly correct...in my haste I reviewed a different image.  I am taking an action to revise the image in the data sheet. There is no known issue with the math engine nor is there a way to by pass it...unless you simply take the sensor voltage reading, local temperature sensor reading and perform the calculations inside your micro...but this is probably not the issue.  Do you only have one board?  It would be interesting to see if a second board produces a similar result.  I am not sure how your physical setp looks (this is why I suggest to email me a short video)...in some cases I have seen that someone will connect their hardware in the direct airflow of a fan blowing warm air on everything, so at some point the local die temp increases to the same temp as the object...could something like that be happening here?  Since you are still experiencing problems and you found a major error on our data sheet :) If you give me your shipping address I will send to you a free TI TMP007EVM and you can evaluate it in your same experiment and see if you have the same result.