how to use 52832 f/w flashing to 52810

Hi:

    I'm using nrf52832 in my last demo design. But currently our foundry has no inventory of nrf2832, and I can't even find a few samples on the market to buy. So I decided to use nrf52810 instead of nrf52832 for the time being. But the problem now is that the files I originally compiled and run normally on nrf52832 cannot be burned to nrf52810 (although the compilation information shows that its content is much smaller than the setting of nrf52810). What's worse is that the example I tried to burn 52810 on KEIL also failed. The error message is as follows: Error: Flash Download failed-"Cortex-M4" (By the way, nrf52xxx has been added to the jlink setting)

    I also trying to burn a minimal dfu boot file, the burning script is as follows:

@echo off

..\tools\NRF_programmer\nrfjprog.exe --family nRF52 --eraseall

..\tools\NRF_programmer\nrfjprog.exe -f nrf52 --program .\s132_nrf52_7.2.0_softdevice.hex --sectorerase

..\tools\NRF_programmer\nrfjprog.exe -f nrf52 --reset

..\tools\NRF_programmer\nrfjprog.exe -f nrf52 --program .\nrf52832_dfutag.hex --sectorerase

..\tools\NRF_programmer\nrfjprog.exe -f nrf52 --reset

pause

The script burns normally on 52832, but on 52810 platform the error message as:

...

Erasing page at address 0x24000.

Erasing page at address 0x25000.

Applying system reset.

Checking that the area to write is not protected.

Programming device.

Applying system reset.

Run.

Parsing hex file.

ERROR: The file specified is not a valid hex file, has data outside valid areas

ERROR: or does not have data in valid areas.

Applying system reset.

Run.

Many thanks for any feedback!

B,R

Parents Reply
  • Hi Jacky, 
    From what I can see you are trying to flash a DFU bootloader made for the nRF52832 to the nRF52810.

    There is a problem with it that the bootloader is always located at the end of the flash. In this case, address 0x78000 which is outside of the address range of the nRF52810 (0x0-0x30000).
    I would suggest to build the bootloader from a project that made for the nRF52810 (pca10040e_s112_ble) or change the start address of your bootloader to 0x28000 , the same as in the pca10040e_s112_ble project. 

    Be aware that since the size of the flash of nRF52810 is smaller than nRF52832, it's quite limited on what size of the application you can update. 

    Also note that you don't need the bootloader to test the normal functionality of your application. 

Children
  • Hi Huang:

       Your are right and many thanks, I try use 52810 own dfutag sample hex file what it can flash and run. but I try to OTA my application package(it also made by nrf52832) then it failed. Is that the application also need adjust the address configuration? or that I need re-design my firmware base on nrf52810 project?

    B.R

    Jacky

  • Hi Jacky, 
    It depends on which softdevice you use and if you use any hardware that doesn't available on nRF52810. Also make sure you have configured the RAM configuration correctly.

    I would suggest to first test the device without bootloader, simply flash softdevice and application. 
    After that you can test the bootloader with an example application that made for the nRF52810 before testing with your application. 


  • Hi Huang:

         The trouble is that what I made OTA package in the past is depending from nrf52832 not 52810. And I have tried the Ble_uart project of 52810 which works well so the h/w platform is fine. The trouble is that from OTA package or that from application hex file itself. Is there any document guide the firmware different between nrf52832 and nrf52810?

    B.R

    Jacky

  • Hi Jacky, 

    The difference between nRF52832 and nRF52810 can be found in the table here.

    You can read more about developing for nRF52810 here.

    I'm not 100% sure why you need to test OTA on the new board even before testing with the application itself. 

    My suggestion is to do the following: 

    - Flash (with the programmer not OTA DFU) the SD + your application (for nRF52832) to test if it's functional on your nRF52810 board. If it doesn't you may need to debug and check why it doesn't work. 

    - Test OTA DFU with the ble_uart project (a project that showed it works on nRF52810 board) to be sure that the bootloader works. 

    - Final test is to do OTA DFU for your application. If it doesn't work, you need to try to debug and provide more logging information from both the phone, and the bootloader. 

Related