# softdevice and low frequency clock source

Hello,

I've noticed the following sentence in s132_nrf52_3.x.x release notes:

"Synthesized low frequency clock source is not tested or intended for use with the BLE stack."

Could you clarify, does this means that correct low frequency clock settings are: - NRF_CLOCK_LF_SRC_RC - NRF_CLOCK_LF_SRC_XTAL

And that NRF_CLOCK_LF_SRC_SYNTH should not be used ?

Thanks

edit retag close delete

Sort by » oldest newest most voted

TL;DR don't use it for softdevice applications, it's not tested because there's never a need to use it, there are always just as good, lower power options available.

Yes that's what it means, don't use it for BLE applications. It's not anything to do with HFCLK going down or losing softdevice interrupts, if you enable it it continues to run even though app event waits and other wait states as long as the LFCLK is required however Nordic doesn't test it for use with the softdevice because there's basically no practical point in using it. It's a guaranteed high power drain because the HFCLK is always on as long as the LFCLK source is needed. Since the softdevice has, built-in, all the machinery necessary to keep the very low power RC LFCLK calibrated for inaccuracy and drift at basically no cost (the HFCLK ends up being kept on fractionally longer every now and again to do the calbration) synthesized is just not a mode which anyone needs to use when they are using the softdevice.

It may be a handy mode to use when you are NOT using the softdevice and have a standalone application which needs the LFCLK and you don't have a 32kHz crystal. In that case if you don't want to write all the RC calibration code, the synthesized mode works just fine to give you an expensive (power wise) LFCLK. You'd just enable it directly in the registers at that point.

more

Possibly helpful info from my memory and quick searches: - calling sd_app_evt_wait shuts down the CPU and HFCLK. - calling sd_app_evt_wait does NOT shut down LFCLK by default, unless you set NRF_CLOCK->TASKS_LFCLKSTOP = 1; see here LFCLK is used by timers to wake the firmware, which is why the SoftDevice doesn't power them off by default. IIRC, the SoftDevice may also need an LFCLK to function properly, and use it behind the scenes. They may be warning about using the synthesized LFCLK with the SoftDevice because a lot of what the softDevice does is driven by interrupts that may come from an LFCLK timer, and if you synthesize LFCLK, then you'll lose it when HFCLK goes down...

more

[hide preview]

## Recent blog posts

• ### ble_app_hrs_freertos running in Atollic TrueSTUDIO

Posted 2017-08-14 02:55:30 by jmag999
• ### OLED display support for nRF52832 (SSD1306, Adafruit GFX)

Posted 2017-08-11 08:21:31 by Mahesh Venkitachalam
• ### I tried 5 different debugger IDEs for nRF52 and STM32. Here are my results.

Posted 2017-08-09 10:56:19 by Jonathan
• ### Things you should know about Bluetooth mesh

Posted 2017-08-07 12:37:22 by Eirik Midttun
• ### Support pairing on NUS profile for Central and Peripheral

Posted 2017-08-01 08:42:41 by Eugene Yu

## Recent questions

• ### getting incorrect output using the timer_example_timer_mode example

Posted 2017-08-16 23:21:55 by Nikhil
• ### Sampo S1 simple "read, notify" protocol/bytestream example

Posted 2017-08-16 21:33:31 by Christian
• ### How to get softdevice state in my application

Posted 2017-08-16 20:54:24 by ypearson
• ### nRF Cloud Gateway Error connecting gateway

Posted 2017-08-16 20:05:14 by carlos carrizosa
• ### nrf52 GPIO sink & source current

Posted 2017-08-16 19:04:24 by dingari