Product manual

Spinpoint M9TU-USB 3.0 Product Manual REV 1.0
68
USB INTERFACE AND USB COMMANDS
6.3.6.4.5 Other_Speed_Configuration_ Descriptor
The other_speed_configuration descriptor shown in Table 6-14 describes a configuration of a highspeed capable
device if it were operating at its other possible speed. The structure of the other_speed_configuration is identical
to a configuration descriptor.
Table 6-14: Other Speed Configuration Descriptor
The host accesses this descriptor using the GetDescriptor() request. The descriptor type in the GetDescriptor()
request is set to other_speed_configuration (see Table 6-8).
6.3.6.4.6 Interface Descriptor
The interface descriptor describes a specific interface within a configuration. A configuration provides one or
more interfaces, each with zero or more endpoint descriptors describing a unique set of endpoints within the
configuration. When a configuration supports more than one interface, the endpoint descriptors for a particular
interface follow the interface descriptor in the data returned by the GetConfiguration() request.
An interface descriptor is always returned as part of a configuration descriptor. Interface descriptors cannot be
directly accessed with a GetDescriptor() or SetDescriptor() request.
An interface may include alternate settings that allow the endpoints and/or their characteristics to be varied after
the device has been configured. The default setting for an interface is always alternate setting zero. The
SetInterface() request is used to select an alternate setting or to return to the default setting. The GetInterface()
request returns the selected alternate setting.
Alternate settings allow a portion of the device configuration to be varied while other interfaces remain in
operation. If a configuration has alternate settings for one or more of its interfaces, a separate interface descriptor
and its associated endpoints are included for each setting.
If a device configuration supported a single interface with two alternate settings, the configuration descriptor
would be followed by an interface descriptor with the bInterfaceNumber and bAlternateSetting fields set to zero
and then the endpoint descriptors for that setting, followed by another interface descriptor and its associated
endpoint descriptors. The second interface descriptor’s bInterfaceNumber field would also be set to zero, but the
bAlternateSetting field of the second interface descriptor would be set to one.
If an interface uses only endpoint zero, no endpoint descriptors follow the interface descriptor. In this case, the
bNumEndpoints field must be set to zero.
An interface descriptor never includes endpoint zero in the number of endpoints. Table 6-15 shows the standard
interface descriptor.