Blinky on custom nrf52840 board boots and debugs but does not blink the LED

We have a project that we're moving from a Fanstel BC840 module to a bare chip (CoB) nrf52840-QIAAD0.

Here's what we can do:

  • We can flash the chip successfully but our program isn't advertising
  • When we hook it up to the power profiling kit, we see that it's not running correctly, compared to how it runs on the nrf52840-DK
  • Once we turn on RTT logging, our program immediately begins running but we still don't see it advertising, even though the power profiler shows the power chirps every second that we would expect to be advertising
  • We switched to the blinky example code and it runs fine on the DK but nothing happens on the custom board
  • We can successfully run and step-through debug blinky on the custom board, but no LED blinks (while it works fine on the DK)

Blinky works fine on the DK and on our old board with the BC840 module, but not on the bare chip nrf52840 board. Our actual program mirrors this where it works on the DK and on a module but not on the bare chip custom board.

We followed the reference design but I've also attached our schematic. Also attached is the power profiling for blinky. In the middle you can see where we are flashing the bare chip. Is there something about the revision of the nrf52840-QIAAD0 chip? 

Parents
  • Hello,

    Since you are using an oscillator instead of a low frequency crystal, try configuring the oscillator to EXT_FULL_SWING or EXT_LOW_SWING(depending on the oscillator).If this doesn't work try switching to internal RC oscillator or the synthesized LF source

    Kind Regards,

    Abhijith

  • Unfortunately, no combination of those four config options worked.

    # CONFIG_CLOCK_CONTROL_NRF_K32SRC_EXT_FULL_SWING=y
    # CONFIG_CLOCK_CONTROL_NRF_K32SRC_EXT_LOW_SWING=y
    # CONFIG_CLOCK_CONTROL_NRF_K32SRC_RC=y
    # CONFIG_CLOCK_CONTROL_NRF_K32SRC_SYNTH=y

    But I’ve now got a reduced prj.conf file for blinky that boots based on the value of CONFIG_BOOTLOADER_MCUBOOT:

    • Turned on and the board doesn’t boot
    • Turned off and it does boot (even with all the other config options from our app’s weighty prj.conf)

    And of course debugging or logging makes everything work fine. Here's what's in our blinky prj.conf:

    CONFIG_GPIO=y
    CONFIG_BOARD_ENABLE_DCDC=n
    CONFIG_BOOTLOADER_MCUBOOT=y
    So turning mcuboot on and off is causing the board not to boot blinky. Are there mcuboot specific features that I need to set, like turning off DCDC mode for mcuboot?
Reply
  • Unfortunately, no combination of those four config options worked.

    # CONFIG_CLOCK_CONTROL_NRF_K32SRC_EXT_FULL_SWING=y
    # CONFIG_CLOCK_CONTROL_NRF_K32SRC_EXT_LOW_SWING=y
    # CONFIG_CLOCK_CONTROL_NRF_K32SRC_RC=y
    # CONFIG_CLOCK_CONTROL_NRF_K32SRC_SYNTH=y

    But I’ve now got a reduced prj.conf file for blinky that boots based on the value of CONFIG_BOOTLOADER_MCUBOOT:

    • Turned on and the board doesn’t boot
    • Turned off and it does boot (even with all the other config options from our app’s weighty prj.conf)

    And of course debugging or logging makes everything work fine. Here's what's in our blinky prj.conf:

    CONFIG_GPIO=y
    CONFIG_BOARD_ENABLE_DCDC=n
    CONFIG_BOOTLOADER_MCUBOOT=y
    So turning mcuboot on and off is causing the board not to boot blinky. Are there mcuboot specific features that I need to set, like turning off DCDC mode for mcuboot?
Children
No Data
Related