nRF52832, 6 seconds (or so) delay in start when moving from DK to custom board.

I have an application that runs well on nRF52DK.
It is like peripheral uart. I only use Tx/Rx and one LED. With OTA. All works as intended.
I use NVS for parameters but nothing advanced extra.
It starts without any noticeable delay as it should.
I use SDK v2.9.0.

When I moved from nRF52DK to a small module I get long delays when starting, 6 seconds or more. It do start eventually and then it works as it should.
It have 10 s watchdog timeout.

This is just a small module not the PCB that it later will be mounted on. Nothing there to interfere.
Only one pin with a LED is connected. The others are not connected to anything (except 3V and GND). Pin reset is disabled. The module has nothing connected to the rest pin.


The differences I can se is that the small module has no 32 kHz crystal and it has chip version rev 2 wile nRF52DK has rev 3.

I have tried to choose the synthesized 32kHz clock. When reading out from memory settings with nrfjprog it seems like this worked. Though that is when the fw already runs...

On the nRF52DK the 32 kHz oscillator runs, I can see that with oscilloscope. I did not expect that.

Where should I search for the error?
In mcuboot configuration?
In 32 kHz oscillator configuration?

Edit:
Correction. After proper re-flashing of DK the 32 kHz oscillator do not run. So that is is not a difference.

Parents
  • Hi Mikael,
    Assuming that the SYNTH is working well (did not understand if that settings reduces the start up delay from 6s?) let us focus on internal RC 32KHz clock.

    It seems like you know what you are doing and most likely have put the right configs. But the behavior you see is mostly seen either due to hardware issues or mismatch between hardware and software configs. So ill try to repeat some things that you mostly already know.

    The settings for internal RC you need this in your prj.conf

    CONFIG_CLOCK_CONTROL_NRF_K32SRC_RC=y

    Make sure that this is also reflected in mcuboot/prj.conf

    Internal RC LFCLK settings comes with calibration, so make sure that this calibration is not happening too frequent on your device, chose something like below and try to fine tune it.

    CONFIG_CLOCK_CONTROL_NRF_CALIBRATION=y
    CONFIG_CLOCK_CONTROL_NRF_CALIBRATION_PERIOD=16
    CONFIG_CLOCK_CONTROL_NRF_CALIBRATION_TEMP_DIFF=2
    CONFIG_CLOCK_CONTROL_NRF_CALIBRATION_MAX_SKIP=1

  • Yes, thank you.

    I added a /sysbuild/mcuboot.conf file with "CONFIG_CLOCK_CONTROL_NRF_K32SRC_RC=y" and now it starts as it should :-)
    It also works with "CONFIG_CLOCK_CONTROL_NRF_K32SRC_SYNTH=y".

Reply Children
No Data
Related