TMS320F28377D: TMS320F28379D BootLoader CAN

Part Number: TMS320F28377D
Other Parts Discussed in Thread: C2000WARE

Tool/software:

Hello,

I am new in boot loader using, and I have some basic questions about it. In advance, sorry if they are stupid.

I read that I need to programm one of the OTP registers Zx_BOOTCTRL of the micro controller. This register contains the selection of the GPIO which determine the boot mode. Setting these GPIO at 0b11 makes the micro controller boot on the mode specified by the BMODE field.

BMODE == 0x07 makes the microcontroller boot on CAN (what I want) and the used protocol is defined in the Reference Manuel:

My questions are

1) Using this protocole allows me to directly programm the FLASH or simply transfer a kernel into the RAM. If there is no way to programm the FLASH directly, where can I find the protocol that I need to use to transfer the FLASH code of my application ?

2) Once the micro controller is programmed, is there a mean to boot the micro controller on Flash at the next reset, or do I need to transfer an invalid key (!=0x08AA) by the CAN bootloader to jump to the FLASH ?

Thank you for your Help.

Vincent.

  • Hi Vincent,

    1) You can use the CAN Bootloader to load a Flash Kernel into RAM memory via CAN. The Flash Kernel should then reset and re-initialize the CAN peripheral to accept an incoming application image to program into FLASH memory.

    2) This sounds like you would wish to store the FLASH Kernel in Flash memory, so that at device turn on it can check for information on the CAN bus to perform a firmware update if necessary, is that correct? I feel this implementation would better suit your needs, so the device could be kept in FLASH BOOT Mode with the GPIO Switch pins.

    Thanks and regards,

    Charles

  • This sounds like you would wish to store the FLASH Kernel in Flash memory, so that at device turn on it can check for information on the CAN bus to perform a firmware update if necessary, is that correct? I feel this implementation would better suit your needs, so the device could be kept in FLASH BOOT Mode with the GPIO Switch pins

    Hello Charles,

    You perfectly understood my needs.

    That's actually what I use to do on another micro controller (Microchip)

    Has the Kernel to be loaded into the RAM for its execution, or is there a mean to execute it from the FLASH and preserve the sector where it is programm ?

    Also, is the kernel configurable ? I mean, can the frame Id be chosen by the user for instance?

    Thank you 

  • Hi Vincent,

    >Has the Kernel to be loaded into the RAM for its execution, or is there a mean to execute it from the FLASH and preserve the sector where it is programm ?

    Yes, it would have to be loaded to FLASH and run from RAM.

    >Also, is the kernel configurable ? I mean, can the frame Id be chosen by the user for instance?

    Configuration is a possibility. A CAN kernel doesn't exist as provided in C2000ware, but if you were to reference the CAN Flash Programming of C2000 Microcontrollers application note for other devices, it states that for the DCAN Flash Kernel, a default message identifier (MSGID) value of 1 is required (in usage with the DCAN Flash Host Programmer), however this can be changed if you wish. The host programmer that will send the application would need to send a corresponding MSGID value so that the CAN peripheral can understand the message as acceptable. 

    For the Message Identifier value or frame Id, it can be decided by the user.

    Thanks and regards,

    Charles