I have a custom board using the nRF52832 QFAA with SDK 15.3.0 and SoftDevice132 6.1.1. I'm also using an external 32kHz crystal for the softdevice clock. There are two hardware versions of this board I'm working with: one works fine my code runs and I can connect over bluetooth. The other version hangs within nrf_sdh_enable_request() in file nrf_sdm.h at this line:
SVCALL(SD_SOFTDEVICE_ENABLE, uint32_t, sd_softdevice_enable(nrf_clock_lf_cfg_t const * p_clock_lf_cfg, nrf_fault_handler_t fault_handler));
In addition, the board seemed to be drawing 3 mA more than normal and I was not able to see any debug output in JLink Viewer until I started tweaking the softdevice clock configurations in sdk_config.h, specifically changing NRF_SDH_CLOCK_LF_RC_TEMP_CTIV to 2 (from 0). Then I was able to also see the error output on line nrf_sdh_enable_request() and the power dropped to 100s of uA like it should, but it still hangs when enabling the softdevice.
On the hardware that works, I have a 3.3V regulator (LTC3335) in front of my regulated bench power supply. The power draw is expected and I don't see any errors.
On the hardware that doesn't work, I'm powering the hardware with 3.3V directly from the bench supply, nothing else is connected to the nRF, other than power, the 32kHz xtal, and the debugger. I want to use this configuration for optimal power savings.
It seems this has something to do with the 32kHz xtal and it's configuration, but I'm at a loss since there isn't any other hardware debugging I'm able to do.
I've also made sure the RAM and flash start addresses are correct. And I've included NO_VTOR_CONFIG in my preprocessor definitions.
Any ideas?