Other Parts Discussed in Thread: MSPM0L1304, MSPM0L1306, , MSPM0G3507
Hi,
I'm working on an application for the MSPM0L1306/MSPM0L1304 that uses the internal temperature sensor. I have modified the adc12_single_conversion example to use the internal temperature sensor and 1.4V internal reference. With the development board in my desk, I'm getting values around 1900 and 1910, and the TEMP_SENSE_0
value for my chip is 407.
Plugging these values into the formulas from section 2.2.5 of the manual (SLAU847C, as revised on May 2023) I get the following:
VSAMPLE = (1.4 V / 4096) * (1900 - 0.5) = 649.2 mV
VTRIM = (1.4 V / 4096) * (407 - 0.5) = 138.9 mV
TSAMPLE = (649.2 mV - 138.9 mV) / (-1.75 mV / °C) + 30°C = -262 °C
This value is not realistic. However, when using the VTRIM from the example in the manual, I get much more plausible results:
TSAMPLE = (649.2 mV - 634.5 mV) / (-1.75 mV / °C) + 30°C = 22 °C
However, this ignores any per-chip factory calibration, and I'm reluctant to use such a fix in production. I am getting similar results for the other LP-MSPM0L1306.
Am I missing something, or is the TEMP_SENSE_0 value in this chip programmed incorrectly?
Here is the complete FACTORYREGION:
0x41C40000 00000000 1BB8202F 80C2DDD3 02180217 03020301 00001293 00040040 00000000
0x41C40020 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000197
0x41C40040 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
0x41C40060 00000000 00000000 00000000 00000000 00000000 00000000 00000000 CB6D8077
Software used: Ubuntu 22.04, Code Composer Studio 12.5.0.00007, ARM GCC 10.3-2021.10, MSPM0 SDK 1.20.00.05
Please find attached an archive of the modified example code, as well as the compiled binary.
Thank you,
Balint