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.

MSP432 Launchpad Problems with Internal Temperature Example from DriverLib

Hello, 

I booted up the adc14_single_channel_temperature_sample example and the temperature constants retrieved from the SysCtl_getTempCalibrationConstant() are both evaluating to the same constant value(65535),causing the floating point arithmetic for temperature to evaluate to +Inf. This is the exact code from the DriverLib software. Is there something else that I need to do in addition to the given code or is my internal temperature sensor malfunctioning?

Thanks

  • Hi Bryce,

    I consulted with the team here and they said that actually the values are not populated for the ADC calibration in XMS pre-release silicon (which is what is available for MSP432 at the moment). The tag and length are there, but the values are blank. This is simply because it is a pre-release silicon sample that does not go through all of the same test/production flow as the final release production-quality silicon. I'm sorry for the inconvenience. When the device fully releases, the final production devices will have these calibration constants.

    If you have a temp chamber, for now you could generate your own calibration values by doing a couple of temp chamber tests to obtain the adc temp sensor reading at the two different temperatures.

    I hope that this helps!
    -Katie
  • I also spent a couple of hours debugging this same example. Although Katie provided an answer to the root problem, it’s safe to assume that most Launchpad owners to not have access to a calibrated temperature test chamber. If like me, you just wish to see the DriverLib software example running, you can use the following dummy numbers to approximate the correct temperature:
    cal30 = 4000;
    cal85 = 6000;
    or alternately, modify the calculation to the following:
    curADCResult = ADC14_getResult(ADC_MEM0);
    itempC = ((curADCResult-4000)*55)/(2000)+30;

    which should get within a few degrees of room temperature, allowing the example to run as intended.
    Jack

**Attention** This is a public forum