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.

xds200 uart connection only while debugging.

Other Parts Discussed in Thread: TMS320F280023C, LAUNCHXL-F280025C, SYSCONFIG

Hi

We have created a target where we routed one of the devices uart out into the jtag connector.

The target is based on TMS32F28003c

I use a XDS200 from Sprectrum Digital.

I use the latest CCS

I have managed to setup the debugger so that I get messages sendt from my target into a serial terminal.

But only as long as there is an active debugging session.

When i flash SW into the target, I see the first messages popping up on the serial terminal. but as soon as the debug session (opened by the flash routine in CCS) closes down terminal is silent.

If I start a debug session, and let the processor free run, the messages keeps popping up in the serial terminal. until I send the debug session, then it turns silent again.

I tried different setting for the debugger with no luck so far.

Below you my target config and the output from test connection.

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<configurations XML_version="1.2" id="configurations_0">
<configuration XML_version="1.2" id="Texas Instruments XDS2xx USB Debug Probe_0">
        <instance XML_version="1.2" desc="Texas Instruments XDS2xx USB Debug Probe_0" href="connections/TIXDS2XXUSB_Connection.xml" id="Texas Instruments XDS2xx USB Debug Probe_0" xml="TIXDS2XXUSB_Connection.xml" xmlpath="connections"/>
        <connection XML_version="1.2" id="Texas Instruments XDS2xx USB Debug Probe_0">
            <instance XML_version="1.2" href="drivers/tixds560icepick_c.xml" id="drivers" xml="tixds560icepick_c.xml" xmlpath="drivers"/>
            <instance XML_version="1.2" href="drivers/tixds560c28x.xml" id="drivers" xml="tixds560c28x.xml" xmlpath="drivers"/>
            <property Type="choicelist" Value="2" id="The cJTAG / SWD Features">
                <choice Name="cJTAG (1149.7) 2-pin advanced modes" value="enable">
                    <property Type="choicelist" Value="0" id="The Target Scan Format"/>
                <property Type="choicelist" Value="1" id="XDS200 User Port"/>
                </choice>
            </property>
            <property Type="choicelist" Value="1" id="The JTAG TCLK Frequency (MHz)">
                <choice Name="Adaptive with user specified limit" value="ADAPTIVE">
                    <property Type="stringfield" Value="20.0MHz" id="-- Enter a value from 0.5MHz to 20.0MHz"/>
                </choice>
            </property>
            <property Type="choicelist" Value="0" id="The JTAG Signals Isolation Upon Disconnect"/>
            <platform XML_version="1.2" id="platform_0">
                <instance XML_version="1.2" desc="TMS320F280023C_0" href="devices/f280023c.xml" id="TMS320F280023C_0" xml="f280023c.xml" xmlpath="devices"/>
            </platform>
        </connection>
    </configuration>
</configurations>

[Start: Texas Instruments XDS2xx USB Debug Probe_0]

Execute the command:

%ccs_base%/common/uscif/dbgjtag -f %boarddatafile% -rv -o -S integrity

[Result]


-----[Print the board config pathname(s)]------------------------------------

C:\Users\u246135\AppData\Local\TEXASI~1\
    CCS\ccs1010\2\0\BrdDat\testBoard.dat

-----[Print the reset-command software log-file]-----------------------------

This utility has selected a 560/2xx-class product.
This utility will load the program 'xds2xxu.out'.
The library build date was 'Jun 25 2021'.
The library build time was '16:23:59'.
The library package version is '9.4.0.00129'.
The library component version is '35.35.0.0'.
The controller does not use a programmable FPGA.
The controller has a version number of '13' (0x0000000d).
The controller has an insertion length of '0' (0x00000000).
This utility will attempt to reset the controller.
This utility has successfully reset the controller.

-----[Print the reset-command hardware log-file]-----------------------------

This emulator does not create a reset log-file.

-----[Perform the Integrity scan-test on the JTAG IR]------------------------

This test will use blocks of 64 32-bit words.
This test will be applied just once.

Do a test using 0xFFFFFFFF.
Scan tests: 1, skipped: 0, failed: 0
Do a test using 0x00000000.
Scan tests: 2, skipped: 0, failed: 0
Do a test using 0xFE03E0E2.
Scan tests: 3, skipped: 0, failed: 0
Do a test using 0x01FC1F1D.
Scan tests: 4, skipped: 0, failed: 0
Do a test using 0x5533CCAA.
Scan tests: 5, skipped: 0, failed: 0
Do a test using 0xAACC3355.
Scan tests: 6, skipped: 0, failed: 0
All of the values were scanned correctly.

The JTAG IR Integrity scan-test has succeeded.

-----[Perform the Integrity scan-test on the JTAG DR]------------------------

This test will use blocks of 64 32-bit words.
This test will be applied just once.

Do a test using 0xFFFFFFFF.
Scan tests: 1, skipped: 0, failed: 0
Do a test using 0x00000000.
Scan tests: 2, skipped: 0, failed: 0
Do a test using 0xFE03E0E2.
Scan tests: 3, skipped: 0, failed: 0
Do a test using 0x01FC1F1D.
Scan tests: 4, skipped: 0, failed: 0
Do a test using 0x5533CCAA.
Scan tests: 5, skipped: 0, failed: 0
Do a test using 0xAACC3355.
Scan tests: 6, skipped: 0, failed: 0
All of the values were scanned correctly.

The JTAG DR Integrity scan-test has succeeded.

