Because of the Thanksgiving holiday in the U.S., TI E2E™ design support forum responses may be delayed from November 25 through December 2. Thank you for your patience.

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.

How to use the CAN, UART, and USB port to realize firmware update of the TM4C1294?

Other Parts Discussed in Thread: UNIFLASH

Hello, I'm new to Cortex M4 evaluation board.

Could you please tell me how to use the CAN, UART, and USB port to realize firmware update of the TM4C1294.

How can I connect these ports to my PC? The USB port can directly connect to PC and I can use a USB-TTL module to connect the board SCI port to PC.

But how about the CAN?

I think that I need some specific host softwares to send the hex file(for example) via the ports to the MCU.

Where should I to get these softwares?

 

I am looking forward for your help.

:)

thanks and regards

Di

 

  • Hello Di,

    In order for any of these protocols to be utilized for programming the image file into the TM4C microcontroller, there needs to be software already residing on the microcontroller running the application to communicate with the PC. This is called a bootloader. The function of the bootloader is to run the software that configures the protocol HW (CAN, UART, USB, Ethernet, etc...) and manages the back and forth communication with the host PC. Part of this back and forth is to exhange the binary information/data that will be stored/programmed into the devices flash memory. Upon receiving the binary/data, the bootloader application will run algorithms specific to the device to program this data into the flash memory. Once all binary iformation/data has been received, the device can be reset; at which point, the loaded binary will execute.

    In the TM4C129, there is a bootloader code in the devices ROM (Read Only Memory). This bootloader will execute when the device is powered if there is no code/data stored in flash (completely erased). This bootloader supports multiple protocols including UART, USB, Ethernet, CAN, etc... There is a userguide that you can read to find out more about how it functions and what it supports. This user guide is located at this link: www.ti.com/.../spmu301

    Note that some of these protocols may require special HW external to the device. For example CAN will require a CAN Transciever which is not included on the launchpad. All of the protocols will require custom software running on the PC to communicate with the device. TI provides the LM Flashprogrammer tool (www.ti.com/.../lmflashprogrammer) which can use the serial link to program the binary into the device. Also TI provides tools such as Uniflash to program the device using the ICDI interface. TI also provides an IDE (Code Composer Studio) for use in code development, debug, and programming.

    Also, more information about the device driver libraries supported through ROM functions is located in this document: www.ti.com/.../spmu301

    All in all, getting started in embedded development is not a trivial task and you have to understand it is nothing like development in the PC world. Applications run on top of the OS in the PC world. In the embedded world you are programming at the bit level and including the OS ans task scheduling. If at all possible I would urge you to find someone with some level of experience in development of embedded code and using microcontrollers to act as your mentor. We are here to help when problems arise but we are not well suited for teaching embedded systems which is better done with someone close by who can help guide you.
  • Hi Chuck:
    Thanks for your nice reply and I do learn a lot.
    I have been using the C2000 MCUs for some time and it can choose its boot modes by several GPIOs. I guess it may have its own bootloader.
    I have read several examples from the TIVAWARE and get some knowledge about the bootloader. And I want to try with the examples to learn more about the boot.
    Thanks again for your nice reply.
    : )
    --Di