This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

nRF51822 TEMP internal temperature sensor characteristic

I'm trying to use the internal temperature sensor of the nRF51 to know the die temperature. Its accuracy is specced as +/- 4 degC, even +/- 8 degC at the extremes. Does anyone know more properties of this uncertainty? Is it a fixed thing, that I can improve by calibrating an offset? Or is it noisy, something that I might filter out using multiple measurements?

Edit: See my own answer, the offset I measure is unusually large. Any thoughts where this might come from?

Parents
  • From this question, it seems that it is a pure offset:

    The error read on the TEMP peripheral should be pure offset error. You can calibrate the temperature value in software, i.e. if you know the temperature in your room, just add or subtract from the measured value to get the correct value.

    However, be aware that the die temperature is in general not equal to the ambient temperature.

    I did some measurements comparing the internal temperature sensor value with temperature measured by a dedicated temperature sensor (TMP112) on the same PCB, in a controlled environment. Because the application makes very little use of the CPU, I do not expect that it is significantly hotter than the environment. Plot of temperature and temperature error.

    This confirms previously made statements that the noise is low, and the accuracy is mainly distorted by an offset. To my surprise however, this offset is around 13 degrees! When corrected for the average, the accuracy is nicely within the specced +/-4 degrees. Could this large offset have something to do with having to set the temperature offset register to 0?

Reply
  • From this question, it seems that it is a pure offset:

    The error read on the TEMP peripheral should be pure offset error. You can calibrate the temperature value in software, i.e. if you know the temperature in your room, just add or subtract from the measured value to get the correct value.

    However, be aware that the die temperature is in general not equal to the ambient temperature.

    I did some measurements comparing the internal temperature sensor value with temperature measured by a dedicated temperature sensor (TMP112) on the same PCB, in a controlled environment. Because the application makes very little use of the CPU, I do not expect that it is significantly hotter than the environment. Plot of temperature and temperature error.

    This confirms previously made statements that the noise is low, and the accuracy is mainly distorted by an offset. To my surprise however, this offset is around 13 degrees! When corrected for the average, the accuracy is nicely within the specced +/-4 degrees. Could this large offset have something to do with having to set the temperature offset register to 0?

Children
Related