# 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

• ### GPIO pin errors

Posted 2017-10-20 02:37:56 by micallef25
• ### How to build continuous integration and delivery process for embedded SW development

Posted 2017-10-03 11:01:29 by Yaniv Nis
• ### Multiple channels in RTT

Posted 2017-09-29 11:51:52 by Krzysztof Zaraska
• ### 6 Things to Know about Bluetooth Beacons

Posted 2017-09-22 08:27:00 by Rose Martin
• ### Creating a Keil project for a Bluetooth Mesh example (Updated for 0.10.0)

Posted 2017-09-19 12:08:11 by Kristian Skordal

## Recent questions

• ### DLE in S112

Posted 2017-10-20 07:02:25 by Stayhungry
• ### How can I create repeater with nrf52

Posted 2017-10-20 06:20:34 by MainOFF

Posted 2017-10-20 05:07:03 by MNIL
• ### Transfer large data 2 board nrf52840

Posted 2017-10-20 04:54:54 by MainOFF
• ### Nordic Glucose crashed after entering wrong passkey

Posted 2017-10-20 04:44:34 by Daniel