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

Questions on internal temperature module in nrf52832

I have a number of (probably naive) questions regarding the internal temperature module on the nrf52832.

1) Regarding the FICR values for temperature. Are these programmed on an individual basis in the factory? How do they get programmed?

2) If the FICR values are different than their defaults, will the default values in the TEMP module reflect the programmed values in FICR? Does firmware need to copy the values in FICR to the TEMP module? I am referring to the slope, y-intercept and endpoint temperature values.

3) Does the TEMP module use the values programmed in the y-intercept, slope and endpoint registers or is it up to firmware to use these values?

Hopefully these questions make sense. Thanks!

Will

Parents
  • Hi Will,

    1) Yes, Each chip is calibrated individually on some properties and the temperature module comes under this category. Based on its internal characteristics, the factory tools program the FICR->TEMP register to bring the module behave linear to the specifications. When the chip is powered up then these FICR values are loaded into TEMP registers.

    2) Due to a hardware bug, they are not automatically loaded into TEMP registers, this is documented in the ERRATA 66

    3) Not sure what you mean here, the TEMP module uses the values in the NRF_TEMP.registers and not the values in the FICR. Since the FICR values are not loaded automatically, due to the documented bug, appication should manually load these values. So in a way app is controlling whether to use those calibration values in FICR or not.

Reply
  • Hi Will,

    1) Yes, Each chip is calibrated individually on some properties and the temperature module comes under this category. Based on its internal characteristics, the factory tools program the FICR->TEMP register to bring the module behave linear to the specifications. When the chip is powered up then these FICR values are loaded into TEMP registers.

    2) Due to a hardware bug, they are not automatically loaded into TEMP registers, this is documented in the ERRATA 66

    3) Not sure what you mean here, the TEMP module uses the values in the NRF_TEMP.registers and not the values in the FICR. Since the FICR values are not loaded automatically, due to the documented bug, appication should manually load these values. So in a way app is controlling whether to use those calibration values in FICR or not.

Children
Related