Custom BMD-350 program with J-Link not working after reset

Hello everyone,

I am working with a custom board, containing a BMD-350 module and I am trying to write on it a firmware developed thorugh J-Link Segger.

Everything works fine, but if I reset the device the firmware is lost, and I need to use the J-link again to restart.

I am a beginner, so I do not know where is the problem and how to find a workaround: any suggestion would be really appreciated!

The firmware is developed in IAR Workbench 9.10.1 and was tested on standard developement board with BMD-350, worked fine and did not give the same problem I am experiencing now.

  • Hi

    I think the BMD-350, as most other third party modules does not have an external LF crystal mounted on it by default, as this is optional. However, the nRF SDK example projects are all configured to use this external LF crystal as it will yield the best results in terms of accuracy and power consumption. So if you don't have this crystal mounted you need to configure your project to use the internal RC oscillator instead. How to do so depends on what SDK you're using, and whether you use the SoftDevice/SoftDevice Controller or not in your project. In debug mode (default before a power cycle of a board) applications can run without this configuration, explaining that it works before you reset it.

    Best regards,

    Simon

  • Hi Simon,

    thank you for answering! I am using SDK 17.1.0 and I am using the softdevice in my project: I will look for a way to program internal RC oscillator and see if everything works,

    Your insight was appreciated

  • Then the way to enable the internal RC oscillator will be to edit the following defines in the sdk_config.h file:

    #define NRF_SDH_CLOCK_LF_SRC 0

    #define NRF_SDH_CLOCK_LF_RC_CTIV 16

    #define NRF_SDH_CLOCK_LF_RC_TEMP_CTIV 2

    #define NRF_SDH_CLOCK_LF_ACCURACY 1

    Best regards,

    Simon

Related