This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

NRF52840 requires power cycle, HW reset, or Verify to run after flashing firmware

Hello, I've seen some similar questions about resets after downloading firmware, but haven't been able to find the solution to my problem.

I'm using a Minew MS88SF3 NRF52840-QIAA module with SDK17.0.0 with Segger Embedded Studios v4.52, messily soldered onto a custom board for a HID keyboard prototype. I've had some issues needing to resolder the module, needing to touch up some pins, but I think I've got those all sorted out so I've convinced myself it's a software issue.

Testing with the ble_hids_keyboard example (PCA10056 and S140) I can't seem to download firmware and have it run right afterwards, but only when the device had existing firmware. The problem can be succinctly summarized as:

Firmware runs successfully when:

  • Erase All followed by Download
  • Download followed by Verify
  • Download followed by pulling Reset pin low
  • Download followed by power cycling
  • Run in Debug mode

Firmware does not run when:

  • Download onto a chip with existing firmware and leaving it be

When I have RTT Viewer running during a download of a slightly modified firmware, I get this error message:

00> <info> app_timer: RTC: initialized.
00> 
00> <error> app: ERROR 8 [NRF_ERROR_INVALID_STATE] at B:\Users\[me]\Documents\NRF52_SDK17.0\nRF5_SDK_17.0.0_9d13099\examples\my_custom_projects\nrf52840_keypad_0\main.c:1497
00> 
00> PC at: 0x000315F9
00> 
00> <error> app: End of error report

Line 1496 and 1497 of main.c are as follows. It's interesting that I would get this error after a Download, but not when running it in Debug.

err_code = nrf_sdh_enable_request();
APP_ERROR_CHECK(err_code);

Otherwise, for the default hids_keyboard example, I just get this. Not sure I remember what I changed to make the error logging more verbose in my custom firmware.

00> <info> app_timer: RTC: initialized.
00> 
00> <error> app: Fatal error

Thanks!

Parents
  • Hi

    I understand, it's hard to keep track of issues like this. Sounds very strange that only the modified example runs correctly. This makes me think that either your SES installation is faulty or that one or more SDK library/driver files have been edited so that the examples no longer work as intended.

    I would try reinstalling SES first, and if that doesn't help, I would suggest trying with a fresh installation of the SDK.

    Best regards,

    Simon

Reply
  • Hi

    I understand, it's hard to keep track of issues like this. Sounds very strange that only the modified example runs correctly. This makes me think that either your SES installation is faulty or that one or more SDK library/driver files have been edited so that the examples no longer work as intended.

    I would try reinstalling SES first, and if that doesn't help, I would suggest trying with a fresh installation of the SDK.

    Best regards,

    Simon

Children
Related