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.

EK-TM4C1294XL: Proper way to power/debug TM4C development board while installed in circuit?

Part Number: EK-TM4C1294XL


Hello all,

I am working on developing a circuit using the EK-TM4C1294XL development board. Currently, I am programming the development board, disconnecting it from my computer, and plugging it into my breadboarded circuit (via right-angle headers soldered on to its side). In this configuration, the development board is supplied with 5V to the proper pins via an external power source. However, I am interested in connecting my copmuter to the development board while it is installed in the circuit. I know that the USB connection on the development board already supplies the board with power, so I wanted to know the safest way to communicate with the development board while it is installed in my circuit. 

My current idea is to disconnect all of the development board's power connections on the breadboard, so that it can only be powered through the USB intereface. I believe I would also need to tie the USB ground to my circuit ground. Is this a bad idea? Would this configuration have any threat of damaging my computer / my USB port?

Thanks in advance for any help!

  • The EK-TM4C1294XL LaunchPad has a few jumpers to configure power. You might look at the documentation for those jumpers for more information about your options.

    I have a similar situation, except that instead of a breadboard I have a self-contained board with my custom circuits and its own local TM4C1294K chip. I have removed the SMD jumpers on the LaunchPad to use it as a JTAG adaptor, defeating its TM4C1294N chip, and have the appropriate 10-pin ribbon cable connecting to my board. I have multiple power supplies, 5V and +/-12V, so there is 5V coming from both the JTAG header and my power supply. I noticed that the 5V from the JTAG does not provide enough current for my board because it is hosting a USB Device and needs to provide power in excess of 300 mA. Therefore I need both connected.

    My assumption is that there is diode protection somewhere, or perhaps not much current flows between the two 5V supplies. I'm hoping that this does not cause a problem, but once I finish my firmware development it won't matter anyway, because I'll be done with the JTAG by then.
  • Your detail & caution is noted/appreciated.

    I recall past suggestion that the "order of connection and/or powering" when the JTAG pod is introduced - proved helpful. Firm/I employ J-Link - and iirc - there is a "shunt/jumper" (internal to the pod) which enables "breaking" the power (+) connection between the pod & target MCU.

    I believe that we were advised to, "First adequately power the target board - and only then introduce the JTAG/SWD (now) pod...    We reversed that sequence when Powering Down.     This procedure was (active) years back (maybe 5) and (may) no longer be required.     (yet I feel - remains "safest.")

  • Do you know of a way to communicate with the development board using USB (instead of JTAG) while externally supplying the 5V power?

    Or do you think my initial idea of disconnecting the power connections between the development board and the breadboard, and then tying USB and circuit ground together, would be the best approach?
  • I primarily design USB Device and USB Host hardware, so in my case communications over USB are the first thing that I get working. No matter which USB Class is used, there is always a Control Port, so I utilize USB Device Requests of Vendor Type so that I can create my own debugging messages. I've actually built firmware where I can query (or sometimes even set) any of the key variables. I then write macOS software to poll those variables over USB and show their values, either with graphing, UI controls, or just plain text. This might pose challenges if your USB Device is opened by the system, but my devices are usually available to any application to open and access the Control Port.

    By the way, tying your circuit ground to USB ground is not necessarily a bad idea, but make sure that you don't also tie the USB shield to ground. The shield should be connected through a filter network consisting of a very high resistance in parallel with a capacitor. I believe that's how it's wired on the EK-TM4C1294XL. See below (*) for more information.

    A simpler approach might be to use UART0 for serial communications. After you've loaded your firmware into your processor's Flash memory, it should run as soon as you supply power. If the UART is properly configured, then you'll be able to input and output data using standard serial communications. The JTAG interface provides a USB CDC interface for this, and I've had success using jumpers from the JTAG to my custom board to connect data and ground for serial comms. See the usb_host_msc example from TI, which shows an interactive command line that can browse a USB memory stick's file system contents.

    * I can't quite picture all of the pieces in your circuit setup. You probably do need to pay careful attention to power and ground when connecting your circuit to both an external power supply and the USB port of your computer. This is fairly common in the industry, though, because there are many "self-powered" USB Devices on the market which connect to a power supply and the USB jack. Worst case, you might need to isolate USB ground and power from your circuit's ground and power. However, if that's necessary, you'll still need to connect the USB Power signal to a 5V-tolerant pin on your USB processor so that it can detect when you insert the USB cable. The USB specifications state that it is illegal for a USB Device to drive a voltage on the USB data lines until there is power detected on the USB power lines. This could be done with a resistor divider network if you don't have a spare 5V-tolerant I/O pin. You then need to configure the Tiva USB Library to use that specific I/O pin for USB Device power detection.