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.

TMS570LC4357 – values measured by the on-chip temperature sensors

Other Parts Discussed in Thread: TMS570LC4357

Hi,

when trying to measure the TMS570LC4357 chip temperature in normal office conditions, I'm getting unexpectedly different results from the tree sensors:

Sensor Celsius Fahrenheit
1 57 135
2 49 120
3 64 147

Are these results possible, or should I verify my code again?

Best regards,

  Jan

  • Remember you are not measuring ambient temperature, you are measuring the die temperature. If you are running at 300MHz, these temperatures are reasonable.  I am a bit surprised by the large difference between sensors 2 and 3. Are you using the OTP values to scale the temperature like in the application note SPNA216?

  • On second thought, I just tried a TMS570LC4357 device in a socket here running at 300MHz. It slowly warmed up to about 40C. So your readings are high. You might want to verify that your ADREFHI voltage is 3.3V.
  • Thanks for your answers. The chip is running at 300 MHz. As I wrote, I'm not surprised by the absolute value of temperatures, but by their difference, especially – as you already mentioned – between temperatures measured by sensors 2 and 3.

    The code has two parts – an initialization part and a periodic service.

    The initialization part consists of:

    • ADC module initialization
    • ADC module offset calibration
    • reading sensors' calibration data and calculation of slopes/offsets

    The periodic service does the following:

    • reads measured (raw) value
    • corrects the raw value, because my analogue reference voltage is 3.0V
    • converts it to degrees Celsius using previously calculated slope/offset

    The formula for calculation of temperature is

    Celsius=((raw×(3.0/3.3)-offset)×slope)-273.15

    In my first post, I used a wrong formula, which led to slightly higher readings:

    Celsius=((raw-offset)×slope)×(3.0/3.3)-273.15

    Anyway, after correcting the above formula, the difference between sensors remains surprisingly high:

    Sensor Celsius Fahrenheit
    1 51 124
    2 43 110
    3 60 140

    Best regards


      Jan

  • If you take several readings, are they consistent, or do they jump around? Also, can you provide a screen shot of a memory window showing the calibration table at address 0xF0080310-0xF008033F?
  • All measured values – when not filtered – are approx. within 2 °C around their mean value, the calibration values and raw/converted values are shown on the following pictures:

  • The calibration values look reasonable.

    Did you setup the ADC with a minimum of 500ns discharge time and 1us sample time?

  • Yes, I hope: VCLK is 75 MHz, ADCLOCKCR is set to 5, therefore ADCLK should be 12.5 MHz (80 ns). ADG1SAMPDISEN.G1_SAMP_DIS_CYC is set to 8, so the sampling capacitor will be discharged for 8 ADCLKs, which is 640 ns. ADG1SAMP is set to 16, which means, that sampling window should be (16+2)×80=1440 ns.

  • I am running out of ideas to explain this. Are you seeing this on multiple devices? Is this on a TI board, or your custom board?
  • OK, let it be. It is a custom board. I may have an explanation for absolute values of the temperatures, but not for their difference: our board has a sandwich construction, there is another smaller PCB directly above the chip, so this may result in a little bit higher absolute values of temperatures, but the difference between sensors 2 and 3 is a mystery to me.

    Later, I will try to run the same measurement on a board with the same CPU but different construction.