9.2.3.3.1 Suspend/Resume by Inactivity on the USB Bus (L0 to L2 State Transition)

Suspend/Resume when Operating as a Peripheral

  • Entry into Suspend Mode: When operating as a peripheral, the USB controller monitors activity on the USB and when no activity has occurred for 3 ms, it goes into Suspend mode. If the Suspend interrupt Table 9-17 has been enabled, an interrupt is generated at this time. The SUSPENDM output also goes low (if enabled).
 At this point, the POWERDWN signal is also asserted to indicate that the application may save power by stopping CLK.
 POWERDWN remains asserted until power is removed from the bus (indicating that the device has been disconnected); or resume signaling; or reset signaling is detected on the bus.
  • Sending Resume Signaling: When resume signaling occurs on the bus, first CLK must be restarted, if necessary. The USB controller then automatically exits in Suspend mode. If the resume interrupt is enabled, an interrupt is generated.
  • Initiating a Remote Wake-Up: If a remote wake-up is initiated by the software while the USB controller is in Suspend mode, it must write to Table 9-11 to set the resume bit to ‘1’.
    Important: If CLK has been stopped, it must be restarted before this write can occur. The software must leave this bit set for approximately 10 ms (minimum of 2 ms, a maximum of 15 ms) before resetting it to 0. By this time the hub must have taken over driving and resume signaling on the USB. Resume interrupt is not generated when the software initiates a remote wake-up.

Suspend/Resume When Operating as a Host

  • Entry into Suspend mode: When operating as a host, the USB controller can be prompted to go into Suspend mode by setting the Suspend mode bit in Table 9-11. When this bit is set, the USB controller completes the current transaction, then stops the transaction scheduler and frame counter. No further transactions are started and no SOF packet is generated.
If the Enable SuspendM bit in POWER_REG is set, the UTMI+ PHY goes into Low power mode; when the USB controller goes into Suspend mode and stops XCLK.
  • Sending Resume Signaling: When the application requires the USB controller to leave Suspend mode, it must clear the Suspend mode bit and set the resume bit in the POWER_REG, and leave it set for 20 ms. while the resume bit is high, the USB controller generates resume signaling on the bus. After 20 ms, the Cortex-M3 processor or fabric master must clear the resume bit, at which point the frame counter and transaction scheduler are started.
  • Responding to Remote Wake-Up: If resume signaling is detected from the target while the USB controller is in Suspend mode, the UTMI+ PHY is brought out of Low power mode and restarts XCLK. The USB controller then exits Suspend mode and automatically sets the Resume bit in POWER_REG to ‘1’ to take over generating the resume signaling from the target. If the resume interrupt is enabled, an interrupt is generated.