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

Download firmware over I2C for another MCU

Hello,

I have a custom board which has NRF52832 SOC(i.e. main MCU) and another ARM Core-M0-based MCU(i.e. target MCU). These two are connected over I2C. I wonder how to download firmware of target MCU from NRF52832 SOC to this target MCU over I2C?

I know we can flash SoftDevice, Bootloader, and Application to NRF52832 by using nRFgo Studio, but what about firmware for target MCU? How do I attach the target MCU's firmware(*.HEX) to the HEX files mentioned above and then doing the target MCU firmware downloading between main MCU and target MCU over I2C?

Im using Nordicsemi nRF5 SDK v11.0.0.

I'm very new to this area and hence your suggestions and experience in this regard will be very helpful.

Many thanks in advance.

  • Just to clarify.

    You are asking how you program some other ARM Core M0 process? (Not how to program the nRF52 ?)

    If you are asking what I think you are asking, then you effectively need a I2C bootloader for your target MCU (ARM Cortex M0). (Plus some way to trigger your other MCU to execute the I2C bootloader code)

  • @RogerClark ,thanks for your reply and kind reminder. I've modified those two MCUs as main MCU and target MCU. As you said, I want to program the firmware of target MCU. I'm a little confused about "I2C bootloader" for target MCU, does it mean that a bootloader locates in target MCU and can communicate with other MCU via I2C protocol?

    Besides, is it possible to download target MCU's firmware to main MCU via Device Firmware Update (DFU), and then forward the firmware to the bootloader(e.g. ROM) located in target MCU. If so, could I refer to the dfu example within SDK? Thanks!

  • @switchfeet

    It may help if you say what your target MCU actually is. There are loads of Cortex M0 processors.

    Re: Installing your target's firmware via DFU to the main (nRF52)

    I guess you could use DFU to send data to the nRF52 that it in turn forwards on to your target processor.

    But you'll need to write your own App to upload the DFU and also write a modified version of the DFU handling on the nRF52 so that it doesnt update its own firmware, but instead stores the target MCU firmware in flash before running some specific code to send the target MCU firmware via I2C

    Re: Bootloader on the target MCU I presumed that your target MCU does not natively have a way to load its firmware via I2C and hence you will need some code on the target MCU to receive its firmware and store it in flash. AFIK this receiving software is normally known as the bootloader. Or does it have native I2C DFU?

Related