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.

TMS320F28377D: Bootloading multiple devices on a single bus

Part Number: TMS320F28377D
Other Parts Discussed in Thread: C2000WARE

In my application I have several daughtercards, each with a F28377D, on one backplane. All are normally slaves to a host PC connected to the backplane. I would like to update their applications via a single serial bus (SPI or I2C), but it seems that the ROM bootloaders for those peripherals want to function as the master and read the application from a serial EEPROM (or something imitating it). Obviously if all the daughtercards and their MCUs are powered up at the same time, this is problematic if they are trying to be the master on one bus.

So is there some intended solution for this? The simplest method I can think of is to have the host manipulate the boot mode pins such that one MCU is in Get mode while others are held in Wait mode. But my understanding of the bootloader is pretty weak.

  • Hello

    Your understanding is correct. If you want to use SPI or I2C, you either do something to what you described to put the others in wait boot until its their turn or in your flash put a custom bootloader. You could adapt the current bootloader souce code which is in C2000Ware.
    Another option is to use a different boot mode such as CAN and program via the CAN bootloader.

    Best regards
    Chris
  • Hi Chris thanks for the answer.

    A follow up: I found this tidbit on the TI wiki (processors.wiki.ti.com/.../C2000_Bootloader):
    "The bootloader stored in the device boot ROM is only capable of loading code into the RAM. To store the code into the device flash this primary bootloader can be used to load a secondary Bootloader into the RAM that is capable of writing the code into the Flash memory. For this secondary bootloader there is currently no example code available."

    Is an example secondary bootloader for FLASH still not available? Specifically what project in C2000ware are you referring to? Are there any that handle both CPUs?
  • Hello

    In C2000Ware, what you're describing is the flash kernel. Refer to this example: ~\device_support\f2837xd\examples\dual\F2837xD_sci_flash_kernels

    The associated PC programmer is located at: ~\utilities\flash_programmers\serial_flash_programmer

    Best regards
    Chris