Abstract
This application note lists the various USB descriptors used for the DS2490 1-Wire®-to-USB bus master chip. A typical Universal Serial Bus (USB) environment consists of a USB enabled host computer and one or more USB device peripherals. In USB terminology, descriptors are used to inform the host PC system (when requested) what capabilities are supported by a USB device as well as specific device characteristics.
The DS2490 is a USB vendor-specific device and is described with descriptors from the USB core specifications. Its descriptors fall into three different categories, the device descriptor—to determine general device info, the configuration descriptor—to determine configuration, interface, and lower level descriptors, and the interface descriptor—to provide additional USB class and endpoint information.
It is assumed that the reader of this application note is familiar with Universal Serial Bus (USB) technology and terms.
It is assumed that the reader of this application note is familiar with Universal Serial Bus (USB) technology and terms. The USB specification can be obtained from the USB Implementers Forum web site at: www.usb.org.
A typical Universal Serial Bus (USB) environment consists of a USB enabled host computer and one or more USB device peripherals. In USB terminology, descriptors are used to inform the host PC system what capabilities are supported by a USB device as well as specific device characteristics. When requested by the host, these descriptors are provided by the device and are communicated in a hierarchical manner, providing top to low level information. Additionally, a typical USB device will describe itself to the host with USB core specification descriptors and, depending on device complexity, descriptors from one or more USB device class specifications. The DS2490 is a USB Vendor-Specific Device and is described with descriptors from the USB core specifications.
When a USB device is attached to the bus, an initialization or enumeration process begins during which descriptor requests are made by the host computer. First a Device Descriptor request is sent to determine general device information. A Configuration Descriptor request then follows which returns configuration, interface, and lower level descriptors in the proper order.
Figure 1. DS2490 USB descriptor hierarchy.
DS2490 Descriptor Summary
DESCRIPTOR | INTERFACE NUMBER | ALTERNATE SETTING | SIZE (BYTES) | |
Device description | 18 | |||
Device configuration | 9 | |||
Interface | 0 | 0 | 9 | |
EndpointInterrupt | 10 ms polling period | 0 | 0 | 7 |
EndpointBulk OUT (to 2490) | 16-byte max packet size | 0 | 0 | 7 |
EndpointBulk IN (from 2490) | 16-byte max packet size | 0 | 0 | 7 |
Interface | 0 | 1 | 9 | |
EndpointInterrupt | 10 ms polling period | 0 | 1 | 7 |
EndpointBulk OUT (to 2490) | 64-byte max packet size | 0 | 1 | 7 |
EndpointBulk IN (from 2490) | 64-byte max packet size | 0 | 1 | 7 |
Interface | 0 | 2 | 9 | |
EndpointInterrupt | 1 ms polling period | 0 | 2 | 7 |
EndpointBulk OUT (to 2490) | 16-byte max packet size | 0 | 2 | 7 |
EndpointBulk IN (from 2490) | 16-byte max packet size | 0 | 2 | 7 |
Interface | 0 | 3 | 9 | |
EndpointInterrupt | 1 ms polling period | 0 | 3 | 7 |
EndpointBulk OUT (to 2490) | 64-byte max packet size | 0 | 3 | 7 |
EndpointBulk IN (from 2490) | 64-byte max packet size | 0 | 3 | 7 |
Total Descriptor Size |
147 bytes |
Device Descriptor
Summary:
The device descriptor provides the host with general information about the DS2490. It informs the host that it is a
vendor-specific class device and there is only one configuration.
Device Descriptor
OFFSET | FIELD | SIZE | VALUE | DESCRIPTION |
0 | bLength1 | 1 | 0x12 | Size of this descriptor in bytes: 18 |
1 | bDescriptorType | 1 | 0x01 | DEVICE Descriptor Type |
2 | bcdUSB | 2 | 0x0100 | USB Specification Release Number in Binary-Coded Decimal |
4 | bDeviceClass | 1 | 0xFF | Vendor-Specific Class code. |
5 | bDeviceSubClass | 1 | 0xFF | Subclass code: none |
6 | bDeviceProtocol | 1 | 0xFF | Protocol code: none |
7 | bMaxPacketSize0 | 1 | 0x08 | Maximum packet size for endpoint zero: 16 or 32 bytes? |
8 | idVendor | 2 | 0x04FA | Dallas Semiconductor Vendor ID (assigned by USB) |
10 | idProduct | 2 | 0x2490 | Product ID (assigned by Dallas Semiconductor) |
12 | bcdDevice | 2 | Note 1 | Device release number in binary-coded decimal |
14 | iManufacturer | 1 | 0x00 | Index of string descriptor describing manufacturer: none |
15 | iProduct | 1 | 0x00 | Index of string descriptor describing product: none16 |
16 | iSerialNumber | 1 | 0x00 | Index of string descriptor describing the devices serial number: none |
17 | bNumConfigurations | 1 | 0x01 | Number of possible configurations |
NOTE:
1. For silicon revision A1 this value will be 0x0001. For any silicon revisions this value will be incremented.
Configuration Descriptor
Summary:
The configuration descriptor informs the host of the amount of descriptor data to be returned to describe the configuration,
the number of interfaces that are included in the configuration, and device power characteristics.
Configuration Descriptor
OFFSET | FIELD | SIZE | VALUE | DESCRIPTION |
0 | bLength | 1 | 0x09 | Size of this descriptor in bytes: 9 |
1 | bDescriptorType | 1 | 0x02 | CONFIGURATION |
2 | wTotalLength | 2 | 0x0081 | Total length of data returned for this configuration. Includes the combined length of all descriptors (configuration,
interface, endpoint, and class or vendor specific) returned for this configuration. (129 bytes) |
4 | bNumInterfaces | 1 | 0x01 | Number of interfaces supported by this configuration |
5 | bConfigurationValue | 1 | 0x01 | Value to use as an argument to Set Configuration to select this configuration |
6 | iConfiguration | 1 | 0x00 | Index of string descriptor describing this configuration: none |
7 | bmAttributes | 1 | 0xE0 |
Configuration characteristics
D7 Reserved (set to one) |
8 | MaxPower | 1 | 0x32 | Maximum power consumption of USB device from the bus in this specific configuration when the device is fully operational. Expressed in 2 mA units (i.e., 50 = 100 mA). |
Interface Descriptors
Summary:
The Interface descriptor provides additional USB class and endpoint information. The single DS2490 Interface is
reported as a vendor-specific class with 3 endpoints and 4 alternate interface settings. The 4 alternate interface settings
are used to select a different interrupt pipe polling interval or maximum packet size on the bulk pipes as follows:
ALT SETTING | EP1 POLL INTERVAL | EP2/EP3 MAX PACKET SIZE | ALTERNATE SETTING DESCRIPTION |
0 | 10 mS | 16 bytes | Long interrupt polling interval, small packet size for bulk pipes |
1 | 10 mS | 64 bytes | Long interrupt polling interval, large packet size for bulk pipes |
2 | 1 mS | 16 bytes | Short interrupt polling interval, small packet size for bulk pipes |
3 | 1 mS | 64 bytes | Short interrupt polling interval, large packet size for bulk pipes |
Interface Descriptor (infc-0, alt-0)
OFFSET | FIELD | SIZE | VALUE | DESCRIPTION |
0 | bLength | 1 | 0x09 | Size of this descriptor in bytes: 9 |
1 | bDescriptorType | 1 | 0x04 | INTERFACE descriptor type |
2 | bInterfaceNumber | 1 | 0x00 | Number of interface within configuration. |
3 | bAlternateSetting | 1 | 0x00 | Value used to select an alternate setting for the interface identified in the prior field. |
4 | bNumEndpoints | 1 | 0x00 | Number of endpoints used by this interface (excluding endpoint 0). |
5 | bInterfaceClass | 1 | 0xFF | Vendor-Specific Interface Class code. |
6 | bInterfaceSubClass | 1 | 0xFF | Subclass code: none |
7 | bInterfaceProtocol | 1 | 0xFF | Protocol code: none |
8 | iInterface | 1 | 0x00 | Index of a string descriptor that describes this interface: none |
Interface Descriptor (infc-0, alt-0)
OFFSET | FIELD | SIZE | VALUE | DESCRIPTION |
0 | bLength | 1 | 0x07 | Size of this descriptor in bytes: 7 |
1 | bDescriptorType | 1 | 0x05 | ENDPOINT descriptor type |
2 | bEndpointAddress | 1 | 0x81 | The address of the endpoint on the USB device described by this descriptor. The address is encoded as follows: Bit 3..0, The endpoint number, Bit 6..4, Reserved, reset to zero. Bit 7, Direction: 0 = OUT endpoint 1 = IN endpoint |
3 | bmAttributes | 1 | 0x03 | This field describes the endpoints attributes when it is configured using the bConfigurationValue. Bit 1..0, Transfer Type: 11b = Interrupt All other bits are reserved |
4 | wMaxPacketSize | 2 | 0x0020 | Maximum packet size this endpoint is capable of sending or receiving when this configuration is selected: 32 bytes. |
6 | bInterval | 1 | 0x0A | Interval for polling endpoint for data transfers, expressed in milliseconds: 10 mS |
Bulk (Out) Endpoint Descriptor (infc-0, alt-0, EP-2)
OFFSET | FIELD | SIZE | VALUE | DESCRIPTION |
0 | bLength | 1 | 0x07 | Size of this descriptor in bytes: 7 |
1 | bDescriptorType | 1 | 0x05 | ENDPOINT descriptor type |
2 | bEndpointAddress | 1 | 0x02 | The address of the endpoint on the USB device described by this descriptor. The address is encoded as follows: Bit 3..0, The endpoint number, Bit 6..4, Reserved, reset to zero. Bit 7, Direction: 0 = OUT endpoint 1 = IN endpoint |
3 | bmAttributes | 1 | 0x02 | This field describes the endpoints attributes when it is configured using the bConfigurationValue. Bit 1..0, Transfer Type: 11b = Bulk All other bits are reserved |
4 | wMaxPacketSize | 2 | 0x0010 | Maximum packet size this endpoint is capable of sending or receiving when this configuration is selected: 16 bytes. |
6 | bInterval | 1 | 0x00 | Interval for polling endpoint for data transfers, expressed in milliseconds: ignored for Bulk |
Bulk (Out) Endpoint Descriptor (infc-0, alt-1, EP-2)
OFFSET | FIELD | SIZE | VALUE | DESCRIPTION |
0 | bLength | 1 | 0x07 | Size of this descriptor in bytes: 7 |
1 | bDescriptorType | 1 | 0x05 | ENDPOINT descriptor type |
2 | bEndpointAddress | 1 | 0x02 | The address of the endpoint on the USB device described by this descriptor. The address is encoded as follows: Bit 3..0, The endpoint number, Bit 6..4, Reserved, reset to zero. Bit 7, Direction: 0 = OUT endpoint 1 = IN endpoint |
3 | bmAttributes | 1 | 0x02 | This field describes the endpoints attributes when it is configured using the bConfigurationValue. Bit 1..0, Transfer Type: 10b = Bulk All other bits are reserved |
4 | wMaxPacketSize | 2 | 0x0040 | Maximum packet size this endpoint is capable of sending or receiving when this configuration is selected: 64 bytes. |
6 | bInterval | 1 | 0x00 | Interval for polling endpoint for data transfers, expressed in milliseconds: ignored for Bulk |
Bulk (In) Endpoint Descriptor (infc-0, alt-1, EP-3)
OFFSET | FIELD | SIZE | VALUE | DESCRIPTION |
0 | bLength | 1 | 0x07 | Size of this descriptor in bytes: 7 |
1 | bDescriptorType | 1 | 0x05 | ENDPOINT descriptor type |
2 | bEndpointAddress | 1 | 0x83 | The address of the endpoint on the USB device described by this descriptor. The address is encoded as follows: Bit 3..0, The endpoint number, Bit 6..4, Reserved, reset to zero. Bit 7, Direction: 0 = OUT endpoint 1 = IN endpoint |
3 | bmAttributes | 1 | 0x02 | This field describes the endpoints attributes when it is configured using the bConfigurationValue. Bit 1..0, Transfer Type: 10b = Bulk All other bits are reserved |
4 | wMaxPacketSize | 2 | 0x0040 | Maximum packet size this endpoint is capable of sending or receiving when this configuration is selected: 64 bytes. |
6 | bInterval | 1 | 0x00 | Interval for polling endpoint for data transfers, expressed in milliseconds: ignored for Bulk |
Interface Descriptor (infc-0, alt-0)
OFFSET | FIELD | SIZE | VALUE | DESCRIPTION |
0 | bLength | 1 | 0x09 | Size of this descriptor in bytes: 9 |
1 | bDescriptorType | 1 | 0x04 | INTERFACE descriptor type |
2 | bInterfaceNumber | 1 | 0x00 | Number of interface within configuration. |
3 | bAlternateSetting | 1 | 0x02 | Value used to select an alternate setting for the interface identified in the prior field. |
4 | bNumEndpoints | 1 | 0x03 | Number of endpoints used by this interface (excluding endpoint 0). |
5 | bInterfaceClass | 1 | 0xFF | Vendor-Specific Interface Class code. |
6 | bInterfaceSubClass | 1 | 0xFF | Subclass code: none |
7 | bInterfaceProtocol | 1 | 0xFF | Protocol code: none |
8 | iInterface | 1 | 0x00 | Index of a string descriptor that describes this interface: none |
Bulk (Out) Endpoint Descriptor (infc-0, alt-2, EP-2)
OFFSET | FIELD | SIZE | VALUE | DESCRIPTION |
0 | bLength | 1 | 0x07 | Size of this descriptor in bytes: 7 |
1 | bDescriptorType | 1 | 0x05 | ENDPOINT descriptor type |
2 | bEndpointAddress | 1 | 0x81 | The address of the endpoint on the USB device described by this descriptor. The address is encoded as follows: Bit 3..0, The endpoint number, Bit 6..4, Reserved, reset to zero. Bit 7, Direction: 0 = OUT endpoint 1 = IN endpoint |
3 | bmAttributes | 1 | 0x03 | This field describes the endpoints attributes when it is configured using the bConfigurationValue. Bit 1..0, Transfer Type: 10b = Bulk All other bits are reserved |
4 | wMaxPacketSize | 2 | 0x0020 | Maximum packet size this endpoint is capable of sending or receiving when this configuration is selected: 64 bytes. |
6 | bInterval | 1 | 0x01 | Interval for polling endpoint for data transfers, expressed in milliseconds: ignored for Bulk |
Bulk (Out) Endpoint Descriptor (infc-0, alt-2, EP-2)
OFFSET | FIELD | SIZE | VALUE | DESCRIPTION |
0 | bLength | 1 | 0x07 | Size of this descriptor in bytes: 7 |
1 | bDescriptorType | 1 | 0x05 | ENDPOINT descriptor type |
2 | bEndpointAddress | 1 | 0x02 | The address of the endpoint on the USB device described by this descriptor. The address is encoded as follows: Bit 3..0, The endpoint number, Bit 6..4, Reserved, reset to zero. Bit 7, Direction: 0 = OUT endpoint 1 = IN endpoint |
3 | bmAttributes | 1 | 0x02 | This field describes the endpoints attributes when it is configured using the bConfigurationValue. Bit 1..0, Transfer Type: 10b = Bulk All other bits are reserved |
4 | wMaxPacketSize | 2 | 0x0010 | Maximum packet size this endpoint is capable of sending or receiving when this configuration is selected: 64 bytes. |
6 | bInterval | 1 | 0x00 | Interval for polling endpoint for data transfers, expressed in milliseconds: ignored for Bulk |
Bulk (In) Endpoint Descriptor (infc-0, alt-1, EP-3)
OFFSET | FIELD | SIZE | VALUE | DESCRIPTION |
0 | bLength | 1 | 0x07 | Size of this descriptor in bytes: 7 |
1 | bDescriptorType | 1 | 0x05 | ENDPOINT descriptor type |
2 | bEndpointAddress | 1 | 0x83 | The address of the endpoint on the USB device described by this descriptor. The address is encoded as follows: Bit 3..0, The endpoint number, Bit 6..4, Reserved, reset to zero. Bit 7, Direction: 0 = OUT endpoint 1 = IN endpoint |
3 | bmAttributes | 1 | 0x02 | This field describes the endpoints attributes when it is configured using the bConfigurationValue. Bit 1..0, Transfer Type: 10b = Bulk All other bits are reserved |
4 | wMaxPacketSize | 2 | 0x0010 | Maximum packet size this endpoint is capable of sending or receiving when this configuration is selected: 64 bytes. |
6 | bInterval | 1 | 0x00 | Interval for polling endpoint for data transfers, expressed in milliseconds: ignored for Bulk |
Interface Descriptor (infc-0, alt-3)
OFFSET | FIELD | SIZE | VALUE | DESCRIPTION |
0 | bLength | 1 | 0x09 | Size of this descriptor in bytes: 9 |
1 | bDescriptorType | 1 | 0x04 | INTERFACE descriptor type |
2 | bInterfaceNumber | 1 | 0x00 | Number of interface within configuration. |
3 | bAlternateSetting | 1 | 0x03 | Value used to select an alternate setting for the interface identified in the prior field. |
4 | bNumEndpoints | 1 | 0x03 | Number of endpoints used by this interface (excluding endpoint 0). |
5 | bInterfaceClass | 1 | 0xFF | Vendor-Specific Interface Class code. |
6 | bInterfaceSubClass | 1 | 0xFF | Subclass code: none |
7 | bInterfaceProtocol | 1 | 0xFF | Protocol code: none |
8 | iInterface | 1 | 0x00 | Index of a string descriptor that describes this interface: none |
Interrupt Endpoint Descriptor (infc-0, alt-3, EP-1)
OFFSET | FIELD | SIZE | VALUE | DESCRIPTION |
0 | bLength | 1 | 0x07 | Size of this descriptor in bytes: 7 |
1 | bDescriptorType | 1 | 0x05 | ENDPOINT descriptor type |
2 | bEndpointAddress | 1 | 0x81 | The address of the endpoint on the USB device described by this descriptor. The address is encoded as follows: Bit 3..0, The endpoint number, Bit 6..4, Reserved, reset to zero. Bit 7, Direction: 0 = OUT endpoint 1 = IN endpoint |
3 | bmAttributes | 1 | 0x03 | This field describes the endpoints attributes when it is configured using the bConfigurationValue. Bit 1..0, Transfer Type: 11b = Interrupt All other bits are reserved |
4 | wMaxPacketSize | 2 | 0x0020 | Maximum packet size this endpoint is capable of sending or receiving when this configuration is selected: 32 bytes. |
6 | bInterval | 1 | 0x01 | Interval for polling endpoint for data transfers, expressed in milliseconds: 1 mS |
Interrupt Endpoint Descriptor (infc-0, alt-3, EP-2)
OFFSET | FIELD | SIZE | VALUE | DESCRIPTION |
0 | bLength | 1 | 0x07 | Size of this descriptor in bytes: 7 |
1 | bDescriptorType | 1 | 0x05 | ENDPOINT descriptor type |
2 | bEndpointAddress | 1 | 0x02 | The address of the endpoint on the USB device described by this descriptor. The address is encoded as follows: Bit 3..0, The endpoint number, Bit 6..4, Reserved, reset to zero. Bit 7, Direction: 0 = OUT endpoint 1 = IN endpoint |
3 | bmAttributes | 1 | 0x02 | This field describes the endpoints attributes when it is configured using the bConfigurationValue. Bit 1..0, Transfer Type: 11b = Interrupt All other bits are reserved |
4 | wMaxPacketSize | 2 | 0x0040 | Maximum packet size this endpoint is capable of sending or receiving when this configuration is selected: 32 bytes. |
6 | bInterval | 1 | 0x00 | Interval for polling endpoint for data transfers, expressed in milliseconds: 1 mS |
Interrupt Endpoint Descriptor (infc-0, alt-3, EP-3)
OFFSET | FIELD | SIZE | VALUE | DESCRIPTION |
0 | bLength | 1 | 0x07 | Size of this descriptor in bytes: 7 |
1 | bDescriptorType | 1 | 0x05 | ENDPOINT descriptor type |
2 | bEndpointAddress | 1 | 0x83 | The address of the endpoint on the USB device described by this descriptor. The address is encoded as follows: Bit 3..0, The endpoint number, Bit 6..4, Reserved, reset to zero. Bit 7, Direction: 0 = OUT endpoint 1 = IN endpoint |
3 | bmAttributes | 1 | 0x02 | This field describes the endpoints attributes when it is configured using the bConfigurationValue. Bit 1..0, Transfer Type: 11b = Interrupt All other bits are reserved |
4 | wMaxPacketSize | 2 | 0x0040 | Maximum packet size this endpoint is capable of sending or receiving when this configuration is selected: 32 bytes. |
6 | bInterval | 1 | 0x00 | Interval for polling endpoint for data transfers, expressed in milliseconds: 1 mS |
Related to this Article
Products
{{modalTitle}}
{{modalDescription}}
{{dropdownTitle}}
- {{defaultSelectedText}} {{#each projectNames}}
- {{name}} {{/each}} {{#if newProjectText}}
-
{{newProjectText}}
{{/if}}
{{newProjectTitle}}
{{projectNameErrorText}}