USB Component
Version 6.17.0
MDK Middleware for USB Device and Host Communication
|
A high-speed capable device that has different device information for full-speed and high-speed must have a Device Qualifier Descriptor (USB_DEVICE_QUALIFIER_DESCRIPTOR). For example, if the device is currently operating at full-speed, the Device Qualifier returns information about how it would operate at high-speed and vice-versa.
The fields for the vendor, product, device, manufacturer, and serial number are not included. This information is constant for a device regardless of the supported speeds.
If a full-speed only device receives a GetDescriptor() request for a device_qualifier, it must respond with a request error. Then, the host must not make a request for an other_speed_configuration descriptor.
Offset | Field | Type | Size | Value | Description |
---|---|---|---|---|---|
0 | bLength | uint8_t | 1 | Number | Size of this descriptor in bytes. |
1 | bDescriptorType | uint8_t | 1 | Constant | Device Qualifier Descriptor Type = 6. |
2 | bcdUSB | uint16_t | 2 | BCD | USB Specification Release Number in Binary-Coded Decimal (i.e., 2.10 is 210h). This field identifies the release of the USB Specification with which the device and its descriptors are compliant. At least V2.00 is required to use this descriptor. |
4 | bDeviceClass | uint8_t | 1 | Class | Class code (assigned by the USB-IF). If this field is
If this field is set to FFh, the device class is vendor specific. |
5 | bDeviceSubClass | uint8_t | 1 | SubClass | Subclass code (assigned by the USB-IF). These codes are qualified by the value of the bDeviceClass field. If bDeviceClass is
|
6 | bDeviceProtocol | uint8_t | 1 | Protocol | Protocol code (assigned by the USB-IF). These codes are qualified by the values of the bDeviceClass and bDeviceSubClass fields. If a device supports class-specific protocols on a device basis as opposed to an interface basis, this code identifies the protocols that the device uses as defined by the specification of the device class. If this field is
|
7 | bMaxPacketSize0 | uint8_t | 1 | Number | Maximum packet size for other speed. |
8 | bNumConfigurations | uint8_t | 1 | Number | Number of other-speed configurations. |
9 | bReserved | uint8_t | 1 | Zero | Reserved for future use, must be zero. |