Part Number: TMS320F280049
Hi C2000 Gurus,
I am using an ARM host MCU to update my F28004x FW over SCI. I am using the default GPIOs 28 and 29 for SCIA boot up. I am able to load the Kernel file after initiating a C28x reset and boot from SCI. After the Kernel file gets loaded, however, the autobaud lock does not work and gets stuck here (see below).
Here’s what I do:
- First, let’s make sure I am generating the Kernel file correctly. I use the CPU1_RAM config of the flashapi_ex2_sciKernel project and generate the .txt hex file using the hex2000 utility. Note that this project uses the default SCIA GPIOs 28 and 29.
- I then load this Kernel file from the host MCU to the C28x on a C28x SCI boot-up. No issues with Autobaud lock here. It looks like the file generated in #1 is correctly getting loaded because all data bytes that are read back match with the contents of this file exactly. The image you see above is the data received from the host MCU using a separate serial connection to my PC.
- I believe I allow enough time for the Kernel to start running. I have experimented with this time being as low as a few 100 ms to as long as 10s.
- The Autobaud lock does not happen as I do not receive the ‘A’ byte back after this Kernel file load (assuming Kernel is running at this point).
- I tried the BANK0_NO_LDFU config of the flashapi_ex2_sciKernel project. In this case after the ‘Kernel file’ gets loaded, the Autobaud lock works, but I think this is misleading. In this case the ‘Kernel’ seems to just echo back whatever data I send it. For example, if I send the ‘Erase ALL’ packet, it just echoes back the last byte of the packet ‘0xE4’ (i.e. 228d) instead of the correct ACK byte ‘0x2D’.

Where might I be going wrong?
Thanks,
Hrishi
