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)
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
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
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
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
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
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
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
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
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
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
Automatic Updates
Would you like to be automatically notified when new application notes are published in your areas of interest? Sign up for EE-Mail™.