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.

TMS320F28386S: Software Controlled Firmware Update Process: Flash Kernel not Downloading

Part Number: TMS320F28386S
Other Parts Discussed in Thread: C2000WARE

Hello,

I am currently working on implementing a software-controlled firmware update process in accordance with application report SPRACN1.
I am using the flash kernel example flash_kernel_c28x_dual_ex1_c28x1 located at C2000Ware_4_01_00_00\driverlib\f2838x\examples\c28x_dual\flash_kernel.

In the application, the custom boot pin selection was implemented as guided by the application note with the only difference being, GPIO 57 is selected as the boot select pin instead of GPIO15.

The following lines were added to the linker command file as well.


There is a 1kOhm resistor and a 10nF capacitor connected between GPIO57 and ground.

In following with the application note, the application software has been modified to drive the GPIO pin low to take care of noises and a command exists that sets the watchdog mode to interrupt, drives GPIO57 high, and resets the device to select the SCI boot mode.

The flash kernel modifications were identical to the ones in the application note but with GPIO57 replacing GPIO15.

I am using a USB to RS-485 converter to communicate with the board. The SCIA RX pin is set to GPIO9 and the SCIA TX pin is set to GPIO84.
I modified the flash_kernel_c28x_dual_ex1_c28x1 device.h file to reflect this.


Is the kernel now "plug and play" or does it require further modification to be able to be used in this application?

I've tried using the kernel as is with the serial flash programmer tool but I could not get it to work. I used the following command:

serial_flash_programmer.exe –d f2838x -k flash_kernel_c28x_dual_ex1_c28x1.txt -a someapp.txt -p COM7 -b 9600 -v

After the autobaud match it says the kernel is downloading but nothing happens in the Command Prompt and it never finishes.

Any help would be greatly appreciated.

Regards,

Jakub Bien

  • Hi Jakub,

    I'll be able to answer your post in the morning. 

    Thanks and regards,

    Charles

  • Hi Jakub,

    The kernel by itself is usable standalone and requires the SCI boot settings to use GPIO28/29. The F2838x device is also referenced on usage in the SPRABV4 app note (ti.com/lit/sprabv4).

    If the serial flash programmer is hanging after the autobaud match, this indicates a mismatch between the SCIRX/SCITX lines and the USB-to-UART lines the host programmer communicates with (FTDI chip uses GPIO28/29 for the device for receiving data from the host programmer). 

    Are you able to confirm that a data is being sent through the RS-485 device's TX/RX lines?

    Thanks and regards,

    Charles

  • Hi Charles,

    Thank you for the response. I am using a custom board that uses GPIO 84 for the SCITX and GPIO 9 for the SCIRX and I am unable to change this configuration. Is it possible for me to configure the SCITX/RX boot options to use these pins or am I required to use one of the pre-determined pairs listed in this table from the TRM?

    Thanks,

    Jakub 

  • Hi Jakub,

    It is possible to configure these options after the flash kernel has downloaded initially and re-initializes the SCI peripheral for bootloader usage, but on first download of the kernel these options are hard coded by the SCI boot ROM code. So, it is not possible to using this combination without changing the SCI boot ROM on the device.

    Thanks,

    Charles

  • Hi Charles,

    Thanks for the response. How would I modify the SCI boot ROM code in order to use GPIO 84 for the SCITX and GPIO 9 for the SCIRX?

    Thanks,

    Jakub