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

NRF_SDH_CLOCK_LF_SRC Changes Break app and DFU in 15.3 (from 15.2)

I've finally worked around some funky bugs that only appeared after updating to 15.3. In my app, I had to change my clock source to RC or SYNTH to make it work (was hanging on enabling the softdevice). My XTAL setting worked fine in 15.2. When I got to working with DFU, I had some issues and tried everything mentioned on here (mergehex to fix the UICR/MBR bug, fixing the Makefile, etc.), but still couldn't get the DFUTarg device to appear. Loaded the debug version of the DFU module and stepped through it to find it failed to execute past the command to start the softdevice. It dawned on that this was probably the same issue that prevented my app from executing. After changing the clock source, everything worked as expected.

Now my question: What changed that makes the XTAL clock setting work fine in 15.2, but not 15.3? I'm using the DVK-BL652-SA device from Laird. Is there any issue using the SYNTH clock setting if power consumption isn't really a concern?

Parents
  • Hi

    This could be because you've not included the nrf_drv_clock.c in your project, as that file is used to define NRF_CLOCK_LFCLK_XTAL as CLOCK_LFCLKSRC_SRC_XTAL in SDK v.15.3, while SDK v.15.2 uses nrfx_clock.c instead. If that's not it, I'll need some more information about your application. Is it based on one of the SDK v.15.2 examples, and if so which one?

    If current consumption isn't an issue, there shouldn't be any problem using the LFSYNTH. This way, the clock will have the accuracy of the HFCLK you're using, so keep in mind that the external HF clock has way better accuracy than the internal one.

    Best regards,

    Simon

  • I added nrf_drv_clock to my project, enabled the clock module in sdk_config, set the appropriate IRQ priorities based on other projects that use the module, added the necessary includes in the preprocessor common configuration, but it still hangs on enabling the softdevice.  As soon as I change the clock source to SYNTH, it works perfectly.  If I run it in my 15.2 sdk location, my XTAL setting works fine.

Reply
  • I added nrf_drv_clock to my project, enabled the clock module in sdk_config, set the appropriate IRQ priorities based on other projects that use the module, added the necessary includes in the preprocessor common configuration, but it still hangs on enabling the softdevice.  As soon as I change the clock source to SYNTH, it works perfectly.  If I run it in my 15.2 sdk location, my XTAL setting works fine.

Children
No Data
Related