MSP430FR5969: Internal Temperature Sensor Always Reads 0x0FFF

Part Number: MSP430FR5969

I am working on a program that requires reading the internal temperature sensor of the MSP430. Development was done on the MSP430FR5969 Launchpad, and now on a custom-built dev board, but I'm having issues reading the temperature sensor on the custom board.

Everything works as expected on the launchpad and on the custom board except for the temp sensor. This includes multiple other ADC readings that have no issues. After every reading, the temp sensor value obtained from ADC memory is 0xFFF. I've tried many different configurations, all with the same result. I tried using the TI temp sensor example program also, and it works OK on the launchpad but has the same issue on the custom board.

The only notable hardware differences on the custom board are:

  • An external 2.5V reference connected to P1.0 and P1.1
  • An external HFXT 16MHz oscillator

This is the example code I used to troubleshoot the issue: tlv_ex3_calibrateTempSensor.c 

To try and resolve the issue, and to account for the hardware differences, I tried the following things:

  • Configured P1.0 and P1.1 for Vref input function
  • Tried with and without the MCLK configured for external HFXT oscillator
  • While debugging, I ensured ADC12TCMAP bit is 1, ADC12INCH is set to internal channel 30 (temp sensor channel), REFTCOFF & REFOUT bits are 0
  • Changed the ADC sampling timer to ensure sampling time is >30us
  • Tried using avcc, internal, internal buffered, and external for the ADC reference voltage source
  • Reworked the custom board with a new msp430fr5969 chip

Nothing that I tried had any effect on the temp sensor. The 'temp' variable in the example always had the value 0xFFF. Additionally, many of those exact same tests worked as expected on the launchpad.

I would love to hear if I am missing something in the software, or if there is some type of hardware configuration that would cause an issue like this.

**Attention** This is a public forum