Hello,
I'm a newbie here.
I have a BL652-SA module from Liard Connectivity. It has a nrf52832 with a 32 MHz crystal on board but no 32,768 kHz crystal, so I have to use the internal RC oszillator as LFCLK.
I use SDK 16.0.0 and SEGGER Embedded Studio for ARM 4.50.
For the beginning I tried to run the ble_app_blinky example from the SDK (pca10040 with s132). Therefor I set the softdevice s132 hexfile as "Additional Load File[0]" in the common solution options and changed the following defines in the sdk_config.h:
// <e> NRF_CLOCK_ENABLED - nrf_drv_clock - CLOCK peripheral driver - legacy layer //========================================================== #ifndef NRF_CLOCK_ENABLED #define NRF_CLOCK_ENABLED 1 #endif // <o> CLOCK_CONFIG_LF_SRC - LF Clock Source // <0=> RC // <1=> XTAL // <2=> Synth // <131073=> External Low Swing // <196609=> External Full Swing #ifndef CLOCK_CONFIG_LF_SRC #define CLOCK_CONFIG_LF_SRC 0 #endif // <q> CLOCK_CONFIG_LF_CAL_ENABLED - Calibration enable for LF Clock Source #ifndef CLOCK_CONFIG_LF_CAL_ENABLED #define CLOCK_CONFIG_LF_CAL_ENABLED 1 #endif ... //========================================================== // <h> Clock - SoftDevice clock configuration //========================================================== // <o> NRF_SDH_CLOCK_LF_SRC - SoftDevice clock source. // <0=> NRF_CLOCK_LF_SRC_RC // <1=> NRF_CLOCK_LF_SRC_XTAL // <2=> NRF_CLOCK_LF_SRC_SYNTH #ifndef NRF_SDH_CLOCK_LF_SRC #define NRF_SDH_CLOCK_LF_SRC 0 #endif // <o> NRF_SDH_CLOCK_LF_RC_CTIV - SoftDevice calibration timer interval. #ifndef NRF_SDH_CLOCK_LF_RC_CTIV #define NRF_SDH_CLOCK_LF_RC_CTIV 16 #endif // <o> NRF_SDH_CLOCK_LF_RC_TEMP_CTIV - SoftDevice calibration timer interval under constant temperature. // <i> How often (in number of calibration intervals) the RC oscillator shall be calibrated // <i> if the temperature has not changed. #ifndef NRF_SDH_CLOCK_LF_RC_TEMP_CTIV #define NRF_SDH_CLOCK_LF_RC_TEMP_CTIV 2 #endif // <o> NRF_SDH_CLOCK_LF_ACCURACY - External clock accuracy used in the LL to compute timing. // <0=> NRF_CLOCK_LF_ACCURACY_250_PPM // <1=> NRF_CLOCK_LF_ACCURACY_500_PPM // <2=> NRF_CLOCK_LF_ACCURACY_150_PPM // <3=> NRF_CLOCK_LF_ACCURACY_100_PPM // <4=> NRF_CLOCK_LF_ACCURACY_75_PPM // <5=> NRF_CLOCK_LF_ACCURACY_50_PPM // <6=> NRF_CLOCK_LF_ACCURACY_30_PPM // <7=> NRF_CLOCK_LF_ACCURACY_20_PPM // <8=> NRF_CLOCK_LF_ACCURACY_10_PPM // <9=> NRF_CLOCK_LF_ACCURACY_5_PPM // <10=> NRF_CLOCK_LF_ACCURACY_2_PPM // <11=> NRF_CLOCK_LF_ACCURACY_1_PPM #ifndef NRF_SDH_CLOCK_LF_ACCURACY #define NRF_SDH_CLOCK_LF_ACCURACY 0 #endif
But that doesn't work. While debugging the code, I saw that the sd_softdevice_enable(...) function doesn't return.
When I use the original settings in the sdk_config.h file, it doesn't stuck there but I couldn't find the device with the nRF Connect App on my smartphone. I think that the missing 32.768 kHz crystal is the reason for that, right?
I spend hours on the internet searching for similar problems but I only found old stuff for former SDK versions.
Can anybody help me?
Thanks,
Alex