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

What changes are needed in SDK V15 sdk_config.h so nRF52832 can run on internal RC oscillator

What changes are needed in SDK V15 sdk_config.h so nRF52832 can run on internal RC oscillator?

I am using the BLE UART example, nRF52832 with Soft device s132_nrf52_6.0.0, nRF5_SDK_15.0.0_a53641a

Any help appreciated

  • I have been testing three (3) custom boards with  the nRF52832 for a while.

    (Rigado BMD-300 Module) with internal RC oscillator

    nRF5_SDK_13.0.0_04a0bfd

    s132_nrf52_4.0.5

    I works reliably, connects every time, custom profile with 3 services.

    I recently programmed the Nordic BLE UART, and it seems to work great at 115200 baud.

    I was trying to upgrade to

    s132_nrf52_6.1.0 and nRF5_SDK_15.0.0_a53641a and could not figure out all the changes needed for the sdk_config.h file.

    But...

    I read a few cases that say the BLE radio will not work with RC Oscillator

    And then I read others saying it will work just fine, since the BLE Stack continuously corrects the frequency

    So what am I missing?

    Any help appreciated

  • Hi Gerhard,

    The BLE stack can use either an external crystal or the internal RC oscilator as the LF clock source. In case of the latter the SoftDevice will periodically calibrate it to be within the frequency tolerance stated in the BLE specification. 

    you need to perform the following changes under the SoftDevice clock configuration in sdk_config in order for the nRF52832 to use the internal RC in SDK 15.0.0

    //==========================================================
    
    // <h> Clock - SoftDevice clock configuration
    
    //==========================================================
    // <o> NRF_SDH_CLOCK_LF_SRC  - SoftDevice clock source.
     
    // <0=> NRF_CLOCK_LF_SRC_RC 
    // <1=> NRF_CLOCK_LF_SRC_XTAL 
    // <2=> NRF_CLOCK_LF_SRC_SYNTH 
    
    #ifndef NRF_SDH_CLOCK_LF_SRC
    #define NRF_SDH_CLOCK_LF_SRC 0
    #endif
    
    // <o> NRF_SDH_CLOCK_LF_RC_CTIV - SoftDevice calibration timer interval. 
    #ifndef NRF_SDH_CLOCK_LF_RC_CTIV
    #define NRF_SDH_CLOCK_LF_RC_CTIV 16
    #endif
    
    // <o> NRF_SDH_CLOCK_LF_RC_TEMP_CTIV - SoftDevice calibration timer interval under constant temperature. 
    // <i> How often (in number of calibration intervals) the RC oscillator shall be calibrated
    // <i>  if the temperature has not changed.
    
    #ifndef NRF_SDH_CLOCK_LF_RC_TEMP_CTIV
    #define NRF_SDH_CLOCK_LF_RC_TEMP_CTIV 2
    #endif

    Best regards

    Bjørn 

Related