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.

TMS320F28379D: Serial flash programming

Part Number: TMS320F28379D
Other Parts Discussed in Thread: C2000WARE

Hi team,

I have a problem with serial flash programming. I am trying to use your demo c2000\C2000Ware_3_03_00_00\utilities\flash_programmers\serial_flash_programmer.

I had set up the device as it is denoted on application note SPRABV4C (Serial Flash Programming of C2000™ Microcontrollers) and I was trying to download the kernel to F28379D CPU1 through USB-UART converter. 

The PC application sends just one data frame and stop transmission and CPU don't respond. Always send the same byte, 0x41h and after that nothing happen. I checked two MCUs and I am sure that UART RxD and TxD have a direct connection to proper pins (GPIO28 and GPIO29). Both didn't respond to PC. Am I doing something wrong? Should I download the kernel to memory before bootload program via SCI?

Thank for help,

Best,

Mateusz Stasiak

  • I checked alternative SCI-A on GPIO28 and GPIO29. I debug sci_loopback_interrupts_cpu01 and everything seems to bo fine. My terminal sends and receives data but still bootloader doesn't work.

    Best,

    Mateusz Stasiak

  • Mateusz,

    A couple of questions:

    1. What hardware are you using? Is it custom or is it the TI ControlCARD? I hope it's not the LaunchPad because that doesn't support SCI Boot mode. If it's the ControlCARD, and you haven't yet configured OTP (which I don't think you would have in the development phase), you would need to set EMUBOOTCTRL (at address 0xD00) to 0x815a, so as to have the SCI ROM bootloader use GPIO pins 28, 29 for SCI. This would need to be done by connecting to CPU1 in CCS, making the modification, and then running CPU1.

    2. I presume you have set the boot mode to SCI Boot?

    3. Have you built the SCI Flash Kernel CPU01 with the argument SCI_BOOT_ALTERNATE to the SCI_GetFunction()? This also configures GPIOs 28, 29 for SCI.

    So the flow is in SCI Boot, the SCI ROM Bootloader would come up and then download the SCI Flash Kernel (CPU1) to RAM, pass control to this SCI Flash Kernel, which would then allow your Application to be downloaded to Flash.

    The process works fine for me on the F28379D ControlCARD in SCI Boot mode, with the steps I described above. It is not properly documented in C2000Ware, but I believe the _alt.txt represents the kernel built with the SCI_BOOT_ALTERNATE settings. You may want to be safe and build the project yourself, rather than use the prebuilt executable.

    The command I use is:

    serial_flash_programmer.exe -d f2837xD -k f2837xD_fw_upgrade_example\F2837xD_sci_flash_kernels_cpu01_alt.txt -a f2837xD_fw_upgrade_example\blinky_dc_cpu01.txt -b 9600 -p COM4

    Thanks,

    Sira

  • Hi Sira,

    Thank you for your reply.

    1. That's a custom board.

    2. Yes

    3. I built a kernel.txt with alternative SCI GPIO.

    When I soldered my USB-UART converter straight to basic SCI-A boot pins (GPIO 84,85) and everything works fine. But still I don't know why alternative SCI doesn't work. Maybe it depends on the layout on my PCB.  

    Best,

    Mateusz Stasiak

  • Mateusz,

    Can you please try this?

    "set EMUBOOTCTRL (at address 0xD00) to 0x815a, so as to have the SCI ROM bootloader use GPIO pins 28, 29 for SCI. This would need to be done by connecting to CPU1 in CCS, making the modification, and then running CPU1."

    Thanks,

    Sira

  • Sira,

    It doesn't work. I set that register and run CPU1 and PC application can't connect with the core. 

    SCIA-boot0 works so I don't need to make it work for alternative SCI input. 

    Thank you for your help.

    Mateusz 

  • Mateusz,

    To make it work with the alternative SCI pins, those special steps are needed (unless OTP is programmed). I am sending a detailed doc. in case you are interested.

    But based on what you said, you were able to get it to work with the GPIO 84, 85.

    So I will mark the issue as resolved.

    Thanks,

    SiraUsing_F2837xD_SCI_Flash_Kernels_v2.docx