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/UNIFLASH: Version 5.1.0.2397 - Can't program multiple chips when multiple XDS200 devices are plugged into the same PC - only 1 device works.

Part Number: UNIFLASH
Other Parts Discussed in Thread: TMS320F28377D,

Tool/software: Code Composer Studio

We are upgrading from version 3.4 to 5.1 on a station that has multiple XDS200 devices hooked up trying to program multiple TMS320F28377D devices.  We have used 5.1 on single-up stations w/o issue.

Using the UniFlash GUI I can program one of the 4 boards (the one that corresponds to index 0) but not the other 3.  And I can use dslite (like explained below) when all 4 are hooked up but only index "0" works.

Some details:

  • When programing in a multi-up setup, we use the “xds2xx_conf.exe” file to try to figure out which programmer “index” is connected to which board.  This exe works fine w/ 3.4 but it doesn’t seem to work properly w/ 5.1  We call this exe w/ params: “get xds2xxu 0” (and then 1, 2, 3 for the 4 positions in the station) and parse the output to map the programmer to head (since the index value can change when rebooting the PC or power-cycling the programmer).  When this is called w/ 5.1 the exe hangs for 1,2,3 and doesn't output anything.  I was able to replicate the issue manually – running “xds2xx_conf.exe get xds2xxu 1” (“xds2xx_conf.exe get xds2xxu 2” or ““xds2xx_conf.exe get xds2xxu 3”) will not output any information and will hang (I have to ctrl+D to stop the exe).  “xds2xx_conf.exe get xds2xxu 0” works fine.
  • Once we know which “index” corresponds to which programmer, we use the dslite exe/bat to program each board.  We pass the following the parameters: “--log DSP_PLC1_Load_Log.txt --verbose --config "DSPConfig_X.ccxml" --core 1 --flash XYZ.srec -r 1”.  The “DSPConfig_X.ccxml” is different for each position and the X corresponds to the “Index”.   The ccxml file is only slightly different between each file on the following lines:
    • “<instance XML_version="1.2" desc="Texas Instruments XDS2xx USB Debug Probe_0" href="connections/TIXDS2XXUSB_Connection_0.xml" id="Texas Instruments XDS2xx USB Debug Probe_0" xml="TIXDS2XXUSB_Connection_0.xml" xmlpath="connections"/> <connection XML_version="1.2" id="Texas Instruments XDS2xx USB Debug Probe_0">”
    • As part of this I had to copy the “TIXDS2XXUSB_Connection.xml” file and create new ones with _0, _1, etc. in the connections folder.   Each file was only slightly different – I changed the Value parameter in the line below to match the index (this is what we did for 3.4).
      • <property desc="Debug Probe I/O Port Number" Type="stringfield" Value="1" id="portAddr1" ID="USCIF.ECOM_PORT"/>

 I have replicated this on both Windows 7 and 10.  Thanks.

  • Hello David,
    I believe I can reproduce the issue. In the same directory as xds2xxx_conf.exe, can you run:

    > xds2xxx_portchk.exe

    The output should looks something like:

    Next, when running the xds2xx_conf.exe utility, try passing in the specific port address instead of the generic one. For example, in my environment I would do something like the below for the second XDS200 probe.

    > xds2xxx_conf.exe get xds2xxu 0x6a

    This works for me while the below does NOT:

    > xds2xxx_conf.exe get xds2xxu 1

    It looks like there are issues using the generic address in recent versions of the tools (CCS & UniFlash). In your ccxml file, replace the generic port address with the specific one. See if that works. It appears to have resolved the issue for me.

    Thanks

    ki

  • UPDATE: I fixed some typos in my original post, hence go to the actual form post to read the content instead of the information in the e-mail notification.

    Thanks

    ki 

  • ki, thanks for the response.  I will try to code that up but I do have a question - how does one specify the specific address in the ccxml file?  Currently we had to use a different Connection.xml file for each CCXML file but that doesn't seem very straight forward.  Is their a better way?

  • I assume you want to do this without using the CCS GUI at all.

    You shouldn't have to modify TIXDS2XXUSB_Connection.xml. In the main ccxml file, inside the connection field, I believe you can add additional property like:

    <property Type="choicelist" Value="1" id="Debug Probe Selection">
    <choice Name="Select by port number" value="1">
    <property Type="stringfield" Value="0x6a" id="-- Enter the port number"/>
    </choice>
    </property>

    When I use the Target Configuration Editor GUI to specify the specific port number, the above is added to the ccxml file.

    The above will allow me to connect to the second XDS200. I tested this in CCSv9.2. But I need to confirm on UniFlash.

  • Update: The ccxml file that successfully works in CCSv9.2.0 seems to have issues when running in UniFlash. It seems to always default to the probe on port 0. I'm curious if you see the same issue. 

  • Yes, the 2 don't seem to jive well.  I've tried adding what you had in your earlier post to the ccxml before and it errored on me.  It didn't like this "property" field - I was wondering if I put it in the wrong spot or something.  The only way we could get this work w/ 3.4 was to create multiple connection.xml files in the connections folder.  I was hoping there was a better way of doing this.  Can you paste what your CCXML file looked like just so that I can look it over?

  • David Beaudreau said:
    Can you paste what your CCXML file looked like just so that I can look it over?

    Attached is my working ccxml file in CCS:

    /cfs-file/__key/communityserver-discussions-components-files/81/xds200_5F00_28377d.ccxml

  • David Beaudreau said:
      It didn't like this "property" field

    Is it something like:

    "Cannot read property 'nodeValue' of undefined"?

  • I get:  "

    0x00002900 10 3  JSON R: {"data":{"message":"Cannot read System Setup data from XML file C:\\CSHARPCES\\TI UniFlash Files\\DSPConfig_0.ccxml\nError parsing file:\nError at (18, 22): Element 'property' is not valid for content model: '((include,instance,connectionType,((property|),),drivers),platform)'","messageAlreadyReported":false},"error":0}

  • This is using dslite? If so, please attach the ccxml file.

  • DSPConfig_0.zip

    I have attached a sample file that fails.

  • At this point I have resolved the issue, or at least gotten around the strange behavior of UniFlash.  I am doing it in a very similar way that worked w/ 3.4 - I created multiple connection.xml files (for the XDS2XXUSB device) based upon the one that is installed w/ UniFlash.  And each ccxml refers the different connection files.  And in each connection file I am specifying the specific address, not the generic address like in 3.4.  I have attached a zip file that has a sample of each file.  While I wish it were easier this does get around the issue.  Thanks for the help.Sample Files.zip

  • Hi David,

    That is good to hear! I was wondering if you can confirm one thing for me. When I add the specific port number in the ccxml file, dslite seems to ignore it and just go to generic port number 0 everytime. I noticed this because my XD200 probes are connected to different targets. Since your probes are connected to the same target, it may not be noticeable initially (if the issue exists in your environment). Please confirm that dslite is connecting to the correct probe/target when you run it. If it is all good, then perhaps your technique or having separate connection xml files is the workaround for the issue I'm hitting with the ccxml file.

    Thanks

    ki

  • Ki said:
    Please confirm that dslite is connecting to the correct probe/target when you run it. If it is all good, then perhaps your technique or having separate connection xml files is the workaround for the issue I'm hitting with the ccxml file.

    I tried your technique of the separate connection xml files for each port number and it seems to work well for me too. Looks like your method works. I'll still push for a fix so that you can just have all the information in the ccxml file, but in the meantime stick to your method.

    Thanks

    ki

  • David Beaudreau said:

    DSPConfig_0.zip

    I have attached a sample file that fails.

    The <property> stuff needs to come before the <platform> stuff. Like so:

    /cfs-file/__key/communityserver-discussions-components-files/81/DSPConfig_5F00_0a.ccxml

    That is a valid ccxml file... for CCS. But note the issues I was mentioned with dslite. Hence stick to your current environment until we can get fix the issue with the port address in the ccxml file for dslite.

    Thanks

    ki

  • It turns out that there is a compatibility issue with using ccxml files generated from CCSv9.2.0 with UniFlash 5.1.0. CCSv9.2.0 came out after UniFlash 5.1.0 and introduces some format changes to the ccxml file for XDS200 that is not supported in UniFlash 5.1.0 (or CCSv9.1.x and earlier). Since I was creating my ccxml files in CCSv9.2.0 and running them with dslite in UniFlash 5.1.0, I was hitting this compatibility issue. Note that UniFlash 5.2.0 does support these changes and my ccxml files from 9.2.0 work fine with UniFlash 5.2.0. 

    If you do move to 5.2.0, please keep in mind that the TIXDS2XXUSB_Connection.xml is different. But again, I would start exploring just making your tweaks to the ccxml file (now that we have a firm grasp of what the issues are) and leave the TIXDS2XXUSB_Connection.xml file alone

    Thanks for all your patience on this

    ki

  • Ki said:
    Note that UniFlash 5.2.0 does support these changes and my ccxml files from 9.2.0 work fine with UniFlash 5.2.0. 

    Also, UniFlash 5.2.0 can handle the older format from ccxml files created by an older CCS version.

  • Can you please attach or show a CCXML file that specifies the port address and is compatible w/ 5.1.  We likely will not upgrade to 5.2 unless we are forced to.  Thanks.

  • Attached is a CCXML for F28377D with CCSv9.1. It should be compatible with UniFlash 5.1 (worked for me).

    /cfs-file/__key/communityserver-discussions-components-files/81/xds200_5F00_28377d_5F00_91.ccxml

    Simply modify the port address number in line 10 to match your environment:

                <property Type="stringfield" Value="0x12" id="portAddr1"/>

    Please give it a try and let me know how it goes.

    Thanks

    ki