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

we got errror, SOFTDEVICE: ASSERTION FAILED in SDK_15.3.0 on our custom hardware based on nRF52832.

Our custom board uses internal RC clock source and I tried to build original sample app, "ble_app_pwr_profiling" in SDK 15.3.0 using attached sdk_config.h modified only with LF Clock setted to RC source. then after we go "for loop" in the main() and enter the idle_state_handle(), we got the error, "SOFTDEVICE: ASSERTION FAILED" in the app_error_fault_handler(). I attached the debug capture file below with our sdk_config.h and our schematic. please how can I why this problem occurred?

our sdk_config.h:

sdk_config.h

our schematic is as followings:

Parents
  • Hi.

    Have you made any modifications to the code?

    Can you check which value you are using for the p_clock_lf_cfg argument of the sd_softdevice_enable?

    Best regards,

    Andreas

  • I have to use internal rc osillator so i modified belows definition macro in sdk_config.h.

    //==========================================================

    // <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 //hong
    #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 //hong
    #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 //hong
    #endif

    // <o> NRF_SDH_CLOCK_LF_ACCURACY - External clock accuracy used in the LL to compute timing.

    // <0=> NRF_CLOCK_LF_ACCURACY_250_PPM
    // <1=> NRF_CLOCK_LF_ACCURACY_500_PPM
    // <2=> NRF_CLOCK_LF_ACCURACY_150_PPM
    // <3=> NRF_CLOCK_LF_ACCURACY_100_PPM
    // <4=> NRF_CLOCK_LF_ACCURACY_75_PPM
    // <5=> NRF_CLOCK_LF_ACCURACY_50_PPM
    // <6=> NRF_CLOCK_LF_ACCURACY_30_PPM
    // <7=> NRF_CLOCK_LF_ACCURACY_20_PPM
    // <8=> NRF_CLOCK_LF_ACCURACY_10_PPM
    // <9=> NRF_CLOCK_LF_ACCURACY_5_PPM
    // <10=> NRF_CLOCK_LF_ACCURACY_2_PPM
    // <11=> NRF_CLOCK_LF_ACCURACY_1_PPM

    #ifndef NRF_SDH_CLOCK_LF_ACCURACY
    #define NRF_SDH_CLOCK_LF_ACCURACY 1 //hong
    #endif

    As I said before, I modified from the original to my definitions in sdk_config.h.

    and when I didn't use SDH as I used the project, "peripheral\blinky", it worked well without fail-error.

  • Hi.

    Looks like there was something missing in my previous reply.

    Now that you have set NRF_CLOCK_LF_ACCURACY_500_PPM, do you still get the assert?

    Jaehong Park said:
    and when I didn't use SDH as I used the project, "peripheral\blinky", it worked well without fail-error.

     You will not get a SoftDevice assertion when using projects that do not use the SoftDevice.

    Best regards,

    Andreas

  • Enen though I have have set NRF_CLOCK_LF_ACCURACY_500_PPM, I still got the assert right after program counter on the ses debugger started at first and configured softdevice_enable() with above RC settings in the sdk_config.h and entered the for loop in the main(). The point is what I said is that I got the assert above right after we entered the for loop in the main function after it looks like I configured soft_device well using above settings.

  • In addition, please check the code in line in the softdevice which points the value of pc on debug  captured shot above. 

  • In addithion, I also setted "CLOCK_CONFIG_LF_SRC 0" but I still got the assert error from soft device after entering sd_app_evt_wait(). please advice us as soon as possible because of our ealry schedule.

  • we refered to "53.4 Schenmatic CIAA WLCSP with internal LDO setup" in the nRF52832 product spec document as our custom board,s schematic. please also check about our hw design attached in above question.

Reply Children
Related