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.

CCS/TMS320F2808: XDS100v3 by Olimex could not erase nor load the flash

Part Number: TMS320F2808


Tool/software: Code Composer Studio

Hello folks,

I'm using:

  • Olimex XDS100v3 emulator
  • Code Composer Studio v5.5
  • Windows 7 x64
  • custom made TMS320F2808 board

I've purchased an Olimex XDS100v3 emulator since official XDS100v3 site specified it as a valid product. I've installed CCS v5.5 and got started with my development. I've set an Target Configuration according to the instuctions from Olimex.

"Test connection" went in order for all chosen frequencies, as well as 1149.1 and 1149.7 options. However, the flashing of the program did not work. The flash memory couldn't get erased nor loaded. I got an error saying: C28xx: Flash Programmer: Error encountered when writing to flash memory. I've found cca million of reasons on Internet for possible cause of this error, from depletion recovery algorithm timeout to CLM locking... Using my collagues XDS100v2 programmer this was nat an issue. Apparently, Olimex programmer doesn't work...

Anyways, I looked into the XML files and saw that CCS always invokes xds100v2 driver instead of v3. For instance, ccxml (target configuration) file specifies:

<instance XML_version="1.2" href="drivers/tixds100v2c28x.xml" id="drivers" xml="tixds100v2c28x.xml" xmlpath="drivers"/>

See? The driver specified is "tixds100v2c28x.xml". Also, this file specifies connection type ""TIXDS100v2". So, my question is, does CCS even know about XDS100v3?

However, I tried to directly link my emulator using serial number. So, in Target Configuration, Advanced tab, I've set "Emulator selection" to "Select by serial number". Using program ccsv5\ccs_base\common\uscif\xds100serial.exe I found out that serial no. is FT1DTCS7 and started debugging anew. It seems that it has helped. Erasing and flashing work normally, and I enter the debugging mode seemingly fine. Is it supposed to be done this way, or is it just a hack what I did?

Regards,

  • Hello Pero,

    Pero Krivic said:

    Anyways, I looked into the XML files and saw that CCS always invokes xds100v2 driver instead of v3. For instance, ccxml (target configuration) file specifies:

    <instance XML_version="1.2" href="drivers/tixds100v2c28x.xml" id="drivers" xml="tixds100v2c28x.xml" xmlpath="drivers"/>

    See? The driver specified is "tixds100v2c28x.xml". Also, this file specifies connection type ""TIXDS100v2". So, my question is, does CCS even know about XDS100v3?

    This is not necessarily incorrect since there are many commonly shared files between XDS100v2 and XDS100v3

    Pero Krivic said:
    However, I tried to directly link my emulator using serial number. So, in Target Configuration, Advanced tab, I've set "Emulator selection" to "Select by serial number". Using program ccsv5\ccs_base\common\uscif\xds100serial.exe I found out that serial no. is FT1DTCS7 and started debugging anew. It seems that it has helped. Erasing and flashing work normally, and I enter the debugging mode seemingly fine. Is it supposed to be done this way, or is it just a hack what I did?

    You should (normally) only need to enter the serial number if you have more than one XDS100 connected to your PC at the same time (did you?). Otherwise it should not matter.

    One note - CCSv5.5 is pretty old. I would strongly recommend updating your version, which would come with a newer version of the XDS100 drivers. This may help resolve some of the inconsistencies and stability issues

    Thanks

    ki

  • Ki-Soo Lee said:

    You should (normally) only need to enter the serial number if you have more than one XDS100 connected to your PC at the same time (did you?). Otherwise it should not matter.

    Well, I'm not so sure about that. It was a gamechanger in my project. So, latest CCS vesrsion, should bee free of all these quirks?

  • In a multi-XDS100 environment (meaning you have multiple XDS100s connected to your computer at the same time), you will always need to differentiate by serial number. This is still the case in current version.

    I recommend moving to the latest CCS version because there has been many CCS and debug probe driver enhancements and bug fixes since your version. And CCSv5.5 is no longer supported.

  • So, I did what you told me and installed CCS v7.1.0. However, it did not solved the problem and my previous hack didn't work.

    After searching for a while the the possible options, I checked the debug settings and changed PLLCR value to 2. After that, both erase and flash worked normally, with and without serial number choice.

    I am happy that issue is solved, but I'd also like to know what PLLCR value has to do with flashing process. Isn't it just a setup for system clock when the chip is in the "working mode"?
  • Well I am happy you found the solution to your problem. Though I am still confused why it was specific to your debug probe.

    As for the impact of changing PLLCR to 2, I don't have an answer. I would recommend posting in the C2000 forum. The experts there will know best.

    Thanks
    ki