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.

LAUNCHXL-F280039C: Serial Flash Programmer freezing

Part Number: LAUNCHXL-F280039C
Other Parts Discussed in Thread: C2000WARE

Tool/software:

Good day, 

I am trying to use the serial flash programmer to program code to Bank0 and Bank1. I modified "flashapi_ex5_lfu_no_reset" from the f28004x examples to work on a f28003x LAUNCHXL board. I built and load the "flash_ex3_sci_flash_kernel.projectspec" in both  BANK0_LDFU and BANK1_LDFU build configurations. 

I then coped a text file of the "flash_ex3_sci_flash_kernel" for Bank0 and the application firmware for Bank0, for my example titled "flashapi_ex5_lfu_no_reset_F200839C" into the serial flash programmer folder at "C:\ti\C2000Ware_5_04_00_00\utilities\flash_programmers\serial_flash_programmer". I then opened a cmd window and typed in "serial_flash_programmer.exe -d f28003xD -k flash_kernel_ex3_sci_flash_kernel.txt flashapi_ex5_lfu_no_reset_F200839C.txt -b 9600 -p COM8 " and I get the following:

I get 41 == a5. According to other examples I see online a menu of options should appear. Can someone help me on how to flash this board using SCI? The Boot 0 switch (S3) for GPIO 24 is 0 and GPIO 32 is 1. Switch S2 is set to both 0. SEL1 is 0 and SEL2 is 0.

Edit: the a5 was a NAK response because I had the autobaud commented. When I uncommented it, the programmer freezes as shown below:

Edit: When I add -v I get the following:

Cheers,

  • Hi Scott,

    Can you confirm you are using the correct COM port? You can check this in Device Manager.

    Also, -d f28003xD should be -d f28003x in your serial_flash_programmer.exe command.

    Best,

    Alex

  • Hi Alex, 

    The COM Port is set correctly.

      

    and when I removed the 'D' from the f28003xD I get the same result. 

    However, when I power cycled the LAUNCHXL dev board and retried the serial flash programmer I get the following result:

    It looks like it sends the letter 'a' and it is then echoed back maybe. This will happen after every power cycle of the dev board.

    Cheers, 

    Scott

  • Hi Scott,

    Can you try erasing the flash on the device, then power cycling and trying to load the kernel?

    If that doesn't work, after a power cycle and before sending the kernel command, can you check the contents of the autobaud register from CCS?

    Best,

    Alex

  • Hi Alex, 

    I loaded only the flash_kernel_ex3_sci_flash_kernel (CPU1_RAM build configuration) and changed the Erase Settings to Erase entire (Properties->Debug->Flash Settings->Erase Settings->Erase Entire and I get the same response "aa". I ran the dev board in debug mode and noticed that if I run the program it will be blocked by the autobaud (The SCI_readCharBlockingNonFIFO function). However, if I use the serial programmer and send "serial_flash_programmer.exe -d f28003x -k flash_kernel_ex3_sci_flash_kernel.txt -a flashapi_ex5_lfu_no_reset_F200839C.txt -b 9600 -p COM8 -v " it will continue pass the autobaud and wait for a SCI message.

    Where would I find the autobaud register?

    Cheers, 

    Scott

  • Hi Scott,

    Are you using GPIO 28/29 for your SCI connection? What do you mean by debug mode (are you loading the kernel over JTAG)?

    The autobaud register can be found under SciaRegs:

    Best,

    Alex

  • Hi Alex, 

    The autobaud register is 0x0000, same as your image. 

    No, I am using the USB-C port as shown in the image below:

    I have Switch 3 (S3) GPIO 24 set to '0' and GPIO 32 set to '1'. Do I have to use the pins on the board to send the data? IO.24 and IO.32. And use a USB to serial adapter so I can connect to my computer?

    Cheers, 

    Scott

  • Scott,

    Your board looks OK.

    I ran the dev board in debug mode and noticed that if I run the program it will be blocked by the autobaud

    Are you saying you loaded the kernel through CCS and were able to successfully connect the host and see the menu options? The kernel will wait to autobaud with the host before continuing.

    Best,

    Alex

  • Hi Alex,

    I used JTAG debug to load the kernel (Built using the RAM build configuration) through CCS to see what line of code it would stop on. When I pressed pause in CCS it stopped on the SCI_readCharBlockingNonFIFO function, indicating it's waiting to receive a character (letter "a") for the autobaud; this was expected. 

    I could not see the menu options. 

    I then hit play and opened a terminal and entered "serial_flash_programmer.exe -d f28003x -k flash_kernel_ex3_sci_flash_kernel.txt -a flashapi_ex5_lfu_no_reset_F200839C.txt -b 9600 -p COM8 -v ". The terminal sent back the value "aa" and nothing else.

    When I paused the code in CCS again, the autobaud was complete (moved pass the SCI_readCharBlockingNonFIFO function) and was now waiting for data though SCI. 

    Cheers,

    Scott

  • Hi Scott,

    Can you try loading in debug mode, then running the same command using serial_flash_programmer_appln.exe and see if the menu shows up?

    Best,

    Alex

  • Hi Alex, 

    I am away from my office but will try that when I return on May 26th.

    Cheers,

    Scott