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.

TMS320F280025: Firmware update on CAN Boot

Part Number: TMS320F280025
Other Parts Discussed in Thread: UNIFLASH

Hi,

    We have requirement firmware update over CAN interface, we are using TMS320F280025 MCU, Does latest SDK support the CAN bootloader functionality for f28002x.

Thanks,

Nagaraj

  • Hi Nagaraj,

    Is the query regarding CAN bootloader functionality or CAN flash kernel? The CAN bootloader is available as part of the ROM code. This CAN bootloader can be selected during boot-up using boot mode select pins or user otp. User application can be loaded into RAM using this CAN bootloader.

    CAN flash kernels, we do not have anything based on DCAN module currently. Flash kernels based on MCAN are available. F280025 does not have this MCAN module though.

    Thanks and regards,

    Pawan

  • Hi Pawan,

                   Thanks for reply, we have to load the user application (Firmware update) through CAN interface in flash Bank0 or Bank1 using CAN bootloader. And  load the updated firmware from flash and run user Application from the flash.

    Thanks,

    Nagaraj 

  • Hi Nagaraj,

    This would need a CAN flash kernel to be first loaded into RAM using the CAN bootloader. This flash kernel can then interact with the host to load and program the updated image into flash. Unfortunately we do not have the DCAN based flash kernel example and only the MCAN based flash kernel available currently.

    Thanks and regards,

    Pawan

  • Hi Pawan,

                   Can we use the flash_api's  to update firmware image to the flash memory in our main Application itself and bootup with new firmware image, Is it possible to do like this?

    Thanks,
    Nagaraj

  • Hi Nagraj,

    I am checking with the flash API/firmware update experts on this one.

    Thanks and regards,

    Pawan

  • Hi Nagaraj,

    Yes this is possible. What you would have to implement is in your application firmware after device setup and initializations to have a function that checks the CAN Bus for a specific frame of data. If the frame of data is found (ex. 5A5A5A5A), you will proceed to download the firmware update to flash through CAN Boot. If the frame of data is not found, you would regularly continue to where your firmware's initial entry point is. You would also need a timeout if the response is not found within a certain amount of time (ex. 5 seconds). 

    Let me know if you have any further questions.

    Thanks,

    Charles

  • Hi Charles,

     Thanks for reply, instead of downloading the firmware update to flash through CAN Boot, is it possible to do this in our customer's application code whenever firmware update command requested then download the firmware to flash?

    Is it required to keep flash API's separate in flash sector and use same flash APIs in our customer's application code to download the new firmware and write to flash?

    Thanks,

    Nagaraj

  • Hi Nagaraj,

    Yes, this method is intended for application code use.

    You could keep the flash API's separate. You have could have both flash kernel which contains the API in RAM and the customer application code with API, or you could have flash kernel in Flash and use its API's when needed, which would save space for customer application code. It depends upon the amount of space the customer application code will take up.

    Thanks,

    Charles

  • Hi Charles,

                  Thanks for reply, I have divided BANK0 into two image slot, Image1 slot holds address from sector 3 to 9 and image 2 slot holds firmware from address sector 10 to sector 15 address, In linker script what I can modify so that image 1 has to boot up from sector 3 i.e 0x83000 on device reset and Image 2 has to boot from sector 10 i.e 0x08A000.

    How we can load the two images on device (TMS320f28002x) at particular flash address through CCS or uniflash tool?

    Thanks,

    Nagaraj

  • Hi Nagaraj,

    In order to load two images on the device through CCS you could combine both .out files for a single load (.out for the application and firmware update).

    In the linker script before the combining you would have each respective section mapped out for that particular image and not to cause overlap. 

    I will have to provide further instruction on this tomorrow.

    Charles

  • Hi charles,

                I’ll wait to hear from you.

    Thanks,

    Nagaraj

  • Hi Nagaraj,

    Have provided update and possible call in the messages.

    Thanks,

    Charles