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

softdevice_fault_handler error

Hi,

I have developed a application on nRF51822 that is detect eBeacon and read some information in Beacon and Scan reponse frames.

There is about 200 systems deployed.

I have 4 boards, that is reset periodicly after ~7 seconds ! Only 4 boards at this time, are this problem...

Whean I use debug: 

softdevice_fault_handler() is called ... and the error handler call NVIC_SystemReset();

The  softdevice_fault_handler() function is called with id=1, pc=0xf764, info=0...

I don't use timeslot.

What is the problem ? ... ?

Regards,

Gaétan

EDIT: In my projet I have configured scan_window = scan_interval = BLE_GAP_SCAN_WINDOW_MAX = 0x4000

Now I have changed this value to 2500 and now there no reset !

What is the max value for scan_interval and scan_windows ?

I have indentified that, if there are a lot of ebeacon or smartphone near  the nrf51822, the Reset appear more frequently !

There is a maximum of bluetooth detection in a scan_windows ?

Softdevice S130 V2.001

Regards,

Parents Reply Children
  • Can you double check the settings of: NRF_CLOCK_LFCLKSRC, e.g:

    {.source = NRF_CLOCK_LF_SRC_XTAL, \
    .rc_ctiv = 0, \
    .rc_temp_ctiv = 0, \
    .xtal_accuracy = NRF_CLOCK_LF_XTAL_ACCURACY_20_PPM}

    Just want to make sure it is NRF_CLOCK_LF_SRC_XTAL.

    Are you doing any flash write or erase operations?

  • That's right

    #define NRF_CLOCK_LFCLKSRC {.source = NRF_CLOCK_LF_SRC_XTAL, \
    .rc_ctiv = 0, \
    .rc_temp_ctiv = 0, \
    .xtal_accuracy = NRF_CLOCK_LF_XTAL_ACCURACY_20_PPM}


    nrf_clock_lf_cfg_t clock_lf_cfg = NRF_CLOCK_LFCLKSRC;
    //clock_lf_cfg.xtal_accuracy = NRF_CLOCK_LF_XTAL_ACCURACY_250_PPM;

    // Initialize the SoftDevice handler module.
    SOFTDEVICE_HANDLER_INIT(&clock_lf_cfg, NULL);

    No Write or erase operation in flash.

  • Hi,

    I have tried to look for any known issues, but this is the first report we have seen of this. I am not sure if I have any good suggestions other than to for instance use the workaround you are already implying, such as reduce scan window and interval. For instance using 0x2500 for both, this is the same for all practical purposes.

    Best regards,
    Kenneth

  • Hi, Did you solve the problem? I face with the same issue "softdevice_fault_handler() function is called with id=1, pc=0xf764, info=0..." . my case is slightly different, not centeral but peripheral role.

    this error randomly occur.

    How can I fix this issue?

  • _maibi said:
    I face with the same issue "softdevice_fault_handler() function is called with id=1, pc=0xf764, info=0..." . my case is slightly different, not centeral but peripheral role.

     Have you tried my initial comment in your case:

    "Is it possible that you are disabling (blocking) interrupts somewhere in your code and/or have any interrupts with priority 0 and/or use timeslot api?

    It may also be related to accuracy of the LFCLK is out of specified tolerance.  It's important that the correct XTAL accuracy/ppm value for the crystal is set when enabling the SoftDevice."

Related