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.

TMS320F28069: Serial download of firmware

Part Number: TMS320F28069
Other Parts Discussed in Thread: C2000WARE

Tool/software:

Hi!

I have an established serial flash program that supports a number of TI processors (ie 2812,28069, Delfino Dual).  I am looking into the baud rate for the download of the hex file to the 28069.  What I am finding is that in order for the 28069 kernel to consistently download successfully, it requires a baud rate of 19200 or slower.  If I try 38,400 or faster it sometimes will fail downloading.  Now I am ok with a slower baud rate for the kernel as long as I can change the baud rate when the firmware subsequently downloads.  After the kernel downloads there is an autobaud that is performed, but what I am finding, is that if I attempt to increase the baud rate for the firmware, the autobaud fails (no response from the drive).  If the baud rate stays at 19200, autobaud is successful and the firmware downloads just fine.

I would appreciate your thoughts on this.  Is it reasonable for me to increase the baud rate between the kernel and the firmware downloads and is it correct that the kernel requires a slower baud rate as I have tested.

Thank you in advance!

Sandy

  • Hi Sandy,

    I'll need a few days to look into this issue, will update you.

    Thanks and regards,

    Charles

  • Hi Sandy, 

    Autobaud essentially performs a baud rate handshake between the programmer host and the device. It should detect the clock speed after receiving A or a and adjust the SCI baud registers accordingly. The main limitation here is the hardware as described in the TRM note:

    Also, are you using the device bootROM SCI bootloader or some custom bootloader?

    Best Regards,

    Allison

  • Allison,

    I am using the device bootROM SCI bootloader.  According to the highlighted note, I am setting the baud rate to the lower baud rate of 19200 and then attempting to increase the baud rate after the kernel is loaded when autobaud is again initiated prior to downloading the firmware.  If I leave the baud rate at 19200 after the kernel is downloaded, the autobaud is successful.  It is only a problem is I attempt to increase the baud rate.

    Thank you!

    Sandy

  • Hi Sandy,

    Where are you increasing the baudrate? Are you modifying the SCI module settings at any point during the programming flow? Or just having the host send the application at a different baudrate when loading the application code vs. the kernel? Can you further describe in detail your loading process from booting the device to loading application code? What is the status of the PLL during your load?

    Best Regards,

    Allison

  • Allison,

    The change in baud rate is after the kernel finishes with the 00 00 conclusion (end of kernel data).  Below are screen shots of the serial communication, the left where the baud rate change fails due to no response and so the com port is closed and an error is reported.  The right where the autobaud (baud rate is 19200) succeeds.  The PLL is set to 90MHz.

  • Hi Sandy,

    Are you loading the SCI flash kernel example we have in C2000Ware?

    Best Regards,

    Allison

  • Hi Allison,

    Yes, I am using the SCI flash kernel example

    Sandy

  • Hi Sandy, 

    Thanks for confirming. Are you able to connect to the device with the SCI flash kernel example and step through/run and confirm it is in the 'wait' function and waiting to receive data? The autobaud should be able to adjust to a new baud rate and overwrite the SCI regs. Can you clarify how are you changing the baud rate? Is this preprogrammed as part of the host serial flash programmer? Are you using a modified TI serial flash programmer or some third party?

    Best Regards,

    Allison

  • Hi Allison,

    Well it appears to be solved, I just needed a short delay after setting the baud rate before the autobaud.  Thank you for your help!

    Sandy