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.

TMS320F280049: Internal temperature sensor with ADC internal reference?

Part Number: TMS320F280049

Hi Champs,

The F28004x datasheet shows the characteristic of internal temperature sensor as following table. In this table, the test condition is only external reference.

Does it mean that internal ADC reference can not be used for sensing an internal temperature? 

Moreover, the ADC_getTemperatureC() function in library also has a following comment that only external reference mode is supported for the temperature sensor. Is that correct?

Thanks,

Steve

  • Hi Steve,

    You can use the temperature sensor with INTREF; just pass in a 'vref' value equivalent to the INTREF range you are using (3.3 or 2.5). 

    Since the test conditions use external reference, which has lower gain error, you can expect reduced performance with internal reference.  Sensitivity is about 4mV / deg. C, so an additional 40LSBs of gain error @ 3.3V VREF = 32mV = about 8 deg. C of additional error at the temperature extremes (this is probably pretty pessimistic).  

  • Devin,

    Thanks for your answer.

    I've one more question.

    ADC_getTemperatureC() function only refer to an external reference offset(ADC_EXT_REF_TSOFFSET) and a slope value(ADC_EXT_REF_TSSLOPE). You commented that just 'vref' value should be set with the INTREF range without any changing of ADC_getTemperatureC() function for internal ADC reference.

    In the adc.h file, there are four defines for temperature sensor. I think two defines (ADC_INT_REF_TSSLOPE & ADC_INT_REF_TSOFFSET) are not used in any functions and conditions. 

    Is that right?

    #define ADC_INT_REF_TSSLOPE  (*(int16_t *)0x705BD)
    #define ADC_INT_REF_TSOFFSET (*(int16_t *)0x705BE)
    #define ADC_EXT_REF_TSSLOPE  (*(int16_t *)0x705BF)
    #define ADC_EXT_REF_TSOFFSET (*(int16_t *)0x705C0)

  • Hi Steve,

    I'll investigate if these are just placeholder values or if we indeed have additional separate calibration for INTREF that could be supported with updated SW.    

    This will probably take a few days.  

  • Hi Steve,

    It looks like there are not additional valid calibration values for internal reference.  If you want to use temperature senor with internal reference, use the external reference values and expect somewhat increased error as discussed in the thread above.