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.

TM4C129XNCZAD: USB PHY Not Responding

Part Number: TM4C129XNCZAD

We are working on a project utilizing the USB PHY. We have been using the TM4C129-DK for our development and are now starting to run on our own custom hardware.

The custom board uses an external ST ULPI PHY but have been having problems with it (we do not have a breakout to test it with the TM4C129-DK). So we switched back over to just using the internal PHY on the custom board, but are still having the same results where the board essentially just does not respond. 

The USB startup code is the same as the start-up of the Bulk usb example provided in the Tivaware example. We are running the same code on the the DK as we are on our custom board, but get different results. I have attached some salae traces of the decoded USB messages. 

What is confusing us is why the board does not respond, and when it does respond the analog traces look like digital traces (see attached traces). From what we can tell, there really is not much if at all anything that needs to be connected to the processor to get an internal PHY to work. It feels like there is just some simple and fundamental connection we are missing. We have also looked through the errata and did not see anything glaring at us. 

To get some of the basics out of the way:

  • There are no external resistors on D+ or D-. There is nothing in the between the processor connection and the USB cable connection. Diodes have been removed as well. 
  • USB Connections are hard connected
    • Using the same setup on the DK as well as the custom hardware yielded the results. 
  • VBUS is not connected but we are using the "eUSBModeForceDevice" instead of "eUSBModeDevice" from the tivaware library 
    • This was verified by disconnected the VBUS jumper on J25 of the TM4C129-DK to "float" the pin as it is on our design
  • VDDA and VREF are connected to the 3V rail
    • Is there something else that generates the analog voltage for D+ or D- ?
  • RBIAS is not connected (we are aware of the issues that causes in other places)
    • The old stellaris required using the USBRBIAS pin, is there something for this device we are missing? The datasheet only mentions RBIAS for ethernet phy, not USB.
    • Removed RBIAS from the DK as well and USB seems to be fine on the DK. 
  • The software is the same between both boards
  • Tivaware 2.1.4.178
  • Device Mode
  • Full Speed

We can tell the processor is running by monitoring the JTAG port - everything looks OK and it does not shutoff/restart. 

TM4C129-DK

Custom Board

  • Hello Brandon,

    I'm not sure exactly what could be wrong based on the information provided so far, so a few more questions for you:

    What frequency is the TM4C operating at?

    Can you share a schematic?

    Has the custom board followed the System Design Guidelines document, and were there any points which were not possible to address 100%: www.ti.com/.../spma056.pdf (Note that the USB0VBUS comments in Section 4.3.1 are addressed by your correct usage of eUSBModeForceDevice)?

    Also, have all other portions of software (like other peripherals) all been working without issue? I.E. is the issue isolated only to USB and all other aspects are operating as expected, just want to make sure we can safely narrow the scope of investigation to USB alone.
  • Ralph,

    Thank you for the quick reply. To answer your questions:

    120MHz with an external 25MHz clock (on both boards)

    Unfortunately we cannot share the schematic on a public forum (I realize this may make things more difficult and I apologize).

    Yes the system guidelines were followed on the layout of the custom board.

    We believe that the eUSBModeForceDevice is a workaround on that issue - are you confirming that it is correct? I saw the question mark and was unsure.

    The note about using the GPIO instead of VBUS, we have a few GPIO broken out but I didn't see anything in the peripheral device library on what to do to change that to a GPIO, can you share how to do this? I imagine it is just one of the GPIO configure calls?

    All other software is working correctly (QSPI, SysTick, etc). We shut off the watchdog timer as well. We are flashing both the DK and the custom board with the same software was well.
  • Hello Brandon,

    Sorry for the misleading question mark, I probably should have omitted it after adding in the parenthesis comment, it was meant to be a question of the system design guidelines being followed. I can confirm the eUSBModeForceDevice is the correct method to address not having VBUS for a USB Device.

    We do have a means for you to privately share the schematic, as we know that can be important for certain applications. I will send you an E2E friend request so we can start a PM discussion to facilitate that.
  • Hello Brandon,

    I haven't heard from you since sending my last PM, is this still an open issue? If so, I am still awaiting the information asked for via PM. If not, I will go ahead and close out this thread.