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.

TMS320F28035: Serial Flash Programmer AutoBaudLock Problem

Part Number: TMS320F28035
Other Parts Discussed in Thread: C2000WARE

Hello everyone,

We are having problems while trying to program the flash of the F28035 using the serial_flash_programmer.exe found in C2000Ware. 

We are using the F28035 ISO controlCARD with TRST = 0, GPIO37 = 0 and GPIO34 = 1. 

ASCII text outputs of f2803x_flash_kernel example is used as the flash kernel and a modified version cla_adc_fir example is used as the application.

The command line used is as follows,

C:\C28035_BootloaderTest>serial_flash_programmer.exe -d f2803x -k f2803x_flash_kernel.txt -a fir32.txt -p COM11 -b 9600 -v

Most of the time the flash programmer gets stuck in the first auto baud lock section of the programmer. We have confirmed this by debugging the Visual Studio project of the serial_flash_programmer.exe. Response of the programmer in the terminal is as follows,

C2000 Serial Firmware Upgrader
Copyright (c) 2013 Texas Instruments Incorporated.  All rights reserved.

getting comm state
building comm DCB
adjusting port settings

calling f05_DownloadImage
Downloading Example_28035_Flash.txt to device...

(application gets stuck in here)

We have probed the RX signal of the MCU and seen that autobaud character ('A') is sent from the programmer. Most of the time, the MCU doesn't respond to this character. Result is the same if the autobaud character is sent via a serial terminal. 

If we send the character multiple times over the terminal,  MCU eventually responds with the same character. At this point, behaviour of the MCU depends on whether it has a program in its flash or not,

  • If there is a program loaded in the flash, the MCU responds with the autobaud character only 2 times. After the second response, the application in its flash starts to run.
  • If there is no program loaded in the flash, the MCU responds to every autobaud character it receives. If the serial_flash_programmer.exe is started at this point, the program is successfully sent to the MCU.

We have then modified the Visual Studio project such that the autobaud character is sent with 100ms intervals until a response is received. This time, the program exits when it receives the autobaud response. From the debugger, we have found out that the reason for the exit is the wrong character received from the MCU (0xFF instead of 'A'). When we probed the TX pin of the MCU, we have seen that the MCU is indeed sends 0xFF before sending the autobaud character.

If you have any solution to this problem, we would be glad to know it.

Best regards.

  • Hi Kursad,

    When the device successful locks the baud rate after receiving an 'A' or 'a' it will send back the same character. After that it will echo back all the characters that it receives. But if it does not receive the proper header information (0x08AA) then it will branch to flash. You can see this in the technical reference manual.

    With a proper connection and with an 9600 baudrate it should be able to receive the 'A' or 'a' successfully the first time and consistently. The device would only send a 0xFF if it received a 0xFF. There may be something not correct with the connections.

    Regards,
    sal