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.

Problem getting a decent temperature reading from a CC430F5137

Other Parts Discussed in Thread: CC430F5137

I'm getting very high temperature reading using the ADC12 from a CC430F5137:

Raw uncalibrated reading is always around 0x08F2 using the internal 1.5V reference; using the chart this is around 40oC. My ambietn temperature is ~18oC with the chip exterior at 19.4oC

The 30oC degree 1.5V calibration value in infoA is 2240 (0x08C0) and the 85oC degree 1.5V calibration value is 2618 (0x0A3A). Using the equation in 1.13.4.3 in the user guide I get a temp reading of 37.13oC.  My input voltage reading being taken at the same time is within 60mV of the expected reading.

I know there was a problem with calibration values on the F5137 rev E is this the case with the Rev D as well. If from which revision was this fixed?

  • Helgard Van Rensburg said:
    The 30oC degree 1.5V calibration value in infoA is 2240 (0x08C0) and the 85oC degree 1.5V calibration value is 2618 (0x0A3A).

    So the gain is 6.8727 per degree. So if you say you get 37.13°, you're reading 0x8f1 from the ADC?
    Or do you read 088f, which would be 22.87°C.

    And don't forget, it is not ambient temperature, it is internal junction temperature. During calibration process, ambient temperature was equal to junction temperature (because the chip was put in a 30° ambient), but on free air, internal temperature due to power consumption and self-heating is above ambient.

    If as you say ambient is 18°, then a reading of 23° sounds reasonable. Less, if you switch the MSP on after some rest, more if you make heavy use of the other hardware.

  • No I was reading 0x81F, that is 37.

    I'm only running this MCU at 1MHz usually take reading after rest with the RF core off, so I was expecting something very near to the 19.4o I was reading with a Fluke temp meter.But I did find my problem (one of those that stare you in the face for 2 hours); my sample and hold time was <30us. After making the correction I'm getting a cool 19.2o.

  • Helgard Van Rensburg said:
    No I was reading 0x81F, that is 37.

    0x8F1 is 37°. 0x081f would have been ~7°C :)

    Helgard Van Rensburg said:
    my sample and hold time was <30us. After making the correction I'm getting a cool 19.2o.

    Strange. A too short sample time should result in a too-low reading, not a too-high one (the high inrush current to the sampling capacitor breaks down the sensor voltage).

    But maybe you don't have a long-enough time for letting the reference voltage settle. teh internal voltage reference is also switched on automatically (if not already on) the moment the temperature sensor is selected as signal source. And switched off again after the conversion. So if it was not on before, it requires soem time to settle or it will be too low when the conversion begins.
    This would indeed result in a reading that is too high. Enlarging the samplign time also enlarged the settling time for the reference, so I don't wonder it fixed the issue.

     

**Attention** This is a public forum