TMS570LC4357: Strange readings from Internal Temperature Sensor value below it's calibrated value at -40°C

Part Number: TMS570LC4357

Tool/software:

Hi experts,

We have encountered strange temperature readings from one of the three internal temperature sensors.

The device was placed in a temperature chamber and cooled down to -40°C.
At startup, the software:

  • reads the temperature calibration values from the OTP and calcualtes the slopes and offsets (lines 1-18), as described in the Application Note SPNA216–January 2016
  • configures and tests the internal ADC and enables the internal temperature sensors in the IOMM
  • reads ADC1[31](=ITMP1), ADC2[30](=ITMP3) and ADC2[31](=ITMP2)

Now the sensor 2 readout (line 25) is way off from the expected temperature of -40°C with an actual temperature value of -49°C.
This value is calculated with the correction values already applied.
Our assumption was, that the sensors readings will have an accuracy of about +/-2,5K across the full temperature range

==> Question (a): Is this assumption correct for all sensors, even with the calibration correction applied?
Or is this only valid after some sort of "2oo3 voting" as suggested in the manual?

As there are calibration values for 233K (-40°C) (lines 3,9,15) we also dumped the raw value of the ADC readings (lines 20-22):
[2/3]233K = 1531/0x5FB raw <=> ITMP1raw = 0x000005FE ==> diff: +3
[2/3]233K = 1555/0x613 raw <=> ITMP2raw = 0x000005DF ==> diff: -52
[2/3]233K = 1538/0x602 raw <=> ITMP3raw = 0x0000060C ==> diff: +10
Sensor 1 and 3 readouts are slightly higher than their calibration values, which makes sense, because of the self-heating of the device.
Sensor 2, on the other hand, is 52 digits below the calibration value, which looks kind of odd.

==> Question (b): How can the raw temperature reading be way below the calibration values?
Currently we are experiencing this issue with only one device, but we want to make sure, that this is not a general misunderstanding or error of any sort.
We tested 5 more devices that are much closer to the calibration values, but as the sensors are fully integrated on the chip it is difficult to imagine a faulty chip being the cause.

There are other signals connected to the internal ADCs that seem to have a valid readout.
Also the internal ADC test procedure runs without indicating any issues.
So, as far as we can tell, the A/D conversion itself appears to be functioning correctly.

  • ADC base clock is 1/93,3ns (VCLK=75MHz and Prescaler set to 6(+1))
  • Sampling Cycles = 255 (+2 => 257 * 93,3ns = 24us)
  • Discharge Cycles = 255 (*93,3ns = 23,8us)

[2025-08-15 09:58:22.450] [001] ===== [0] =============================================
[2025-08-15 09:58:22.450] [002] [1/3]303K = 1934/0x78E raw
[2025-08-15 09:58:22.450] [003] [2/3]233K = 1531/0x5FB raw
[2025-08-15 09:58:22.450] [004] [3/3]398K = 2486/0x9B6 raw
[2025-08-15 09:58:22.450] [005] slope =0.173
[2025-08-15 09:58:22.450] [006] offset=180.701
[2025-08-15 09:58:22.450] [007] ===== [1] =============================================
[2025-08-15 09:58:22.450] [008] [1/3]303K = 1965/0x7AD raw
[2025-08-15 09:58:22.450] [009] [2/3]233K = 1555/0x613 raw
[2025-08-15 09:58:22.450] [010] [3/3]398K = 2496/0x9C0 raw
[2025-08-15 09:58:22.450] [011] slope =0.176
[2025-08-15 09:58:22.450] [012] offset=231.065
[2025-08-15 09:58:22.450] [013] ===== [2] =============================================
[2025-08-15 09:58:22.450] [014] [1/3]303K = 1945/0x799 raw
[2025-08-15 09:58:22.450] [015] [2/3]233K = 1538/0x602 raw
[2025-08-15 09:58:22.450] [016] [3/3]398K = 2492/0x9BC raw
[2025-08-15 09:58:22.450] [017] slope =0.173
[2025-08-15 09:58:22.450] [018] offset=191.383
[2025-08-15 09:58:22.450] [019] 
[2025-08-15 09:58:22.450] [020] ITMP1raw = 0x000005FE
[2025-08-15 09:58:22.450] [021] ITMP2raw = 0x000005DF
[2025-08-15 09:58:22.450] [022] ITMP3raw = 0x0000060C
[2025-08-15 09:58:22.450] [023] 
[2025-08-15 09:58:22.450] [024] ITMP1 = 234.542 K (==> -38,608°C)
[2025-08-15 09:58:22.450] [025] ITMP2 = 224.029 K (==> -49,121°C)
[2025-08-15 09:58:22.450] [026] ITMP3 = 235.472 K (==> -37,678°C)
[2025-08-15 09:58:22.450] [027] DIF13 =   0.930 K
[2025-08-15 09:58:22.450] [028] DIF23 =  11.443 K

