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.

CC2540 Temperature sensor Calibration

Other Parts Discussed in Thread: CC2540

Hi,

I used the statements below to call out the calibrated data for adc and temperature.

        uint16 adcCalInt0V2 = *((uint8 *)INFOPAGE_WORD12 + 0) << 6 | *((uint8 *)INFOPAGE_WORD12 + 1) >> 2;        

        uint16 adcCalInt0V9 = *((uint8 *)INFOPAGE_WORD12 + 2) << 6 | *((uint8 *)INFOPAGE_WORD12 + 3) >> 2;        

        uint16 adcTemp25= *((uint8 *)INFOPAGE_WORD7 + 2) << 6 | *((uint8 *)INFOPAGE_WORD7 + 3) >> 2;

I got the values below.

         adcCalInt0V2 = 1311  

        adcCalInt0V9 = 5916  

        adcTemp25 = 5793

Internal Reference: MAX_CODE / ((v09 – v02)/0.7)  using 14-bit resoution

        Calculated Internal Reference = 1.2453 V

From datasheet cc2540,

        Internal Reference = 1.24V  Temperature coefficient: 4.5 /1°C at 12-bit resolution.

        By calculation,  Temperature coefficient = 2.7259 mV/1°C

I used my thermometer to verify the data. At 14-bit resolution,

        at my thermometer reading 24.0 °C, adcMyTemp240 = 5566  

        at my thermometer reading 22.9 °C, adcMyTemp229 = 5548

        Calculated Temperature coefficient = 2.4874 mV/1°C  that matches datasheet values.

Based on the Temperature coefficient from datasheet,

        if adcMyTemp250 = 5793

        By calculation, my temperature = 36.6 °C not equal to 25 °C

        Based on the adc output values adcMyTemp240 and adcMyTemp229 , adc output at 25 °C is expected to be around 55XX.

Why does the calibrated temperature value at 25°C off a lot from the actual value ?

I tried 1-point or 2-point calibrations to complete my temperature conversion; but the results are incorrect in both cases.

How can we eliminate temperature calibration in production? Can Ti provide an additional data point for 2-point temperature calibration?

Best Regards,

CK Lui

  • Hello Cheuk,

    I made a request for a 2-point calibration design note similar to the 1-point about a month ago.  There has been no reply.

    It truly is a shame that the temperature sensor is of such low quality.  It could have reduced design size for temperature sensing applications.  Unless there is a threat of competition with the temperature sensor line, I really think the internal sensor should be improved.

    The data sheet does give the initial accuracy of +/-10 deg C, so your calculated temperature is close.  There are similar post in the forum where others simply gave up on trying to use the sensor in their application.  Unless the 2-point calibration works, the sensor is can only act as a basic temperature switch.

    Thanks,

  • Thank you for your input.

  • CK

    Try this app note as a reference. You might be affected by some sort of offset while measuring the temperature using the temp sensor at 25C. BTW can you try it doing this measurement on another board?

    http://www.ti.com/litv/pdf/swra101a

  • CK

    Another thing I'd like to mention, the chip temperature might be different from what the ambient temperature. Say if the radio is continuously running, this would lead to the chip internally heating up, as compared to what the room temperature is.

    I agree, from your experiment that the reading should be close to or in the 55xx range for 14 bit ADC. That's why I mentioned the possibility of the chip being heated by other activities in the chip or incorrect measurement.

    Also, be helpful if you could take the two points further apart, like 25C and 45C.

    Looking at your ADC readouts, for 14bit ADC, 1.24V internal reference, the different ADC voltages would be
    25C = 0.876V
    24C = 0.842V
    22.9C = 0.839V

    Now the temp coefficient is 2.72mV/1C (you calculated). The difference between the 22.9C and 24C read out is roughly 3mV which is close to the data sheet number. That is why I think the 25C measurement is flawed.