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.

LMP91300 temperature LUT problem

Other Parts Discussed in Thread: LMP91300

Hi TI Team,

There is wriiten in a LMP91300 datasheet that a lookup table for Murata NCP03WF104F05RL thermoresistor is hard-coded in the chip.

So we use a very close to it NCP21WF104J03RA thermoresistor for not bothering with LUT.

The default values for 0x00-0x5D registers are 0x4000 - they seem to be corresponding to "1" for every temperature point. This is normal?

Then we've tested our LMP91300-based board (almost a copy of LMP91300NPN design) in a temperature chamber and it seems that

there is no temperature compensation at all: at -40°C (TEMP64 = 0x1b) the Proximity_MSB = 0x3a while at +30°C (TEMP64 = 0x5e)

the Proximity_MSB value is 0x51.

So may be I do something wrong and the LUT is not switched on or there is something else wrong....

The LMP91300 part is not burned yet, the coil is just a common PCB-coil with 14 winds and a 95 mm diameter, the LC-tank frequency is about 2,6 MHz,

the target is from a plain structural steel 85 mm in diameter and 3 mm thick... The whole thing reliably switches on at 35 mm (Proximity_MSB = 0x51) and

off at more than 50 mm (Proximity_MSB < 0x3c). The RpMax and RpMin settings are 0x10 and 0x15.

So what is wrong?

And what should be done?

Best wishes,

     Igor Gorbounov

  • Hi Igor,

    I am looking into this matter.

    Regards,

    ChrisO
  • Hi Igor,

    The Look Up Table is to compensate for the change of the LC tank over temperature.  The values in the LUT are set to a value of 1 as a default.  They will need to be changed to match the temperature variation of the LC tank.

    You will need to characterize the LC tank over temperature to calculate the values of the LUT.  The LC tank and PCB with the LMP91300 should be put in a temperature chamber with a target at the switching distance.  Then Rp measurements are made over the temperature range.  This is described in the datasheet. 

    I have attached a spreadsheet that can be used to calculate the LUT values. 

    A couple of things to keep in mind when using this spreadsheet.  In this example 18C is used as the ambient.  If you are using another temperature you  will need to change it.

     The LMP91300 has values in the look up table that are at 4C intervals:  -12C, -8C, -4C, 0C, 4C, 8C, 12C and so on between -48C to +136C.  A good example of how the data is used in shown in row 25 of the datasheet.  The temperature chamber was set for 0C and the LMP91300 measured it at 4C.  The GCF calculated is 0x4004 (column Q).  This value is put into the 4C look up table register (register 0x1a and 0x1b). 

     Another example is if the measured data is in between the temperatures of the registers.  See rows 21, 22, and 23.  The temperature chamber was set for -6C and -2C, the LMP91300 measured it as -2C and +2C.  The GCF for both of these values is calculated, these are in cells M21 and M23.  An average of these two values are taken and put in cell M22.  This value is converted to hex (cell Q22, 0x4002) and is put in the 0C registers (0x18 and 0x19).

     It would be best to do the temperature measurements with a target at the switching distance, but with the switch and LED turned off.

    Mike

    Temperature_LUT_GCF.xlsx

  • Hi Mike,

    I don't understand why values in columns C, E, N and O differ...

    And next, what about the hardcoded LUT? Really it is not hardcoded for the thermoresistor proposed?

    If it is so then I need this LUT been filled... and the target material should be important, too... and the distance for switching on, too.

    Then it looks like there were no need to seek for the same thermoresistor as recommended in datasheet?

    The values in your spreadsheet are very close to 1 - are they for example only?

    If the real temperature is -40°C and the 0x79 register shows -37°C then what LUT cell should I choose for the value?

    Best wishes,

          Igor Gorbounov

  • Mike,
    what does then mean the phrase from datasheet (page 13): "The LUT was
    designed for an NTC with a beta factor β = 4250 such as the Murata NCP03WF104F05RL. Any other NTC used
    in the design will require additional adjustments which are explained in the Look-Up Table Calibration section..."

    Igor
  • Hi Mike,
    I believe that I've got now the source of mistakes (or inaccuracies) in the LMP91300 datasheet related to temperature compesation.
    The text from that datasheet: "...NTCs with a β ≠ 4250: The temperature LUT has been internally hard coded based on a specific NTC with a
    β factor of 4250 (Murata NCP03WF104F05RL). The user must recalibrate the LUT when an NTC with a β
    factor other than 4250 is used. The LUT temperature range is extended past the LMP91300 operating range
    to facilitate recalibrating the LUT if using other off the shelf NTC components..." - should be understood as "...the TEMP64(0x79) values are calculated based on a hardcoded β factor of 4250, so in case of other β factors the user should take into account that the TEMP64 values may significantly differ from actual ambient temperature..."
    And the LUT calibration must be done in any case and for every new target material used.
    This sort of explanation seems to be more consistent.

    Best wishes,
    Igor Gorbounov
  • Hi Igor,

    The LMP91300 was designed to use a NTC that has a β = 4250. A NTC that has a different β will have a different transfer function. What this does is changes the temperature that the LMP91300 thinks the ambient is set at. For example, if a NTC is used with a β factor of 4250 and it is in an ambient of 40C the LMP91300 will report in the temperature register that it is 40C. If another NTC is used that has a different β the LMP91300 may report a temperature that is different than the ambient of 40C. This is what needs to be taken into account when using a different type of NTC.
  • Yes, Michael, now it's clear. Thanks for your answer.

    Best wishes,
    Igor Gorbounov
  • Hi Mike,
    still there is something wrong with the LUT: I've made measurements in temperature chamber, interpolated the proximity values and calculated the GCF values, then written them into LUT - strange, but proximity values are still changing with temperature.
    No I've tried the simplest test: I do change the LUT value for LUT_24_GAIN_MSB (the TEMP64 = 0x58 value corresponds to 24 degrees). But whatever values I write into LUT_24_GAIN_MSB register the proximity values don't show any signs of temperature compensation: they just
    fluctuate near the same value.
    What could I do wrong? Have I missed something?

    Best wishes,
    Igor Gorbounov
  • HI Igor,

    The lookup table doesn't work directly on the proximity values but it works on the values in the DET registers. This means that what you are seeing is correct. With values in the LUT as you change the temperature the proximity value will change with the temperature.

    If you put some values in the DET registers so that it switches on at a certain distance (x) and switches off at another longer distance (y) those distances should not change over the temperature range. This is because the part internally is adjusting the DET values according to the LUT values so that the switching distance stays the same.

    Mike
  • Hello Mike,
    now I see... But this information should be present in lmp91300 datasheet because I was trying to test the LUT effectiveness by measuring proximity values - it seemed to be more natural.
    And about those DET-values - is there any way to check their compensation with temperature?


    Best wishes,
    Igor Gorbounov