Thank you and best regards,
Max

  • ==> Question (a): Is this assumption correct for all sensors, even with the calibration correction applied?

    Yes, the accuracy is within 2.5degree Celcius.

    ==> Question (b): How can the raw temperature reading be way below the calibration values?

    Does the sensor 2 give correct value at other temperatures for example 30degree or 125degree tec?

  • Hi QJ,

    Thank you for the fast reply.
    Here are some additional readings that we have collected:

    For now we have only collected data for temperatures up to 0°C. This data is shown in the attached picture.

    • in the far left column you can see the external temperature (at some temperatures we switched on the devices several times, so the first one at each temperature is the most valid one)
    • ITMP1-3 refers to the internal sensors. "raw" values are direct ADC readouts. The scaled values to "K" and "°C" have already been corrected using the calibration values.
    • ITMPx-ITMPx shows the difference between each sensor, which should not exceed 5°C with an absolute accuracy of +/-2,5°C for each sensor.
    • XTMP1-4 shows some additional external I2C sensors on the board for reference ( We only read data from the external sensors once the software has started up correctly)
    • The columns T/U/V on the far right show the difference to the external temperature readings

    From -46°C to -0°C the temperature difference of Sensor 2 is getting better, but is still not within the expected range of 2,5°C. There seems to be a linear relationship.

    It is also noticeable that only Sensor 2 drifts below the external reference temperature, while the other 2 Sensors tend to drift above the reference temperature.

    Thank you and best regards,
    Max

  • Hi Max,

    Got it, thanks. The reading of on-die temperature sensor2 is out of the range. I am wondering if the device has wrong ADC value programmed to OTP during device testing. Please check with vendor to return this part for further analysis. 

  • Hi QJ,
    Thank you for your suggestion. We will send back the device to the vendor for further investigation.

    FYI, we took one more measurement yesterday at +30°C (another calibration point) and the Sensor 2 is also way below the expected value:

    Sensor 1:
    Calibration pair for 30°C: [1/3]303K = 1934/0x78E raw
    ADC value for sensor 1: ITMP1r= 0x00000790 => Diff = 2

    Sensor 2:
    Calibration pair for 30°C: [1/3]303K = 1965/0x7AD raw
    ADC value for sensor 2: ITMP2r= 0x00000788 => Diff = -37!

    Sensor 3:
    Calibration pair for 30°C: [1/3]303K = 1945/0x799 raw
    ADC value for sensor 3: ITMP3r= 0x00000799 => Diff = 0

    The difference of the actual value at 30°C and the calibrated value is still 37 digits.
    So this seems to be either a defect sensor 2 or entirely wrong calibration information in the OTP.

    Thank you and best regards,
    Max

  • Hi Max,

    Is it acceptable for you to use your own calibration data instead of OTP value for sensor 2? From the Chamber Temp - ITMP2 chart (using your test data), the sensor 2 looks ok (linear chart). 

  • Hi QJ

    Unfortunately, we cannot change the software in this way. Due to safety regulations, we have to use the data saved in the OTP.
    Because of this, a chip with incorrect calibration values can only be identified as defective.
    However, we can replace the defective chip as long as this is a one-off occurrence.

    Thank you and best regards,
    Max

  • Ok, thanks.