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,

    This might because of  some differences in your schematic with our reference. For eg, there should be a connection from DEC4 to DEC6, which is missing in your case. Also, in the RF part, there is a connector which you have added before the radio matching network, and this needs to be removed after radio matching. Moreover, the values of the components in the RF part are quite different from the reference schematic.

    Please make necessary changes and let me know how it goes.

    Kind Regards,

    Abhijith

  • Thanks for diagnosing the radio issue. We connected DEC4 and DEC6 and the radio now works. But the other issue remains, which is that Blinky won't start on its own unless we engage the debugger. Our program is the same, and using the debugger or RTT viewer causes it to boot and run correctly.

    But without the debugger, blinky just sits there. What could cause the stock Blinky not to run on boot on a custom board? 

    Here's our latest schematic:

    I'll note that we do have an external 32kHz crystal and have DCDC turned on. But turning off `CONFIG_BOARD_ENABLE_DCDC=n` and `CONFIG_CLOCK_CONTROL_NRF_K32SRC_XTAL=n` for `CONFIG_CLOCK_CONTROL_NRF_K32SRC_RC=y` doesn't seem to have an effect on this issue.

Reply
  • Thanks for diagnosing the radio issue. We connected DEC4 and DEC6 and the radio now works. But the other issue remains, which is that Blinky won't start on its own unless we engage the debugger. Our program is the same, and using the debugger or RTT viewer causes it to boot and run correctly.

    But without the debugger, blinky just sits there. What could cause the stock Blinky not to run on boot on a custom board? 

    Here's our latest schematic:

    I'll note that we do have an external 32kHz crystal and have DCDC turned on. But turning off `CONFIG_BOARD_ENABLE_DCDC=n` and `CONFIG_CLOCK_CONTROL_NRF_K32SRC_XTAL=n` for `CONFIG_CLOCK_CONTROL_NRF_K32SRC_RC=y` doesn't seem to have an effect on this issue.

Children
  • Hello,

    Sam Clay said:
    I'll note that we do have an external 32kHz crystal and have DCDC turned on. But turning off `CONFIG_BOARD_ENABLE_DCDC=n` and `CONFIG_CLOCK_CONTROL_NRF_K32SRC_XTAL=n` for `CONFIG_CLOCK_CONTROL_NRF_K32SRC_RC=y` doesn't seem to have an effect on this issue.

    Sorry I am a bit confused, reading this. Are you saying that disabling the DCDC(CONFIG_BOARD_ENABLE_DCDC=n) and enabling the LC RC (CONFIG_CLOCK_CONTROL_NRF_K32SRC_RC=y) clock makes it work?

    Or is it the same when you change the configuration? 

     

    This can be due to the DCDC hardware but I need to recheck the schematic. I will get back to you, but please confirm this.

    Kind Regards,

    Abhijith

  • It's the same when I change from the external crystal to the internal oscillator. So my assumption is that the external crystal is fine.

    I'll also add that blinky is stuck in a boot loop because it looks like this every ~0.8ms.

    I also just discovered that if I set CONFIG_BOARD_ENABLE_DCDC=n on blinky, I can get it to work, which makes me think there's something going on in the schematic or the 32khz oscillator.

Related