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.

  • 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.

  • Hi.

    Could you create a new ticket for someone to look more closely at the schematics, so that we don't mix the questions here.

    Your configuration looks fine as far as I can see. The assert ID states that a event has overstayed its planned duration, which can happen during debugging.

    Can I ask why you are running this example?

    Best regards,

    Andreas

  • Thanks for your return reply. I have checked our schematic to be right internally again and I'm sorry. We have no reason for having to run this example. In fact, we have tested another example projects in ble_peripheral folder (using soft device S132) in SDK 15.03 and we got the same error with the same pc-value. I just want to say that we tested another example projects only with the modification of rc configuration you confirmed in early reply in segger embedded studio and jlink using swd and we want to see that our board are running well in normal without any our interruption, our modification and addition but we couldn't see that.This is urgent for us and we can not find the reason of the problem so we suspect any other reason including our schematic but we still can not find it. In addition, we have also tested the ble peripheral examples in SDK 14.xx and we got the same error with another pc value constant whenever we tested it. I want to say we got the same assert error with pc-value constant according to SDK versions. 

  • Hi.

    Can you try to flash this file to your board: test.hex

    Do you experience the assert with this file?

    Best regards,

    Andreas

Reply Children
Related