This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts
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

How to upgrade another MCU firmware by nordic n51822 DFU.

Hi, My project include two MCU with n51822 and STM32. I expect upgrading STM32 application firmware by n51822 DFU function. Do you give your advice to implement it by modifying nRF51_SDK_8.1.0_b6ed55f\examples\dfu\bootloader example? Thank you.

Parents
  • Hi Leif,

    It should be ok with what you planning to have.

    You have two options. First is to have a RAM buffer on the nRF51 and then send the packets you receive from the phone to the STM32 via UART on the fly. This approach require you to have a DFU bootloader or something like that to handle the packets from the nRF51 on the STM chip running at the same time. This solution doesn't have restriction on the size of the new image of the SRM32 chip.

    Second approach is what you described, you store the image for STM32 on the nRF51 and then later on you have the bootloader on the STM32 to talk to the nRF51 and get the image from the nRF51. With this approach you will have limitation of the size of the swap area on the nRF51 (about 70kB). But it's safer because the image is stored on flash before it's sent to STM32.

    Unfortunately, we don't have any example for doing that. What we have is the bootloader for the nRF51 only. But I don't see any technical problem to implement it.

  • Yes, you can use single bank update. You will need to update the nRF51 application every time you update the STM32 firmware. The swap area size should be around 140kB depends on the softdevice size.

    Note that you don't have to update nRF51 and STM32 firmware at the same time. You can update the STM32 first and then update the nRF51 firmware after that. So the max size of each of them is 140kB.

    • Yes, you can simply replace the dfu_dual_bank.c with dfu_single_bank.c and you will have single bank DFU bootloader. Bootloader and softdevice update is also supported with single bank update. (Because it's already single bank update when talking about softdevice DFU)
Reply
  • Yes, you can use single bank update. You will need to update the nRF51 application every time you update the STM32 firmware. The swap area size should be around 140kB depends on the softdevice size.

    Note that you don't have to update nRF51 and STM32 firmware at the same time. You can update the STM32 first and then update the nRF51 firmware after that. So the max size of each of them is 140kB.

    • Yes, you can simply replace the dfu_dual_bank.c with dfu_single_bank.c and you will have single bank DFU bootloader. Bootloader and softdevice update is also supported with single bank update. (Because it's already single bank update when talking about softdevice DFU)
Children
No Data
Related