This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Custom Board Not Running Code

I have a program that runs great on the dev kit, however after uploading the code to a custom board based on the nRF52810, it does not seem to run.

I upload the code by connecting SWIO, SWCLK, Vdd, GND, VTG->Vdd, and GND_Detect->GND, and running:

nrfjprog -f nrf52 --program SOFTDEVICE_HEXDIR --chiperase --verify --log

nrfjprog -f nrf52 --program CUSTOMPROGRAM_HEXDIR --restart --verify --log

These commands complete without error, and the dev kit keeps running the old code, so I'm reasonable certain that uploading is working properly.

However, my test program (which just toggles some pins) seems to not run, and all pins seem to remain in high impedance state.

Initially, I had thought that it was because I'm using the nReset pin, however after manually removing that connection and leaving nReset floating, I get the same behavior.

This thread mentions a similar issue, which was resolved by changing the 32Mhz crystal. I am currently using this 8pF crystal with 12pF caps on each line, which I think is correct.

I also tried using the high frequency clock as the low frequency clock source, as is mentioned in this thread, which didn't seem to affect anything

  • Hello,

    Do you have a nRF52810 on the dev kit as well?  I would also suggest to try the "blinky" hex attached below to see if it runs. It does not rely on any of the crystal oscillators.

    Blinky hex

  • Uploading the hex file you linked worked, which means that the error must be in the hex I'm creating.

    The dev kit I have is this one. I unfortunately built off a PCA10040, so I had to follow the instructions to switch to 810 hardware. However, the compiled hex file I get still does not run. 

  • Please see attached a schematic of my design.

    I will also add that I after flashing the softdevice, I get an error when flashing my custom hex "Data does not match in address range  [0x00001000-0x00003ec0]". It does work if I add --chiperase though.

    And for the 810 migration, I wasn't able to manually edit ROM_END, RAM_END, so I just copied SES Linker "Section Placement Macros" from the pca10040e blinky example, as I think that accomplishes the same thing.

     

  • Figured it out! I had used "blinky" for the Section Placement Macros, which failed to upload without --chiperase after flashing the softdevice. I used Section Placement Macros from ble_app_alert_notification_pca10040e_s112 instead, as my project uses the s112 softdevice.

    Thanks for the help!

Related