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.

TMDSEMU110-U: GPIO control for embedded XDS110 - prerequisites

Part Number: TMDSEMU110-U
Other Parts Discussed in Thread: EK-TM4C1294XL

Hi,

I am trying to control the XDS110 GPIOOUT pins in a custom embedded XDS110 design. In a related thread https://e2e.ti.com/support/microcontrollers/other/f/908/p/824023/3049028#3049028 I got the info that the logical GPIOOUT0 pin maps to PF0 on the Tiva MCU.

On the PC I am running this batch file to toggle GPIOOUT0..1 on and off:

:loop
dbgjtag.exe -f @xds110 -Y gpiopins,config=0x3,write=0x3
dbgjtag.exe -f @xds110 -Y gpiopins,config=0x3,write=0x0
goto loop

As a first test, I connect the original TMDSEMU110-U with the little AUX breakout board and apply 3.3V to TGTVDD(SENSE). I can see a square wave on GPIOOUT0 and GPIOOUT1 using an oscilloscope - as expected.

To try the same on custom hardware, I am using an EK-TM4C1294XL launchpad. I installed a 16 MHz crystal and flashed the XDS110 firmware. The board correctly shows up as XDS110 on the PC and the xdsdfu and dbgjtag tools will talk to it without a problem.

Running the batch scripts now, I see no activity on any of the PF0..3 pins, they all sit at 0V.

Reading back the GPIO config after running the batch file always returns 0 (on the TMDSEMU110, I see the config value 0x03 as set from batch file):

dbgjtag.exe -f @xds110 -Y gpiopins -v

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

xds110.i

-----[Print the controller-open software log-file]---------------------------

The library build date was 'Jan 24 2019'.
The library build time was '14:27:46'.
The library package version is '8.0.903.6'.
The library component version is '35.35.0.0'.
The controller does not use a programmable FPGA.
The controller has a version number of '5' (0x00000005).
The controller has an insertion length of '0' (0x00000000).
The user GPIO pin config is 0x00.
The user GPIO pin input is  0x00.

What am I doing wrong? Do the version pins PK4..7 need to be set to a specific value? Is there some other connection that I need to make to get the GPIOs to function?

Thanks for your help

  • Sebastian,

    Please apologize; I missed your last reply to the other thread. PK4..7 should be 1000. 

    Hope this helps,

    Rafael

  • Hi Rafael,

    no problem, thanks for your help!

    Unfortunately, the last suggestion didn't really help:

    If I set PK4..7 to 0b0000 (using separate 1k resistors to GND), the launchpad shows up as two virtual COM-ports, xdsdfu and dbgjtag can talk to it. GPIOOUT0(PF0) doesn't work.

    If I set PK4..7 to 0b1000, the launchpad does not appear to enumerate as USB device at all. It doesn't show up in the Windows device manager and xdsdfu reports 0 devices found.

    It looks like 0b1000 also changes something about the USB interface? This is harder than expected ;-)

    Best regards

    Sebastian

  • Having another look at the TMDSEMU110-U I have a theory what is happening:

    TMDSEMU110 has PK4..7 set to 1000. It uses a separate USB transceiver USB3300, not the Tiva USB. 

    My custom XDS110 has USB connected directly to the Tiva. By setting PK4..7 to 1000 the firmware expects TMDSEMU110 hardware and tries to talk to the USB3300 - which doesn't exist.

    So I guess using the GPIOs is not exactly straightforward without completely reverse-engineering and copying the TMDSEMU110 - which really wasn't the intention here. I guess we'll have to abandon the idea and keep using jumpers/toggle switches to control the bootmode of our target hardware.

    A suggestion for future XDS110 firmware releases: Make the GPIOs usable independently of PK4..7 settings!

    Best regards 

    Sebastian

  • Sebastian,

    I think you are right; I forgot the USB High Speed PHY requires initialization and it is not commonly present on a standalone design. Sorry.

    I may have an alternative. Please accept my friendship request. 

    Cheers,

    Rafael