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.

USB0VBUS on TM4C123GH6PM

Other Parts Discussed in Thread: TM4C123GH6PM, EK-TM4C1294XL, EK-TM4C123GXL

I'm working using the TM4C123GH6PM ARM Cortex-M4F MCU and have some
difficulties understanding how to handle the USB0VBUS signal on a self-powered
device.

From the System Design Guidelines for the TM4C123x (SPMA059) I copied the
following:

For TM4C123x devices that are used in a device-only configuration, the only
signal used in addition to USB0DM and USB0DP is USB0VBUS, which is located on
port PB1. In USB device-only mode, USB0VBUS is used to detect when voltage has
been applied to or removed from the USB connector, which triggers software to
manage the internal USB PHY accordingly. When configured as USB2VBUS, this pin
is 5-V tolerant. However, when used as a GPIO input, PB1 is NOT 5-V tolerant.
An alternate 5-V tolerant Fail-Safe GPIO should be selected to do the VBUS
detection if there is a chance 5V could be applied to the input prior to PB1 on
the TM4C123x device being configured for VBUS, such as during power-up, while
the device is in reset, and the while the initial boot sequence executes.

For a USB device-only configuration, a 100Ω resistor should be placed in series
between VBUS on the USB connector and PB1 (or alternate 5-V tolerant GPIO) on
the microcontroller in order to limit damage caused by any ESD events.

If PB1 must be used for a function other than USB0VBUS, any other available 5-V
tolerant Fail-Safe GPIO could be used in its place.

I checked the schematics of both the EK-TM4C123GXL and the EK-TM4C1294XL
LaunchPads and found the following:

On the EK-TM4C123GXL Tiva C Series LaunchPad, USB_VBUS of the device connector
(J9) is routed to pin PB1 of the microcontroller (U1) via a 0-ohm resistor R29.
However, R29 is not populated. Because of this, the application does not receive any
USB_EVENT_DISCONNECTED event but (with very limited testing) the application seems
to work just fine.

Also on the EK-TM4C123GXL, USB_VBUS of the ICDI connector (J11) is connected to
pin PB1 of the debugger microcontroller (U2) via a 330-ohm resistor. The ICDI is
always a Bus-Powered Device.

On the EK-TM4C1294XL LaunchPad the ICDI is also a TM4C123GH6PM. Here the
USB_VBUS is routed to a voltage divider of a 5.6k and a 10k ohm resistor;
reducing the voltage at PB1 to nominal 3.2 V.

What is the recommended way for handling the USB0VBUS? In particular during power-up, or when VBUS can be applied before MCU VCC? Is the voltage divider used in the EK-TM4C1294XL the way to go?

  • Hello Andrew

    When using the TM4C12x as a Self Powered Device, the recommendation would be to not connect the VBUS pin. This is because of the Latch Up issue which makes it difficult to size the capacitor/resistor n.w

    Regards
    Amit
  • Hi Amit,

    Thanks for your quick response. Could you point me to some documentation related to this latch up issue?

    In particular, the design I am working on can be both self-powered and bus-powered. It will use an auxilary power supply when available, but will switch to USB bus power when the aux power supply is not available.

    Best regards,
    Andrew
  • Hello Andrew,

    The Errata document is the only document available on the same.

    If you need to use USBVBUS for powering the device, then you may directly route it to the LDO and not make the connection to the USB VBUS pin of the device,

    Regards
    Amit
  • Hi Amit,

    I'm sorry but I'm unable to find any mention of the latch up issue in the Tiva C Series TM4C123x Microcontrollers Silicon Revisions 6 and 7 Errata (Rev. E) (SPMZ849E) or in the ARM® Cortex™-M4F Errata (v3).

    The impact of not connecting the USB0VBUS signal is that the application is not informed of USB disconnection events because it can no longer monitor VBUS. What is the downside of not receiving a USB disconnection event? My application seems to run just fine for now; what kind of issues should I be aware of?

    Best regards,
    Andrew

  • Hello Andrew_,

    On TM4C123x devices, the errata is GPIO#10, which comes from the same root cause.

    There is no downside as such, except that device may become unresponsive. On a connect event, the bus reset will anyways signal a new connection.

    Regards
    Amit
  • Thank you very much!
  • Hello Andrew_

    In case a connection is required and there is space on the board, I would suggest ESD protection at the connector before the signal is sent to the TM4C.

    Regards
    Amit