Reset, Suspend, and Resume Commands

In addition to the control commands sent to devices during operation, three unique signaling conditions can be issued by the Host: Reset, Suspend, or Restore a suspended device.

Reset

During the enumeration process the Host issues a Reset signal to the device. This USB Reset is not to be confused with hardware or power-on reset. The purpose of the USB Reset is to set the software state of the device so enumeration can proceed.

Devices recognize a Reset condition when both D- and D+ are both held low (SE0) for 10 ms. In some cases, the device is able to detect the Reset within 2.5 µs, however, the Host will maintain the Reset condition for the entire 10 ms.

reset-signal.svg

To initiate a reset, D+ and D- are held low by the Hub. Having the Hub hold the data lines low allows the Host to continually service the other devices and avoid having devices enter Suspend mode for lack of activity on D+ and D-. The Host causes the Hub to reset a device by issuing a SET_PORT_FEATURE(PORT_RESET) control command to the Hub.

Suspend

A device will enter the Suspend state when no start-of-frame signal is received for three consecutive frames. The application software running in the device is usually notified when a Suspend occurs and may take action to reduce power consumption. When in Suspend mode, the device will draw no more than 50 ma. Suspended devices are able to respond to Reset and Resume commands.

suspend-signal.svg

The Host can cause one enumerated devices to be suspended by issuing a
SET_PORT_FEATURE(PORT_SUSPEND) control command to the Hub attached to the device to be suspended.

Resume

The sequence to resume a device's operation is to assert a K-state on D+ and D- for 20 ms. The K-state is defined in the USB specification and is determined by the USB speed.

A Suspended device may be returned to an operating state (i.e. Resumed) in one of two ways:

  1. If the device has the remote resume feature set after at least 5 ms in the Suspend state, the device can initiate the process of resuming normal operation. To begin resumption, the device asserts the K-state on D+ and D- for between 1 and 15 ms. The Host (i.e., HUB) will detect this state and take over controlling D+ and D- in 1 ms for the remainder of the 20 ms. After 20 ms the device will resume normal operation.
  2. The Host can resume a device by sending a CLEAR_PORT_FEATURE( PORT_SUSPSEND) to the Hub connected to the device. This will cause the Hub to drive the K-state on D+ and D- for 20 ms.

 Learn More

© 2024 Microchip Technology, Inc.
Notice: ARM and Cortex are the registered trademarks of ARM Limited in the EU and other countries.
Information contained on this site regarding device applications and the like is provided only for your convenience and may be superseded by updates. It is your responsibility to ensure that your application meets with your specifications. MICROCHIP MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND WHETHER EXPRESS OR IMPLIED, WRITTEN OR ORAL, STATUTORY OR OTHERWISE, RELATED TO THE INFORMATION, INCLUDING BUT NOT LIMITED TO ITS CONDITION, QUALITY, PERFORMANCE, MERCHANTABILITY OR FITNESS FOR PURPOSE. Microchip disclaims all liability arising from this information and its use. Use of Microchip devices in life support and/or safety applications is entirely at the buyer's risk, and the buyer agrees to defend, indemnify and hold harmless Microchip from any and all damages, claims, suits, or expenses resulting from such use. No licenses are conveyed, implicitly or otherwise, under any Microchip intellectual property rights.