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.

EK-TM4C1294XL: I2C boot loader

Part Number: EK-TM4C1294XL

Hi, Our new project has a setup where the main board and TI board will be communicating via I2C interface. The main board will be master and TI will be slave device. I m able to have a basic application running and all fine. Now i m looking at a option to do firmware upgrade on the TI board which will be used in future for field upgrade. Since the mode of communication here is I2C , i was looking at the changes to be done on Boot loader to support same. Is there any master I2C sample code  which support firmware upgrade on TI device? How to write I2C master application code for firmware upgarde , i could not find any doc. Could you please guide me with this?

  • This document gives you information on how to implement the TI side of an I2C bootloader. Section 3.3 identifies the custom protocol used. Unless the processor on your main board is also a TM4C device, you will need to write the master part of the bootloader connection using the tools and libraries provided with that device.
    www.ti.com/.../spmu301d.pdf
  • Thanks Bob. That has good info. Is there any sample master driver code available?
    Also, which is the default boot loader code running on Eval board? How to flash bootloader to eval board currently?
  • I do not have an example of an I2C master sending boot loader commands. (Maybe some user on the forum has some and will share it. I will update your subject line to see if that helps get more responses.) The EK-TM4C1294XL evaluation kit actually has an on-board JTAG controller to program the TM4C1294 device, no boot loader is needed. However, the TM4C1294 has a ROM based boot loader that checks for a valid stack pointer and reset vector in the flash at reset time. If either is not present, it will continue to execute from the ROM polling for commands from UART, SSI, I2C, CAN, Ethernet, or USB.