APPLICATION NOTE 117

DS2490 Universal Serial Bus Descriptors


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.
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
Endpoint—Interrupt 10 ms polling period 0 0 7
Endpoint—Bulk OUT (to 2490) 16-byte max packet size 0 0 7
Endpoint—Bulk IN (from 2490) 16-byte max packet size 0 0 7
Interface   0 1 9
Endpoint—Interrupt 10 ms polling period 0 1 7
Endpoint—Bulk OUT (to 2490) 64-byte max packet size 0 1 7
Endpoint—Bulk IN (from 2490) 64-byte max packet size 0 1 7
Interface   0 2 9
Endpoint—Interrupt 1 ms polling period 0 2 7
Endpoint—Bulk OUT (to 2490) 16-byte max packet size 0 2 7
Endpoint—Bulk IN (from 2490) 16-byte max packet size 0 2 7
Interface   0 3 9
Endpoint—Interrupt 1 ms polling period 0 3 7
Endpoint—Bulk OUT (to 2490) 64-byte max packet size 0 3 7
Endpoint—Bulk 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)
D6      Self Powered
D5      Remote Wakeup
D4..0   Reserved (reset to 0)
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