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.

TMS320F28P650DK: SCI bootloader

Part Number: TMS320F28P650DK
Other Parts Discussed in Thread: C2000WARE

Hi,

I am working on implementing an SCI bootloader on TMS320F28P650DK6.

In the C2000Ware examples, I see two projects:
1. serial_flash_programmer
2. serial_flash_programmer_appln

I would like to understand clearly:
- What is the functional difference between these two?
- Which one is intended to run on the PC (host) and which one runs on the target device?
- When using the command line to send a firmware image over SCI, should I be using serial_flash_programmer?

My current understanding is that serial_flash_programmer is the host tool and serial_flash_programmer_appln runs on the MCU, but I would like confirmation.

Thanks in advance!

Ranjith

  • when i try with serial_flash_programmer.exe

    C:\ti\c2000\C2000Ware_5_04_00_00\utilities\flash_programmers\serial_flash_programmer>serial_flash_programmer.exe -d f28p65xD -k flash_kernel_c28x_dual_ex1_c28x1.txt -a P650_CLB_CPU1_BRAKE.txt -p COM5

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

    getting comm state
    building comm DCB
    adjusting port settings

    calling f021_DownloadKernel CPU1 Kernel
    Downloading flash_kernel_c28x_dual_ex1_c28x1.txt to device...

    aa==aa
    8==8
    0==0
    0==0
    0==0
    0==0
    0==0
    0==0
    0==0
    0==0
    0==0
    0==0
    0==0
    0==0
    0==0
    0==0
    0==0
    0==0
    0==0
    0==0
    0==0
    0==0
    2==2
    0==0
    0==0
    0==0
    0==0
    0==0
    41==41
    0==0
    d4==d4
    2f==2f
    18==18
    0==0
    0==0
    0==0
    b2==b2
    1==1
    1==1
    0==0
    1==1
    0==0
    0==0
    0==0
    f==f
    0==0
    6e==6e
    0==0
    f0==f0
    ff==ff
    40==40
    32==32
    1==1
    0==0
    a0==a0
    2e==2e
    1==1
    0==0
    64==64
    32==32
    1==1
    0==0
    0==0
    0==0
    0==0
    0==0
    c==c
    0==0
    0==0
    0==0
    b2==b2
    1==1
    0==0
    0==0
    aa==aa
    43==43
    1==1
    0==0
    be==be
    1==1
    0==0

    it is continuously printing 


    but when i tried with serial_flash_programmer_appln.exe this is what happening

    C:\ti\c2000\C2000Ware_5_04_00_00\utilities\flash_programmers\serial_flash_programmer>serial_flash_programmer_appln.exe -d f28p65xD -k flash_kernel_c28x_dual_ex1_c28x1.txt -a P650_CLB_CPU1_BRAKE.txt -p COM5

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

    getting comm state
    building comm DCB
    adjusting port settings

    What operation do you want to perform?
    1-DFU CPU1
    2-DFU CPU2
    3-Erase CPU1
    4-Erase CPU2
    5-Verify CPU1
    6-Verify CPU2
    7-Unlock CPU1 Zone 1
    8-Unlock CPU1 Zone 2
    9-Run CPU1
    10-Reset CPU1
    0-DONE
    1

    calling f021_SendPacket
    Downloading P650_CLB_CPU1_BRAKE.txt to device...
    ^C
    C:\ti\c2000\C2000Ware_5_04_00_00\utilities\flash_programmers\serial_flash_programmer>

  • Hello,

    The only difference between serial_flash_programmer_appln.exe and serial_flash_programmer.exe is that the "appln" version assumes the kernel is already executing on the device and sends the application only. Thus, if you need to send the kernel and the application, you would use serial_flash_programmer.exe.

    You can specify a higher baudrate with the "-b" parameter. Please see Section 6.2 for more details here: https://www.ti.com/lit/an/sprabv4/sprabv4.pdf

    Best,
    Matt

  • Hi,

    Thanks for the confirmation 
    With serial_flash_programmer.exe i have done sci booting in EMU 


    i have changed the default SCI pin to GPIO42 and 43
    so i have written 0x61
     
    This is working


    so i tried in OTP by writing gpreg3 with 0x03026100 
    it has programmed successfully 
    but sci default pins are not changed to GPIO42 and 43

     



    so i have tried to change the GPREG1 register with 5AFF4854 
    it is not programming

     

    what should i do to change the SCI default pin to gpio42 and 43.

    Any Suggestions or guidlines would be appreciated.

    Thanks in advance!

    Regards,

    Ranjith

  • Hello,

    If you wish to program non-default boot configurations in the OTP, you need to program both GPREG1 (BOOTPIN-CONFIG) and GPREG3/4 (BOOTDEF-LOW/BOOTDEF-HIGH). Programming GPREG1 is necessary since the 0x5A key in the upper 8-bits indicates to the Boot ROM that OTP boot configs are programmed. For more details, please refer to Chapter 2.1 Standalone Boot in SPRUJH3.

    What is the value in GPREG1 (0x78008) in memory?

    Best,
    Matt

  • Hi,

    Thanks for the reply,
    starting i haven't changed  gpreg1 
    so it was 0xFFFFFFFF while programming 


    but after that i have changed and tried with 0x5AFF4854 but it was not programming

    Thanks in advance!

    Regards,

    Ranjith

  • Hello,

    Are you unable to in CCS with the On-Chip Flash tool? Do you have other F28P65x units to test if you can program both GPREG1 and GPREG3 at the same time?

    Best,

    Matt

  • Hi,

    Thanks for the reply,

    only GPREG1 and GPREG3 is sufficient 

    i will write 0x5Aff4854 in GPREG1 and 0x03026100 in GPREG3

    is this ok or not

    Thanks in advance!

    Regards,

    Ranjith

  • Hello,

    Yes, that looks good. Please ensure only BMSP0 (GPIO84) is '1' to select SCI boot (0x61).

    Best,
    Matt