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

    Okay, I discussed this with a colleague, and one thing this could be due to is if the SoftDevice isn't enabled to calibrate the LFRC at all. It seems like you have programmed the SoftDevice, but we don't see any mention of where it is enabled in your application. Can you show us how SoftDevice is enabled on your end?

    Best regards,

    Simon

Reply
  • Hi

    Okay, I discussed this with a colleague, and one thing this could be due to is if the SoftDevice isn't enabled to calibrate the LFRC at all. It seems like you have programmed the SoftDevice, but we don't see any mention of where it is enabled in your application. Can you show us how SoftDevice is enabled on your end?

    Best regards,

    Simon

Children
  • Hi

    As you understood correctly, the SoftDevice is programmed into Flash, but it is used only for another feature.
    For the 32.768 kHz frequency output processing, the SoftDevice is not enabled from the application side.

    In this case, is it necessary to enable the SoftDevice for this operation?

    If enabling the SoftDevice is required, is my understanding correct that simply adding the following SoftDevice enable sequence is sufficient?

     

    err_code = nrf_sdh_enable_request();

    APP_ERROR_CHECK(err_code);

     

    // Configure the BLE stack using the default settings.

    // Fetch the start address of the application RAM.

    uint32_t ram_start = 0;

    err_code = nrf_sdh_ble_default_cfg_set(APP_BLE_CONN_CFG_TAG, &ram_start);

    APP_ERROR_CHECK(err_code);

     

    // Enable BLE stack.

    err_code = nrf_sdh_ble_enable(&ram_start);

    APP_ERROR_CHECK(err_code);

     

    If there are any additional steps required, please let us know.

Related