Because of the holidays, TI E2E™ design support forum responses will be delayed from Dec. 25 through Jan. 2. Thank you for your patience.

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.

TMS320F28377D: TMS320F28379D

Part Number: TMS320F28377D
Other Parts Discussed in Thread: C2000WARE

Hi All

I want to download firmware to flash with USB. I find that it need to make MCU get into usb boot mode. the method is as follow.

Reset the MCU, then write 0x0C5A to the boot mode select address (0xD00) with the debugger.

My question is that how to achieve that?  how to reset the MCU? use hardware bottom or software register? and how to write value to register? can these action achieve by firmware?

Best Regards

Pengfei

  • Please use CCS to write to the EMU boot address with 0xC5A using the memory browser window of CCS.

    1) Connect via CCS.
    2) Write the boot mode to the EMU boot address.
    3) Perform a debugger reset.
    4) Run the CPU.

    The device should be in USB boot mode at this point.

    If you want to perform this in standalone, you will need to read the Boot ROM chapter of the Technical Reference Manual.

    You can do one of two things:
    1) You can program GET Mode to make the device boot to USB bootloader.
    2) You can make a function callto the USB bootloader function in ROM from your firmware after receiving some signal to run the USB bootloader.

    Hope this helps,
    sal
  • Hi Sal

    Great Thanks for your patient guidance. I can get into USB boot mode now, but I still have a issue. My PC cannot identify the USB device correctly, shown as below picture. I have try the following method.

    1. update the usb driver (the path is C:\ti\C2000Ware_1_00_06_00_Software\utilities\flash_programmers\usb_flash_programmer\windows_driver). 

    2. uninstall the device and scan again

    3. restart the computer.

    My OS is win 10. Could you please give me some advice about it?

    Best Regards & Thanks

    Pengfei

  • Hi Pengfei,

    This may be one of three things.

    1) You need confirm you are running the USB bootloader. You can do this with the debugger connected if you are using EMU (emulation) boot.

    2) I believe we have updated the Windows drivers. Please download the latest available C2000Ware and use the latest windows drivers.

    3) Which silicon version are you using? What is the revision of the silicon device? There was a bug caught in the first samples of the device that would prevent enumeration. This has been fixed in later revision.s

    sal

  • Hi Sal

    Great thanks for your patient apply.

    I have tried to download the latest C200Ware (2.00.00.02). the issue is still there. The mark on my silicon's is TMS320 F28075PTPT YFC-81A41JW G4. Could you please help me check whether it is issue vision?

    The way I get silicon into USB boot mode is as below.

    change the value in address 0xD00 from 0x35C to 0xC5A by Memory Browser.

    restart and reset the MCU by CCS restart and reset button.

    connect USB cable to PC, the PC can identify a device but not correct.

    whether disconnect debugger or not, the result is the same.

    if there is some issue when I configure the silicon in USB boot mode? How can I confirm if the silicon is running in the USB boot loader?

    Best Regards

    Pengfei

  • Hi Sal

    After I configure GPIO72 and GPIO84 to Parallel I/O mode, SCI mode and wait mode, the silicon can be identify as TMS320F28x7x USB Boot Loader, shown as below picture. But use usb_flash_programmer tool, there is still 0x0103 error.

    I think I am closing to the success.

    which mode do I need to configure when I want to download firmware to flash by USB?

    Is there any other configuration do I need to take care of?

  • Hi Sal

    After I configure GPIO72 and GPIO84 to Parallel I/O mode, SCI mode and wait mode, the silicon can be identify as TMS320F28x7x USB Boot Loader, shown as below picture. But use usb_flash_programmer tool, there is still 0x0103 error.

    I think I am closing to the success.

    which mode do I need to configure when I want to download firmware to flash by USB?

    Is there any other configuration do I need to take care of?

  • Hi,

    I am glad you got it confirgured and enumerated.

    USB is not a fault boot mode, to get to USB boot mode you need to either program GET MODE or call the bootloader from your application. You can add the Boot ROM symbols to your CCS project and make a function call to the USB bootloader ROM function.

    There should be nothing else you can do to the board.

    You should make sure you get the bootloader working first before integrating it into your system.

    sal

  • Hi Sal

    Great thanks for your apply.

    Could you please recommend some documents related with TMS320F2837x flash program with USB?

    Best Regards and Great Thanks

    Pengfei

  • Hi Pengfei,

    Unfortunately, we do not have such documents at this time. We are planning on creating them at a later date.

    For now, you can view this Application Report which is related.

    www.ti.com/lit/sprabv4

    sal

  • Hi Sal

    Thank you very much for your help.

    With your help, I can download demo firmware(blinky_cpu01.dat) to silicon and function is correct now.

    But if I do some change on blinky project and regenerate *.out and *.dat file, The download is successful but the function is not correct(the LED is not blinky).

    I think there is something wrong with blinky project configuration. I updated my blinky project as attached file, Could you please help me review it and give me some advice? Do you have some document about how to configure a project which need to download from USB?

    Best Regards & Thanks

    Pengfei

    0451.blinky_cpu01.zip

  • Hi,

    We cannot review entire files or projects.

    Are you just loading a RAM application into RAM using the bootloader or are you using the USB flash kernel.

    If you are just using the USB bootloader, you need to ensure your application resides only in RAM since it is not equipped with the flash API to erase and program flash.

    If you are using the USB flash kernel and loading a flash application, then you need to ensure the entire flash application resides in flash. This may be part of your problem. If any section is linked to load to RAM, it will not get programmed by the flash programmer.

    sal

  • Hi Sal

    The issue I meet is that when I download the .dat file support by TI example, the result is correct. But when I do some change and rebuild the blinky project and download it, there is no function on the silicon.

    The method I used is downloading and running usb_flash_kernels project on silicon firstly. Secondly download .dat file of blinky project by usb_flash_programmer.exe. The blinky project is verified work well by JTAG download method and the blinky project is configured to flash download mode.

    usb_flash_kernels project is download to RAM. Do I need to download it to flash? Could you please recommend some documents about this issue?

    I think I am closing to the success, May be there is some configuration is incorrect.

    Best Regards& Great Thanks

    Pengfei

  • Hi Pengfei,

    Unfortunately, we do not have such documents at this time. We are planning on creating them at a later date.

    For now, you can view this Application Report which is related.

    the usb flash kernel needs to be run from RAM. It appears you are doing this correctly.

    Can you confirm that all load sections are linked to load to flash in the blinky project? This must be so, for the usb flash kernel to program it properly.

    sal

  • Please confirm the blinky is loaded to flash yourself by observing the .map file.

    sal

  • Hi Sal

    Great Thanks for your help before.

    I can download self build blinky program by using write 0xC5A at address 0XD00 and download kernal and blinky firmware simultaneously.

    My final target is that after pushing some button, the silicon can get into usb boot-load mode and I can down load firmware with usb cable.

    Can I achieve this target by using silicon boot load(write 0xC5A at address 0XD00).

    Can I write flash (address 0xD00) in firmware?

    how can I reset the silicon in this case?

    Do you have some documents or some advice about it?

    Best Regards & Great Thanks

    Pengfei

  • Hi,

    You can achieve this by making a function call into the USB bootloader which resides in ROM. Just include the ROM symbols from C2000Ware into your project and make a function call to the USB_Boot function.

    There are other E2E threads on this which should also help you out.

    Regards,

    sal