This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMS320F280021: F280021 and F280025 remote firmware update

Part Number: TMS320F280021

Good day Colleagues,

My customer is going to use the F280021 and F280025 in his projects.

He asks what is the best way to make a remote firmware update thru CAN, I2C or UART without MCU touching or his pin manipulation?

Thank you, Mikhail

  • Hi Mikhail, 

    The SCI Flash kernel can be utilized to perform firmware updates on the F28002x devices. The app note SPRABV4 explains the firmware update process. This will require that the device is set to SCI Boot mode. The kernel example can be modified so that it is written into Flash as well.

    There is also a live firmware update example available for this device. The examples are available via MSS, I can send you a link to request both examples. 

    Thanks, 

    Anu

  • Good day Anu,

    Thank you for answering me. Please, send me a link on a chat.

    Thank you, Mikhail

  • Mikhail, 

    I will close this thread now, you can start another if you have questions about the example. 

    Thanks, 

    Anu

  • Hello, Anu.

    Thanks for the information
    F
    urther we discuss only UART (SCI)

    This will require that the device is set to SCI Boot mode.

    What does it mean for remote firmware update (without pin manipulation)?

    The kernel example can be modified so that it is written into Flash as well.

    If we setup TMS320F28002x to SCI Boot mode, why should the kernel be in flash?

    Thank you, Anton.

  • Antonin, 

    When you say "without pin manipulation", do you intend to keep zero boot mode select pins? Please refer to section 4.4.3 of the F28002x TRM for further details, if you are referring to something different please let me know. 

    The general flow of the SCI Flash Kernel is as follows

    1. Set the device to SCI Boot Mode - this will invoke the SCI bootloader in ROM which will download the SCI Flash kernel to RAM

    2. SCI Flash kernel takes control and facilitates writing an image to Flash by calling the Flash API - this image will be the update firmware you wish to write to the device

    3. The device is set to Flash Boot and is reset, and upon reset, the device will go to the Flash entry point where the image should be 

    The above flow will allow you to perform a firmware update without the use of JTAG - please refer to https://www.ti.com/lit/an/sprabv4d/sprabv4d.pdf for more details.

    The SCI Flash Kernel is placed in RAM. You can modify the project to place the kernel into Flash. This way, you can jump to the kernel directly instead of downloading it every time you need to make a firmware update. For this implementation, the Flash API would need to be copied to RAM.

    Thanks, 

    Anu

  • When you say "without pin manipulation", do you intend to keep zero boot mode select pins? Please refer to section 4.4.3 of the F28002x TRM for further details, if you are referring to something different please let me know.

    In our devices we do not use OTP. F28002x is configured to boot from flash only (GPIO24 and GPIO32 are pulled up).
    The device has a massive metal case (box) and in the fields access to the F28002x is difficult. Out of the case (box) is only one interface (for example SCI, RX and TX) without  GPIO24  and GPIO32  manipulation.
    What does mean "Set the device to SCI Boot Mode" for this case?

    The SCI Flash Kernel is placed in RAM. You can modify the project to place the kernel into Flash. This way, you can jump to the kernel directly instead of downloading it every time you need to make a firmware update. For this implementation, the Flash API would need to be copied to RAM.

    Do we need to reset f28002x before coping Flash Kernel to RAM if firmware contains Flash Kernel?

  • Anton, 

    I will review your requirements and get back to you about your questions in a couple of days. 

    Thanks, 

    Anu

  • Anton, 

    Is the device out in the field already? If not, the flash kernel can be copied to Flash by setting the device to SCI Boot mode once and using the flash kernel that will be downloaded in RAM to write the flash kernel into Flash. After that, you can leave the device in Flash Boot and jump to the application or flash kernel accordingly based on if a firmware upgrade is needed. 

    A reset is not needed as long as the watchdog and interrupts are disabled. 

    Thanks, 

    Anu

  • Anu,

    No. The devices are still at the factory awaiting a solution to firmware upgrade .

    We are going to test the way you described. We will add the Flash Kernel to flash and copy it to RAM before writing new firmware 

    Thank you,
    Anton.

  • Anton, 

    Ok, just to be clear, the entire Flash kernel does not need to be copied to RAM if it is written to Flash, only the Flash API does. 

    Thanks, 

    Anu

  • We tested a solution that copies the kernel into RAM. the firmware has been changed.

    We will work on implementing this solution in production code.

    Thank you,
    Anton.

  • Anton, 

    Sounds good, does this mean you will be changing the boot mode select pins to be set to SCI Boot whenever you need to update your firmware?

    Thanks, 

    Anu

  • Anu,

    We have added Flash Kernel to the main firmware. After receiving a special command through the interface, copy the kernel into memory. Then we change the main firmware. Do not touch the loader pins.

    Devices that have been soldered will have to be changed through the SCI bootloader. There are not many such devices.

    Thank you,
    Anton

  • Anton, 

    I see, thanks for the info. If you have no further questions, I will go ahead and close this thread. Feel free to respond here if you have questions related to this topic or open another thread if you have questions on other topics. 

    Thanks, 

    Anu