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.

TMS470MF06607: tms470 bootloader

Part Number: TMS470MF06607
Other Parts Discussed in Thread: UNIFLASH

hi,

i am using TMS470MF06607 microcontroller. 

i make my own custom board with the TMS470MF06607 microcontroller.

if i want to flash the code through the RS232 cable means i need the boot loader or not ??

if its need means can u please send me that boot loader for that.

regards

Arun Kumar.N

 

  • Hello Arun,

    Yes, you would need to develop a SCI based bootloader in order to program the device through a serial port. Ti does not have a specific example of an SCI based boot loader for the TMS470M products. Please see additional information from this post for additional information on how to proceed: e2e.ti.com/.../1461531
  • hi,

    thanks for your information. what ever the link you gave to me i saw that one.
    is possible to change the boot loading from CAN to SCI ??? if its possible means how ?? can you please explain to me .

    I have one more doubt. if its a SCI boot loader means i can flash my code through the RS232 cable. if its a CAN boot loader means how can i flash my code ???

    thank you
    Arun kumar.N
  • Hello Arun,

    Certainly it is possible to modify the CAN boot loader to replace the CAN drivers with SCI drivers. I also provided a link to a TMS570 SCI based boot loader that should show you how an SCI can be used for the same purpose. The key is that TMS570 bootloader cannot be used directly because the programming algorithm that it downloads is for a different technology than the TMS470M. The CAN bootloader has the F035 API which is the programming algorithms for the TMS470M products.

    If we consider the basics of what the bootloader is doing, it is using a serial protocol (CAN, SCI, SPI, etc.) to receive data in the MCU. Once received it has to place that data into a known location in RAM. The first data received is generally object code which is placed into a specified RAM. This object code is executable code that has the communication interface as well as the algorithm for programming the Flash memoryin the device. Once this object code has been received and placed in RAM, the bootloader executes the code in RAM. The code iexecuting  from RAM then receives the object code of the application inside of communication packets and places them in a RAM buffer and the algorithm for programming flash is called to program the buffer content into flash. This repeats in sections until the entire application is programmed in to the device. Once fully programmed, the device is reset and normal application starts.

    With the above description of how a boot loader works, consider that the link to the CAN boot loader provides a code set where the communication method is CAN which receives the data. If you want to use SCI, you would need to replace the CAN drivers with SCI drivers which would then perform  the same task of receiving data as the CAN module did. Once the data is received, the processing of that data would be the same irregardless of how it made its way to the MCU.

    arun kumar93 said:
    I have one more doubt. if its a SCI boot loader means i can flash my code through the RS232 cable.

    So, the question is if SCI can be used with RS232? This depends on the program on the PC side. The SCI is not a full UART in that it does not implement any of the signals other than Tx and Rx (no flow control or handshaking is possible as with a full UART). If you need the handshaking and/or flow control, you would need to utilize a GPIO to manually implement these features. We have no examples of this type of implementation.

    arun kumar93 said:
    if its a CAN boot loader means how can i flash my code ???

    I believe I addressed this above. You would need to modify the CAN boot loader to replace the CAN drivers with SCI so you would have an SCI Boot Loader. 

  • Hello Arun,

    In some additional discussions with my associates a couple of other points that should be considered came up.

    First, if you are connecting directly to a PC or standard RS232 interface, these are usually 5V interfaces. You would need to either implement some sort of level shifting or use an RS232 transceiver to interface between the 3.3V MCU and the 5V RS232 port.

    Second, if you do implement an SCI bootloader, you would need to use some direct programming tool to program the initial boot loader code into the device. i.e., one possible solution is to use a JTAG interface with an emulator such as an XDS100 or XDS200 together with Uniflash to download and program the bootloader into the MCU. Other options would include custom in circuit programmers as would be provided by third party suppliers that usually program the device via the JTAG with custom software.
  • hi ,

    sorry for the delayed response. thanks for your explanations.
    if i have XDS100V2 ARM JTAG emulator(20 pin) means i can flash the code to that microcontroller through the ARM JTAG 20pin connector ???

    if i am directly flash the code means i don't need any boot loader in my custom board right ???

    thanks
    Arun Kumar.N
  • Hello Arun,

    You are correct. If you have the ARM 20pin connector and a supported emulator such as the XDS100v2 you can flash the device through the JTAG port without the need for a boot loader. TI offers the Uniflash programming tool that will program the device through JTAG providing a supported JTAG emulator is used.