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

Not able to upload UART SDK on nRF52840 Dongle via nRF Connect

Hi Nordic Team

I've applied all the changes recommended on https://devzone.nordicsemi.com/nordic/short-range-guides/b/getting-started/posts/nrf52840-dongle-programming-tutorial for my nRF52840 Dongle in order to make it work with the  examples\peripheral\uart from nRF5_SDK_for_Thread_and_Zigbee_v4.1.0_32ce5f8.

after the changes on  Preprocessor Definitions by removing BOARD_PCA10056 and inserting BOARD_PCA10059, then adjust the linker configuration, I've compiled the file and tried to upload it via nRF-Connect which keeds the "write button" grey out.

After that, I tried to use the soft device which is overlapping the application.  Even after all, I still not able to upload and test the application.

I really want to make the UART Communication works with the nRF52840 Dongle in order to keep moving along with my current project.

Any help on that will be more than welcome.

Thank you

JM

Parents
  • Hi,

    Please make sure that your application does not overlap with the Bootloader and MBR, or the Softdevice. The nRF5 SDK for Thread and Zigbee v4.1.0 uses peripherals, BLE, etc. inherited from nRF5 SDK v16.0.0. The memory layout of the bootloader in v16.0.0 can be found here.

    Are you trying to use the peripheral UART example unchanged? Since you are using the Thread and Zigbee SDK, be aware that if you want to use both BLE and Thread or Zigbee you must use multiprotocol.

    Best regards,

    Marte

  • Hi Marte, 

    I m doing all the changes recommended on the tutorial and I still getting this overlapping. I've tried two different ways. One was using the softdevice and another one without that.. Still not working.

    Changing the preprocessor and Linker information to a PCA10059 is not resolving the problem

  • Hi,

    The guide is for examples in the regular SDK. These examples are made in such a way that the SoftDevice and the MBR are automatically taken into consideration in the memory layout in BLE samples. When you change the preprocessor definition to BOARD_PCA10059 the memory range of the application is changed so that it does not overlap with either the Softdevice or the MBR.

    However, the UART example you are looking at does not take the SoftDevice into consideration. You can see this by looking at the address range of the application. I tested this by only changing the preprocessor definition to BOARD_PCA10059, and nothing else. The address range of the application was 0x1000 - 0x2D63. This does leave enough space for the MBR, which according to the specifications requires the memory range 0x0 - 0x1000, but it does not leave room for the SoftDevice. If you look at the memory layout I linked to in my previous reply, you can find the following memory range for nRF52840 with SoftDevice S140:

    Application area (incl. free space) 0x0002 7000 - 0x000F 8000 (836 kB)
    SoftDevice 0x0000 1000 - 0x0002 7000 (152 kB)
    Master Boot Record (MBR) 0x0000 0000 - 0x0000 1000 (4 kB)

    The SoftDevice should be before the application area, specifically 0x1000 - 0x27000, which overlaps with the address range I got for the application above. So you must change the start address of the flash to not overlap with the SoftDevice, FLASH_START=0x27000. Remember to also adjust the size of the flash accordingly.

    Best regards,

    Marte

Reply
  • Hi,

    The guide is for examples in the regular SDK. These examples are made in such a way that the SoftDevice and the MBR are automatically taken into consideration in the memory layout in BLE samples. When you change the preprocessor definition to BOARD_PCA10059 the memory range of the application is changed so that it does not overlap with either the Softdevice or the MBR.

    However, the UART example you are looking at does not take the SoftDevice into consideration. You can see this by looking at the address range of the application. I tested this by only changing the preprocessor definition to BOARD_PCA10059, and nothing else. The address range of the application was 0x1000 - 0x2D63. This does leave enough space for the MBR, which according to the specifications requires the memory range 0x0 - 0x1000, but it does not leave room for the SoftDevice. If you look at the memory layout I linked to in my previous reply, you can find the following memory range for nRF52840 with SoftDevice S140:

    Application area (incl. free space) 0x0002 7000 - 0x000F 8000 (836 kB)
    SoftDevice 0x0000 1000 - 0x0002 7000 (152 kB)
    Master Boot Record (MBR) 0x0000 0000 - 0x0000 1000 (4 kB)

    The SoftDevice should be before the application area, specifically 0x1000 - 0x27000, which overlaps with the address range I got for the application above. So you must change the start address of the flash to not overlap with the SoftDevice, FLASH_START=0x27000. Remember to also adjust the size of the flash accordingly.

    Best regards,

    Marte

Children
No Data
Related