nRF52805 LFRC frequency tolerance exceeding ±2% on multiple devices

We are operating the 32.768 kHz low-frequency clock of the nRF52805 using the internal RC oscillator (LFRC).

We measured the LFCLK frequency of 100 devices, and the observed frequency tolerance relative to 32.768 kHz ranged from −0.2% to +2.7%.
As a result, some devices exceeded the ±2% frequency tolerance stated in the datasheet.

This result seems worse than expected based on the datasheet specification.

  • Is this level of frequency tolerance considered normal behavior for the LFRC on the nRF52805?
  • Could this be related to firmware configuration, such as LFRC calibration settings (RC_CTIV / TEMP_CTIV), SoftDevice usage, or clock initialization?
  • Are there any known conditions (temperature, startup behavior, calibration timing, etc.) that could cause the LFRC frequency tolerance to exceed ±2%?

For reference:

  • LFCLK source: LFRC (internal RC oscillator)
  • Measurements were performed under identical conditions for all devices.
  • SoftDevice is used, with LFRC calibration enabled.

Any guidance on expected LFRC frequency tolerance, recommended settings, or additional checks would be greatly appreciated.

Thank you.

Parents
  • Hi

    You're correct, the frequency tolerance should be  ±2% for the LF RC oscillator. What's interesting here is that the range seem to be skewed a bit, since it's barely off on the negative side, and slightly above the expected tolerance on the positive side. If you don't do calibration often enough, then that can be a cause for this to occur. What have you set the calibration settings to in your project? What SDK version and SoftDevice version are you using for development?

    Best regards,

    Simon

Reply
  • Hi

    You're correct, the frequency tolerance should be  ±2% for the LF RC oscillator. What's interesting here is that the range seem to be skewed a bit, since it's barely off on the negative side, and slightly above the expected tolerance on the positive side. If you don't do calibration often enough, then that can be a cause for this to occur. What have you set the calibration settings to in your project? What SDK version and SoftDevice version are you using for development?

    Best regards,

    Simon

Children
  • Hi Simon,

     

    Thank you for your response.

     

    Our development environment and current LFRC calibration settings are as follows:

     

    SDK: nRF5 SDK 17.1.0 

    SoftDevice: s112_nrf52_7.3.0_softdevice 

     

    sdk_config.h:

     

    #define NRFX_CLOCK_CONFIG_LF_SRC              0   // RC

    #define CLOCK_CONFIG_LF_SRC                   0   // RC

    #define NRF_SDH_CLOCK_LF_SRC                  0   // NRF_CLOCK_LF_SRC_RC

    #define NRF_SDH_CLOCK_LF_RC_CTIV              16

    #define NRF_SDH_CLOCK_LF_RC_TEMP_CTIV          2

    #define NRF_SDH_CLOCK_LF_ACCURACY              1   // NRF_CLOCK_LF_ACCURACY_500_PPM

     

    Could you please let us know if there are any issues with this configuration, or if you would recommend different calibration settings to ensure the LFRC frequency stays within the ±2% specification?

     

    Best regards,

Related