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.

TM4C1290NCPDT: USB Power Up From Power Down State

Part Number: TM4C1290NCPDT

Not sure if this is the same as Errata USB#05

 

Customer reporting an issue where the USB power domain does not seem to properly re-power.  When this occurs, the USBPDS register does not reflect the proper PWRSTAT, which also means that the USB peripheral is never ready (according to register PRUSB).  In fact, any attempt to access registers within the USB0 peripheral while in this state will lead to a hardfault.

 

Steps to recreate:

    1. Set system clock (60MHz via 480 VCO)
    1. Power up USBMPC and PCUSB (redundant at power on)
    1. Enable USB clocking in RCGCUSB
    1. Reset USB peripheral via SRUSB
    1. Wait for peripheral ready (via PRUSB)
    1. Short delay (~1s)
    1. Disable USB clocking in RCGCUSB
    1. Power down USBMPC and PCUSB)
    1. Short delay (~1s)
    1. Repeat from step 2.

 

In the few tests they have run it takes between 100 and 1000 attempts, but eventually the device will get stuck waiting for Peripheral Ready (PRUSB).  When it gets in this state the USBPDS doesn’t seem to react to changes in USBMPC.  A software reset will not clear the problem, but the problem WILL go away with a user reset, power-on reset, or watchdog reset.

 

Question:

    1. Is this a known issue?
      1. If so, are there any known work-arounds?

 

They have a simple tivaware-based project in IAR that can be shared if needed. 

  • Hi Lawrence,

      I will discuss with our USB expert and get back with you.

  • Hello Lawrence,

    Please send me that TivaWare project so I can review it.

  • Hello Lawrence,

    Can you please send that TivaWare project so I can further look into this?

    Also regarding the following:

    Lawrence Wong said:
    In the few tests they have run it takes between 100 and 1000 attempts, but eventually the device will get stuck waiting for Peripheral Ready (PRUSB). 

    Can they further describe the test conditions, including how much time passes between each test and if they are powering down the MCU between tests?

  • Hello Lawrence,

    I reviewed the project sent but I would not call it TivaWare based. It is not using any TivaWare USB APIs, the only TivaWare APIs used are for LED control.

    That said, I used the proper TivaWare API's to replace the peripheral enable, reset, and disable to recreate the issue based on what they sent and was able to.

    The issue had not been reported before, so it is not something we have been aware of or have a ready-made workaround for.

    Now then all this said, when the power state is not messed with, the code runs fine so I have a question instead: why do they need to make this adjustment?

    We don't have API's that handle those settings so I'd imagine this level of testing was never done before, but I also see no benefit to what they are doing. If we are going to look into this any further as it is not a problem that should occur with TivaWare, then I need to understand what is the impact for their end application.