Reset, Suspend, and Resume Commands

Last modified by Microchip on 2023/11/10 11:19

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 (PoR). 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 R=reset condition for the entire 10 ms.

USB Reset Signal

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.

Back to Top

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.

USB Suspended

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.

Back to Top

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.

Back to Top

Learn More

Back to Top