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

lfclk initialization trouble when switching between ble and esb

Hello,

In my application I want to switch between using bluetooth low energy and enhanced shockburst (esb). I have tried using the timeslot api to run both of them together, but although it works very well, waiting for available timeslots severely limits the speed at which I can send data to my esb receiver.

To get around this problem I would like to switch between protocols - that is, I want to disable the BLE protocol before enabling the ESB protocol. The problem that I am running into is that I cannot initialize the low frequency clock. Because I have the SOFTDEVICE_PRESENT flag defined but the softdevice disabled, the nrf_drv_clock_init() function throws an error.

I know that the low frequency clock is not needed to use the ESB protocol, but I need my application timers to continue to run.

I have already seen this post, but I cannot remove the SOFTDEVICE_PRESENT flag because I need to use the softdevice when I am in bluetooth mode.

I have also seen this post. This does not fix my problem either. I am already handeling the HFCLK manually. My problem is with the LFCLK.

Is it not possible to switch between BLE and ESB while still using the application timers? Is the timeslot api my only option?

I am using SDK version 11.0.0.

thanks in advance for your thoughts!

Related