1 - first exchange, device descriptor
2 Enum Rx S 8010 EA60 8 8006000100004000 3 Enum Tx 8000 62A0 18 120100020200004083044057000201020301 Frame 278: 82 bytes on wire (656 bits), 82 bytes captured (656 bits) on interface usbmon2, id 0 USB URB DEVICE DESCRIPTOR bLength: 18 bDescriptorType: 0x01 (DEVICE) bcdUSB: 0x0200 bDeviceClass: Communications and CDC Control (0x02) bDeviceSubClass: 0 bDeviceProtocol: 0 bMaxPacketSize0: 64 idVendor: STMicroelectronics (0x0483) idProduct: Virtual COM Port (0x5740) bcdDevice: 0x0200 iManufacturer: 1 iProduct: 2 iSerialNumber: 3 bNumConfigurations: 1
2 - second exchange, device qualifier (no reply)
3 - third exchange, device qualifier (no reply)
4 - fourth exchange, device qualifier (no reply)
(yes, repeated 3 times and never replied to)
11 Enum Rx S 8010 EA60 8 8006000600000A00 12 Enum Tx 8000 72A0 0
5 - fifth exchange, configuration descriptor
20 Enum Rx S 8010 EA60 8 8006000200000900 21 Enum Tx 8000 62A0 9 09024300020100C032 Frame 286: 73 bytes on wire (584 bits), 73 bytes captured (584 bits) on interface usbmon2, id 0 USB URB CONFIGURATION DESCRIPTOR bLength: 9 bDescriptorType: 0x02 (CONFIGURATION) wTotalLength: 67 bNumInterfaces: 2 bConfigurationValue: 1 iConfiguration: 0 Configuration bmAttributes: 0xc0 SELF-POWERED NO REMOTE-WAKEUP bMaxPower: 50 (100mA)
6 - sixth exchange, the big configuration descriptor
23 Enum Rx S 8010 EA60 8 8006000200004300 24 Enum Tx 8000 62A0 64 09024300020100C03209040000010202010005240010010524010001042402020524060001070582030800FF09040100020A0000000705030240000007058102 25 Enum Tx 8000 62E0 3 400000 Frame 288: 131 bytes on wire (1048 bits), 131 bytes captured (1048 bits) on interface usbmon2, id 0 USB URB CONFIGURATION DESCRIPTOR bLength: 9 bDescriptorType: 0x02 (CONFIGURATION) wTotalLength: 67 bNumInterfaces: 2 bConfigurationValue: 1 iConfiguration: 0 Configuration bmAttributes: 0xc0 SELF-POWERED NO REMOTE-WAKEUP 1... .... = Must be 1: Must be 1 for USB 1.1 and higher .1.. .... = Self-Powered: This device is SELF-POWERED ..0. .... = Remote Wakeup: This device does NOT support remote wakeup bMaxPower: 50 (100mA) INTERFACE DESCRIPTOR (0.0): class Communications and CDC Control bLength: 9 bDescriptorType: 0x04 (INTERFACE) bInterfaceNumber: 0 bAlternateSetting: 0 bNumEndpoints: 1 bInterfaceClass: Communications and CDC Control (0x02) bInterfaceSubClass: Abstract Control Model (0x02) bInterfaceProtocol: AT Commands: V.250 etc (0x01) iInterface: 0 COMMUNICATIONS DESCRIPTOR bLength: 5 bDescriptorType: 0x24 (CS_INTERFACE) Descriptor Subtype: Header Functional Descriptor (0x00) CDC: 0x0110 COMMUNICATIONS DESCRIPTOR bLength: 5 bDescriptorType: 0x24 (CS_INTERFACE) Descriptor Subtype: Call Management Functional Descriptor (0x01) bmCapabilities: 0x00 Data Interface: 0x01 COMMUNICATIONS DESCRIPTOR bLength: 4 bDescriptorType: 0x24 (CS_INTERFACE) Descriptor Subtype: Abstract Control Management Functional Descriptor (0x02) bmCapabilities: 0x02 0000 .... = Reserved: 0x0 .... 0... = Network_Connection: Not supported .... .0.. = Send_Break: Not supported .... ..1. = Line Requests and State Notification: Supported .... ...0 = Comm Features Combinations: Not supported COMMUNICATIONS DESCRIPTOR bLength: 5 bDescriptorType: 0x24 (CS_INTERFACE) Descriptor Subtype: Union Functional Descriptor (0x06) Control Interface: 0x00 Subordinate Interface: 0x01 ENDPOINT DESCRIPTOR bLength: 7 bDescriptorType: 0x05 (ENDPOINT) bEndpointAddress: 0x82 IN Endpoint:2 1... .... = Direction: IN Endpoint .... 0010 = Endpoint Number: 0x2 bmAttributes: 0x03 .... ..11 = Transfertype: Interrupt-Transfer (0x3) wMaxPacketSize: 8 ...0 0... .... .... = Transactions per microframe: 1 (0) .... ..00 0000 1000 = Maximum Packet Size: 8 bInterval: 255 INTERFACE DESCRIPTOR (1.0): class CDC-Data bLength: 9 bDescriptorType: 0x04 (INTERFACE) bInterfaceNumber: 1 bAlternateSetting: 0 bNumEndpoints: 2 bInterfaceClass: CDC-Data (0x0a) bInterfaceSubClass: 0x00 bInterfaceProtocol: No class specific protocol required (0x00) iInterface: 0 ENDPOINT DESCRIPTOR bLength: 7 bDescriptorType: 0x05 (ENDPOINT) bEndpointAddress: 0x03 OUT Endpoint:3 0... .... = Direction: OUT Endpoint .... 0011 = Endpoint Number: 0x3 bmAttributes: 0x02 .... ..10 = Transfertype: Bulk-Transfer (0x2) wMaxPacketSize: 64 .... ..00 0100 0000 = Maximum Packet Size: 64 bInterval: 0 ENDPOINT DESCRIPTOR bLength: 7 bDescriptorType: 0x05 (ENDPOINT) bEndpointAddress: 0x81 IN Endpoint:1 1... .... = Direction: IN Endpoint .... 0001 = Endpoint Number: 0x1 bmAttributes: 0x02 .... ..10 = Transfertype: Bulk-Transfer (0x2) wMaxPacketSize: 64 .... ..00 0100 0000 = Maximum Packet Size: 64 bInterval: 0
7 - seventh exchange, string descriptor (language)
27 Enum Rx S 8010 EA60 8 800600030000FF00 28 Enum Tx 8000 62A0 4 04030904 Frame 290: 68 bytes on wire (544 bits), 68 bytes captured (544 bits) on interface usbmon2, id 0 USB URB STRING DESCRIPTOR bLength: 4 bDescriptorType: 0x03 (STRING) wLANGID: English (United States) (0x0409)
8 - 8th exchange, string descriptor
30 Enum Rx S 8010 EA60 8 800602030904FF00 31 Enum Tx 8000 62A0 46 2E0355006E0063006C00650020004A006F006500270073002000730065007200690061006C00200049004F002000 Frame 292: 110 bytes on wire (880 bits), 110 bytes captured (880 bits) on interface usbmon2, id 0 USB URB STRING DESCRIPTOR bLength: 46 bDescriptorType: 0x03 (STRING) bString: Uncle Joe's serial IO
9 - 9th exchange, string descriptor
33 Enum Rx S 8010 EA60 8 800601030904FF00 34 Enum Tx 8000 62A0 38 260353005400200061006E006400200055006E0063006C00650020004A006F00650020002000 Frame 294: 102 bytes on wire (816 bits), 102 bytes captured (816 bits) on interface usbmon2, id 0 USB URB STRING DESCRIPTOR bLength: 38 bDescriptorType: 0x03 (STRING) bString: ST and Uncle Joe
10 - 10th exchange, string descriptor
36 Enum Rx S 8010 EA60 8 800603030904FF00 37 Enum Tx 8000 62A0 12 0C0331003300310033000000 Frame 296: 76 bytes on wire (608 bits), 76 bytes captured (608 bits) on interface usbmon2, id 0 USB URB STRING DESCRIPTOR bLength: 12 bDescriptorType: 0x03 (STRING) bString: 1313
11 - 11th exchange, set configuration
39 Enum Rx S 8010 EA60 8 0009010000000000 40 Enum Tx 8000 72A0 0
12 - 12th exchange, set line coding request (no response)
41 Enum Rx S 8010 EA60 8 2120000000000700 Frame 299: 71 bytes on wire (568 bits), 71 bytes captured (568 bits) on interface usbmon2, id 0 USB URB Setup Data bmRequestType: 0x21 USB Communications and CDC Control [Subclass: Abstract Control Model (0x02)] Request Code: SET LINE CODING (0x20) Value: 0 Index: 0 Length: 7 Payload: 80250000000008 Data Fragment: 80250000000008
13 - last exchange, Control out, no response
42 Enum Rx 8010 A270 7 80250000000008
That is the nature of enumeration. A scripted bunch of responses are set up in the device and handed out when they are asked for.
Tom's Computer Info / tom@mmto.org