[End: Texas Instruments XDS2xx USB Debug Probe_0]

  • Hi Martin,

    The debug probe enables the communication over UART only when debug is active. Your observations are in line with the expected behavior.

    Thanks,
    Ashwini

  • That sound a lot like a bug that became a feature.

    The same setup work fine using an XDS110.

    I can't think of a good reason why the uart functionality should deliberately be turned of when no debug session running.

    Could the XDS200 developers please push a firmware update that fixes this featured bug.

  • Hi Martin,

    I will pass this request along to the CCS Tools team.

    Thanks,

    Ashwini

  • Martin,

    It is true that we are certainly spending more time on XDS110 these days but the XDS200 is still supported.  The firmware used is common across the 2 different vendors (Blackhawk and Spectrum Digital).

    In your scenario above are you using a standalone XDS110 or is this one built onto a LaunchPad/controlCARD?  i.e. are both the XDS200 and the XDS110 both being connected via a JTAG header or is one built onto the board.

    Regards,

    John

  • The XDS110 is build into a launcpad.

    Should I expect different behavior from a stand alone version?

  • Martin,

    Can you explain in more details your current setup?

    I am assuming that you have a custom F280023C board with a JTAG header on it. Is that correct? If so, what type of header? cTI 20-pin?

    When you mention using an XDS110 that is built on to a launchpad (which one?), I assume you are using that as an external debug probe that would connect to the JTAG header of your custom board. Is that correct?

    We have created a target where we routed one of the devices uart out into the jtag connector.

    And how did your configure your board for the above?

    Thanks

    ki

  • Sure I can.

    On our own target we have a small connector with only six pins (space restraint) in this connector we have

    vcc + gnd
    Uart tx + rx
    Jtag TCK + TMS

    We then have a small custom made adapter converting to ARM-20 pin I think it is named, hat is then connected to the XDS200 using the addaptor delivered with the debugger.

    I have not tried connecting the XDS110 build into the launchpad (LAUNCHXL-F280025C) to my own target, that would have been my next step if I had not gotten the answer from Ashwini that this was expected behavior. And I can still try this out if that can help.

    Not sure what you are asking for, but I configured the board for normal serial communication using sysconfig and driverlib. I did try different baudrates to rule out a limitation there.

    With all the questions on my setup, I just want to stress that I do have communication working, so the hardware connections is working. It is just the fact that XDS200 closes communication as soon as debug session ends.

    Also woth mentioning here is that I am not using the debugger-CIO thing in CCS (that would also steal one more of the very limited breakpoints)

    I have the User UART port of the XDS's connected to a normal serial terminal program.

  • So how is the UART tx + rx connected to the XDS200?  The standalone XDS200 has no way to connect that as far as I know.  There are "embedded" xds200 designs on some of our processor EVMs that have that connection.  https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/709983/ccs-tms320f28069-xds200-uart-not-working

    THe XDS110 embedded on the LaunchPad would have the UART tx and rx connected.  And the standalone XDS110 has an auxiliary connector and breakout board that allows you to connect it.

    https://www.youtube.com/watch?v=GV1h61JyzcE

    John

  • rx, tx is connected to the TDI, TDO signal on ARM-20 connector.

    I have seen that post too, and it makes not much sense to me. As i do have serial communication working.

    When I connect my XDS200 to my PC usb port i get two devices.

    1. XDS2xx Emulator CDC Serial Port (COM7)
    2. XDS2xx User CDC Serial Port (COM6)

    Using teraterm I connect to COM6.

    There is no communication on COM6

    I start a debug session in CCS, and let is free run.

    Now there is communication on COM6 in my teraterm.

    The communication is coming from the UART on the f280023C UART, where I have a small test-monitor running.

    I now end the debug session in CCS.

    The teraterm session is now again silent, no more communication on COM6.

    So the XDS200 is clearly able to transport the serial data from TDI/TDO to and from COM6, but for some reason it stops doing that if the debug session running on COM7 is ended.

    If I do the same on the XDS110 build into the LAUNCHXL-F280025C i again get two serial ports.

    1. XDS110 Class Application/User UART (COM8)
    2. XDS110 Class Auxiliary Data Port (COM4)

    I connect my teraterm to COM8

    Communication is flowing

    I start a debug session on CCS, communication on COM8 is still flowing

    I end the debug session on CCS, communication on COM8 is still flowing.

    And yes If I look into the schematics of the launchpad the serial port is not connected to the pins marked XDS_TDI/XDS_TDO, but to XDS_RXD/XDS_TXD on the U2 processor. How that maps to a standalone XDS110 I do no know yet.

    I have ordered a standalone XDS110, to see if that works more like i want it to.

  • Hi Martin,

    I just want to confirm that you are using the standard SD XDS200 and NOT the SD XDS220, correct?

    I have seen that post too, and it makes not much sense to me. As i do have serial communication working.

    There is a little confusion on our part also but we will certainly take your word for it that it works. Sorry for the delay as we try to get things sorted out on our end.

    ki

  • I have ordered a standalone XDS110, to see if that works more like i want it to.

    I tested with my standalone XDS110 and that appears to work as you expected (communication still open after a debug session). I did use a different target so I am curious if you get the same results (I expect that you will).

  • I tested with my standalone XDS110 and that appears to work as you expected

    Did you connect serial port using the expansion port on XDS110 or using the TDI/TDO pins in JTAG connector?

  • I used the expansion port on the XDS110. 

    We are currently investigating your setup. We suspect that it is a known limitation (when connecting TX/RX to TDI/TDO and using 2-pin JTAG mode). 

  • Martin

    Is this what your ccxml configuration looks like for the XDS200:

    Setting it to 2-pin cJTAG and then using that last option to map the user COM port to TDO?

    John