nRF52810 board will not start on its own. It needs the RTT Viewer to be connected, then it will start and run.

nRF52810 board will not start on its own. It needs the RTT Viewer to be connected, then it will start and run. It has run on its own before with this configuration:

CONFIG_CLOCK_CONTROL_NRF_K32SRC_RC=y

CONFIG_CLOCK_CONTROL_NRF_K32SRC_XTAL=y

CONFIG_SEGGER_RTT_MODE_NO_BLOCK_SKIP=n
Does anyone have any idea? I have struggled with this for a week now.

PS:
My schematic follows the reference schematics in the datasheet, which means the RESET line is floating. I am convinced this is not an issue because I have another board from Holyiot (beacon) with also floating reset. This board starts and run on its own just fine using the same firmware (pin assignments re-mapped, of course).

Regards,
  • nRF Connect SDK for VS Code v2.9.0/2.9.1 and Zephyr v3.7.99

  • Looks like the VDD on pin 32 has the wrong component value, should be 4.7uF but you have 100nF.

    I added a 4.7uF. Same result.

    Here is additional observation:

    I changed setup to power my board separate from the debugger. When the RTT viewer gets 'logically' connected (clicking on Connect on the dropdown of J-Link RTT Viewer app), my board starts and run OK. If I 'logically' disconnect the RTT Viewer, my board stops running. However, if on the other hand I physically disconnect the debugger, my board continuously run.

    Your thoughts? What is it about the debugger that makes this behavior in my board?

    I appreciate your answer.

  • After digging deeper into the code, not just my code but NCS (so deep that led to gpio_nrfx.c), I found that DCDC is not disabled! I relied on the datasheet saying the default is LDO, and menuconfig has SOC_DCDC_NRF52X = n. But the devicetree's default is DCDC. In the dts file,

    &reg {
        regulator-initial-mode = <NRF5X_REG_MODE_DCDC>;

    I override it in the overlay file,

    &reg {
        regulator-initial-mode = <NRF5X_REG_MODE_LDO>;
    My board starts on its own.

    Since my board is wired to run on LDO regulator, having the DCDC enabled caused the check for DCDC in gpio_nrfx.c to reset the board. main() is never reached so it looked like the board is not starting; it was actually resetting continuously. Somehow, connecting the RTT Viewer "corrected" the issue making my board run normally.
Related