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.

CCS/CCSTUDIO: USB Powerdown, C5517

Part Number: CCSTUDIO

Tool/software: Code Composer Studio

Hi there,

for the application I'm developing I need to firts open the USB module and then, eventually, shut the USB module down.

I want USB interrupts to be disabled and save as much power as I can (everything related to usb powered down:  controller, plls, bus, vbus).

I read from the reference that USBSCR register let the user control: USBPWDN, USBSESSEND, USBVBUSDET,USBPLLEN.

Is it enough to just set USBPWDN bit in order to completly shut the USB module down? It is not clear to me if by setting USBPWDN  I have the maximum USB power safe: do I also need to set other flags?

For my application, once I disable the USB I don't need the USB communication anymore since next reset, so I don't need VBUS to comparators to be active.

Thank you

Regards

Stefano

  • The team is notified. They will post their feedback directly here.

    BR
    Tsvetolin Shulev
  • Hi Stefano,

    There are requirements for USB power sequencing (http://processors.wiki.ti.com/index.php/C5505/15/35_Schematic_Checklist#Power_Sequencing)

    USB supplies require power sequencing for reliable USB enumertion. If the USB subsystem is used, USB_VDDA1P3 and USB_VDD1P3 must be powered up first, and then the USB_VDDA3P3 and then the USB_VBUS. USB subsystem power up sequence:

    1. USB_VDDA1P3 and USB_VDD1P3
    2. USB_VDDA3P3
    3. USB_VBUS

    This sequence ensures the C55x USB client does not inadvertently send a false enumeration attempt to the host during power up. Right after power up, the bootloader runs and the C55x client is not be able to respond to the false enumeration attempt before the host times out.

    The C5517 has a USB_LDO that can be used to supply USB_VDDA1P3 and USB_VDD1P3. And the USB_LDO can be independently disabled with software via the USB_LDO_EN bit in the LDOCNTL register.

    This assumes that If CLK_SEL is not low so that the USB oscillator is not being used for the SYSCLK. Otherwise the USB_LDO is enabled at reset and can never be disabled.

    So if you implement the USB power sequencing (which you should), and use the USB_LDO to supply USB_VDDA1P3 and USB_VDD1P3, then you can cut power to all the USB voltage rails with the USB_LDO_EN bit. This will minimize the USB power consumption.

    Before cutting power, I would first gracefully shut down the disconnect the USB client and stop the USB module with software. The USBCG bit in PCGCR2 can stop the clocks getting to the USB module. You must request permission before stopping the USB clock through the peripheral clock stop request and acknowledge register (CLKSTOP). This register does not stop the USB PLL (but removing power will).

    Hope this helps,
    Mark