こんな結線になっているらしいよ.
------------------ Device Descriptor ----------------------
bLength : 0x12 (18 bytes)
bDescriptorType : 0x01 (Device Descriptor)
bcdUSB : 0x200 (USB Version 2.00) (1)
bDeviceClass : 0xEF (Miscellaneous)
bDeviceSubClass : 0x02
bDeviceProtocol : 0x01 (IAD - Interface Association Descriptor)
bMaxPacketSize0 : 0x40 (64 bytes)
idVendor : 0x0D8C (C-MEDIA ELECTRONICS INC.)
idProduct : 0x0004
bcdDevice : 0x0208
iManufacturer : 0x01 (String Descriptor 1)
*!*ERROR String descriptor not found (2)
iProduct : 0x02 (String Descriptor 2)
*!*ERROR String descriptor not found
iSerialNumber : 0x00 (No String Descriptor)
bNumConfigurations : 0x01 (1 Configuration)
(1)USB2.0である.
(2)stringが無いエラーが生じている.
------------ Configuration Descriptor -------------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x02 (Configuration Descriptor)
wTotalLength : 0x012A (298 bytes)
bNumInterfaces : 0x03 (3 Interfaces) (1)
bConfigurationValue : 0x01 (Configuration 1)
iConfiguration : 0x00 (No String Descriptor)
bmAttributes : 0xC0
D7: Reserved, set 1 : 0x01
D6: Self Powered : 0x01 (yes)
D5: Remote Wakeup : 0x00 (no)
D4..0: Reserved, set 0 : 0x00
MaxPower : 0x32 (100 mA)
(1)3つのinterfaceがある
--------------- IAD Descriptor --------------------
bLength : 0x08 (8 bytes)
bDescriptorType : 0x0B
bFirstInterface : 0x00
bInterfaceCount : 0x02
bFunctionClass : 0x01 (Audio)
bFunctionSubClass : 0x00 (undefined)
bFunctionProtocol : 0x20 (AF 2.0)
iFunction : 0x00 (No String Descriptor)
IADの意味はよくわからない
interface0ここから Audio Control interface
----------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x00
bAlternateSetting : 0x00
bNumEndpoints : 0x01 (1 Endpoint) (A)
bInterfaceClass : 0x01 (Audio)
bInterfaceSubClass : 0x01 (Audio Control)
bInterfaceProtocol : 0x20 (Device Protocol Version 2.0)
iInterface : 0x00 (No String Descriptor)
(A)EPを1つ抱えている →interface0末尾にEP15がある
---- Audio Control Interface Header Descriptor 2.0 ----
bLength : 0x09 (9 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x01 (Header 2.0)
bcdADC : 0x0200 (2.0)
bCategory : 0x0A (pro-audio)
wTotalLength : 0x0100 (256 bytes)
bmControls : 0x00
D1..0: Latency : 0x00 (not present)
D7..2: Reserved : 0x00
----- Audio Control Input Terminal Descriptor 2.0 -----
bLength : 0x11 (17 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x02 (Input Terminal 2.0) (A)
bTerminalID : 0x01 (B)
wTerminalType : 0x0101 (USB streaming) (C)
bAssocTerminal : 0x00
bCSourceID : 0x12 (18) (D)
bNrChannels : 0x00 (0 Channels)
bmChannelConfig : 0x00000000 (-)
iChannelNames : 0x00 (No String Descriptor)
bmControls : 0x0040
D1..0 : Copy Protect : 0x00 (not present)
D3..2 : Connector : 0x00 (not present)
D5..4 : Overload : 0x00 (not present)
D7..6 : Cluster : 0x01 (read only)
D9..8 : Underflow : 0x00 (not present)
D11..10: Overflow : 0x00 (not present)
D15..12: Reserved : 0x00
iTerminal : 0x00 (No String Descriptor)
(AB)入力ターミナル 1番
(C)streaming
(D)clockソースは18番
----- Audio Control Output Terminal Descriptor 2.0 ----
bLength : 0x0C (12 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x03 (Output Terminal 2.0) (A)
bTerminalID : 0x07 (B)
wTerminalType : 0x0301 (Speaker) (C)
bAssocTerminal : 0x00 (0)
bSourceID : 0x0D (13) (D)
bCSourceID : 0x12 (18) (E)
iTerminal : 0x00 (No String Descriptor)
(ABC)出力ターミナル 7番 スピーカー
(D)ソースは13番
(E)clockソースは18番
------ Audio Control Feature Unit Descriptor 2.0 ------
bLength : 0x12 (18 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x06 (Feature Unit 2.0) (A)
bUnitID : 0x0D (13) (B)
bSourceID : 0x01 (1) (C)
bmaControls[0] : 0x03, 0x00, 0x00, 0x00
D1..0 : Mute : 0x03 (host programmable)
中略
bmaControls[1] : 0x00, 0x00, 0x00, 0x00
中略
bmaControls[2] : 0x00, 0x00, 0x00, 0x00
中略
iFeature : 0x00 (No String Descriptor)
(AB)Feature unit 13番
(C)ソースは1番
--- Audio Control Clock Source Unit Descriptor 2.0 ----
bLength : 0x08 (8 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x0A (Clock Source 2.0) (A)
bClockID : 0x12 (B)
bmAttributes : 0x03
D1..0: Clock Type : 0x03
D2 : Sync to SOF : 0x00
D7..3: Reserved : 0x00
bmControls : 0x07
D1..0: Clock Frequency : 0x03 (host programmable)
D3..2: Clock Validity : 0x01 (read only)
D7..4: Reserved : 0x00
bAssocTerminal : 0x00
iClockSource : 0x00 (No String Descriptor)
(AB)clock source unit 18番
-------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x8F (Direction=IN EndpointID=15)
bmAttributes : 0x03 (TransferType=Interrupt)
wMaxPacketSize : 0x0006
Bits 15..13 : 0x00 (reserved, must be zero)
Bits 12..11 : 0x00 (0 additional transactions per microframe -> allows 1..1024 bytes per packet)
Bits 10..0 : 0x06 (6 bytes per packet)
bInterval : 0x04 (4 ms)
interface0 ここまで
interface1ここから Audio stream
Alt0ここから 無音状態
-------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x01
bAlternateSetting : 0x00
bNumEndpoints : 0x00 (Default Control Pipe only)
bInterfaceClass : 0x01 (Audio)
bInterfaceSubClass : 0x02 (Audio Streaming)
bInterfaceProtocol : 0x20 (Device Protocol Version 2.0)
iInterface : 0x04 (String Descriptor 4)
*!*ERROR String descriptor not found
Alt0ここまで 無音状態
Alt1ここから 16bit
------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x01
bAlternateSetting : 0x01
bNumEndpoints : 0x02 (2 Endpoints)
bInterfaceClass : 0x01 (Audio)
bInterfaceSubClass : 0x02 (Audio Streaming)
bInterfaceProtocol : 0x20 (Device Protocol Version 2.0)
iInterface : 0x00 (No String Descriptor)
----- Audio Streaming Interface Descriptor 2.0 -------
bLength : 0x10 (16 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x01 (AS General)
bTerminalLink : 0x01 (1) (A)
bmControls : 0x05
D1..0: Active Alt Settng: 0x01 (read only)
D3..2: Valid Alt Settng : 0x01 (read only)
D7..4: Reserved : 0x00
bFormatType : 0x01 (FORMAT_TYPE_I)
bmFormats : 0x00000001 (PCM)
bNrChannels : 0x02 (2 channels)
bmChannelConfig : 0x00000003 (FL, FR)
iChannelNames : 0x00 (No String Descriptor)
(A)入力ターミナル1に接続
----- Audio Streaming Format Type Descriptor 2.0 ------
bLength : 0x06 (6 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x02 (Format Type)
bFormatType : 0x01 (FORMAT_TYPE_I)
bSubslotSize : 0x02 (2 bytes)
bBitResolution : 0x10 (16 bits)
----------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x05 (Direction=OUT EndpointID=5)
bmAttributes : 0x05 (TransferType=Isochronous SyncType=Asynchronous EndpointType=Data)
wMaxPacketSize : 0x00C8
Bits 15..13 : 0x00 (reserved, must be zero)
Bits 12..11 : 0x00 (0 additional transactions per microframe -> allows 1..1024 bytes per packet)
Bits 10..0 : 0xC8 (200 bytes per packet)
bInterval : 0x01 (1 ms)
------- Audio Data Endpoint Descriptor ------------
bLength : 0x08 (8 bytes)
bDescriptorType : 0x25 (Audio Endpoint Descriptor)
bDescriptorSubtype : 0x01 (General)
bmAttributes : 0x00
bLockDelayUnits : 0x00
wLockDelay : 0x0000
------------ Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x85 (Direction=IN EndpointID=5)
bmAttributes : 0x11 (TransferType=Isochronous SyncType=None EndpointType=Feedback)
wMaxPacketSize : 0x0004
Bits 15..13 : 0x00 (reserved, must be zero)
Bits 12..11 : 0x00 (0 additional transactions per microframe -> allows 1..1024 bytes per packet)
Bits 10..0 : 0x04 (4 bytes per packet)
bInterval : 0x04 (4 ms)
Alt1ここまで 16bit
Alt2ここから 24bit
------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x01
bAlternateSetting : 0x02
bNumEndpoints : 0x02 (2 Endpoints)
bInterfaceClass : 0x01 (Audio)
bInterfaceSubClass : 0x02 (Audio Streaming)
bInterfaceProtocol : 0x20 (Device Protocol Version 2.0)
iInterface : 0x00 (No String Descriptor)
----- Audio Streaming Interface Descriptor 2.0 -------
bLength : 0x10 (16 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x01 (AS General)
bTerminalLink : 0x01 (1)
bmControls : 0x05
D1..0: Active Alt Settng: 0x01 (read only)
D3..2: Valid Alt Settng : 0x01 (read only)
D7..4: Reserved : 0x00
bFormatType : 0x01 (FORMAT_TYPE_I)
bmFormats : 0x00000001 (PCM)
bNrChannels : 0x02 (2 channels)
bmChannelConfig : 0x00000003 (FL, FR)
iChannelNames : 0x00 (No String Descriptor)
---- Audio Streaming Format Type Descriptor 2.0 ------
bLength : 0x06 (6 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x02 (Format Type)
bFormatType : 0x01 (FORMAT_TYPE_I)
bSubslotSize : 0x03 (3 bytes)
bBitResolution : 0x18 (24 bits)
------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x05 (Direction=OUT EndpointID=5)
bmAttributes : 0x05 (TransferType=Isochronous SyncType=Asynchronous EndpointType=Data)
wMaxPacketSize : 0x012C
Bits 15..13 : 0x00 (reserved, must be zero)
Bits 12..11 : 0x00 (0 additional transactions per microframe -> allows 1..1024 bytes per packet)
Bits 10..0 : 0x12C (300 bytes per packet)
bInterval : 0x01 (1 ms)
------ Audio Data Endpoint Descriptor ------------
bLength : 0x08 (8 bytes)
bDescriptorType : 0x25 (Audio Endpoint Descriptor)
bDescriptorSubtype : 0x01 (General)
bmAttributes : 0x00
bLockDelayUnits : 0x00
wLockDelay : 0x0000
-------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x85 (Direction=IN EndpointID=5)
bmAttributes : 0x11 (TransferType=Isochronous SyncType=None EndpointType=Feedback)
wMaxPacketSize : 0x0004
Bits 15..13 : 0x00 (reserved, must be zero)
Bits 12..11 : 0x00 (0 additional transactions per microframe -> allows 1..1024 bytes per packet)
Bits 10..0 : 0x04 (4 bytes per packet)
bInterval : 0x04 (4 ms)
ALT2ここまで 24bit
Alt3ここから 32bit
----------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x01
bAlternateSetting : 0x03
bNumEndpoints : 0x02 (2 Endpoints)
bInterfaceClass : 0x01 (Audio)
bInterfaceSubClass : 0x02 (Audio Streaming)
bInterfaceProtocol : 0x20 (Device Protocol Version 2.0)
iInterface : 0x00 (No String Descriptor)
----- Audio Streaming Interface Descriptor 2.0 -------
bLength : 0x10 (16 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x01 (AS General)
bTerminalLink : 0x01 (1)
bmControls : 0x05
D1..0: Active Alt Settng: 0x01 (read only)
D3..2: Valid Alt Settng : 0x01 (read only)
D7..4: Reserved : 0x00
bFormatType : 0x01 (FORMAT_TYPE_I)
bmFormats : 0x00000001 (PCM)
bNrChannels : 0x02 (2 channels)
bmChannelConfig : 0x00000003 (FL, FR)
iChannelNames : 0x00 (No String Descriptor)
----- Audio Streaming Format Type Descriptor 2.0 ------
bLength : 0x06 (6 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x02 (Format Type)
bFormatType : 0x01 (FORMAT_TYPE_I)
bSubslotSize : 0x04 (4 bytes)
bBitResolution : 0x20 (32 bits)
------------ Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x05 (Direction=OUT EndpointID=5)
bmAttributes : 0x05 (TransferType=Isochronous SyncType=Asynchronous EndpointType=Data)
wMaxPacketSize : 0x0190
Bits 15..13 : 0x00 (reserved, must be zero)
Bits 12..11 : 0x00 (0 additional transactions per microframe -> allows 1..1024 bytes per packet)
Bits 10..0 : 0x190 (400 bytes per packet)
bInterval : 0x01 (1 ms)
-------- Audio Data Endpoint Descriptor ------------
bLength : 0x08 (8 bytes)
bDescriptorType : 0x25 (Audio Endpoint Descriptor)
bDescriptorSubtype : 0x01 (General)
bmAttributes : 0x00
bLockDelayUnits : 0x00
wLockDelay : 0x0000
------------ Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x85 (Direction=IN EndpointID=5)
bmAttributes : 0x11 (TransferType=Isochronous SyncType=None EndpointType=Feedback)
wMaxPacketSize : 0x0004
Bits 15..13 : 0x00 (reserved, must be zero)
Bits 12..11 : 0x00 (0 additional transactions per microframe -> allows 1..1024 bytes per packet)
Bits 10..0 : 0x04 (4 bytes per packet)
bInterval : 0x04 (4 ms)
-------------- IAD Descriptor --------------------
bLength : 0x08 (8 bytes)
bDescriptorType : 0x0B
bFirstInterface : 0x02
bInterfaceCount : 0x01
*!*ERROR bInterfaceCount must be greater than 1
bFunctionClass : 0x03 (HID - Human Interface Device)
bFunctionSubClass : 0x00
bFunctionProtocol : 0x00
iFunction : 0x00 (No String Descriptor)
Alt3ここまで 32bit
interface1ここまで
interface2ここから HID
----------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x02
bAlternateSetting : 0x00
bNumEndpoints : 0x01 (1 Endpoint)
bInterfaceClass : 0x03 (HID - Human Interface Device)
bInterfaceSubClass : 0x00 (None)
bInterfaceProtocol : 0x00 (None)
iInterface : 0x00 (No String Descriptor)
-------------- HID Descriptor --------------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x21 (HID Descriptor)
bcdHID : 0x0100 (HID Version 1.00)
bCountryCode : 0x00 (00 = not localized)
bNumDescriptors : 0x01
Descriptor 1:
bDescriptorType : 0x22 (Class=Report)
wDescriptorLength : 0x0032 (50 bytes)
05 0C Usage Page (Consumer)
09 01 Usage (Consumer Control)
A1 01 Collection (Application)
15 00 Logical Minimum (0)
25 01 Logical Maximum (1)
09 E9 Usage (Volume Increment)
09 EA Usage (Volume Decrement)
75 01 Report Size (1)
95 02 Report Count (2)
81 02 Input (Var)
09 E2 Usage (Mute)
09 00 Usage (Unassigned)
81 06 Input (Var, Rel)
09 00 Usage (Unassigned)
95 04 Report Count (4)
81 02 Input (Var)
26 FF 00 Logical Maximum (255)
09 00 Usage (Unassigned)
75 08 Report Size (8)
95 0F Report Count (15)
81 02 Input (Var)
09 00 Usage (Unassigned)
95 10 Report Count (16)
91 02 Output (Var)
C0 End Collection
------------ Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x84 (Direction=IN EndpointID=4)
bmAttributes : 0x03 (TransferType=Interrupt)
wMaxPacketSize : 0x0010
Bits 15..13 : 0x00 (reserved, must be zero)
Bits 12..11 : 0x00 (0 additional transactions per microframe -> allows 1..1024 bytes per packet)
Bits 10..0 : 0x10 (16 bytes per packet)
bInterval : 0x04 (4 ms)
interface2ここまで HID
------------- Device Qualifier Descriptor -----------------
bLength : 0x0A (10 bytes)
bDescriptorType : 0x06 (Device_qualifier Descriptor)
bcdUSB : 0x200 (USB Version 2.00)
bDeviceClass : 0xEF (Miscellaneous)
bDeviceSubClass : 0x02
bDeviceProtocol : 0x01 (IAD - Interface Association Descriptor)
bMaxPacketSize0 : 0x40 (64 Bytes)
bNumConfigurations : 0x01 (1 other-speed configuration)
bReserved : 0x00
----------------------------------
ここから下はother speed configである.USB2.0だけどHigh speed以外の転送レートで動かすときに使うらしい.中身は同じっぽいのでスルー.
--------- Other Speed Configuration Descriptor -------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x07 (Other_speed_configuration Descriptor)
wTotalLength : 0x00F5 (245 bytes)
bNumInterfaces : 0x03 (3 Interfaces)
bConfigurationValue : 0x01 (Configuration 1)
iConfiguration : 0x00 (No String Descriptor)
bmAttributes : 0xC0
D7: Reserved, set 1 : 0x01
D6: Self Powered : 0x01 (yes)
D5: Remote Wakeup : 0x00 (no)
D4..0: Reserved, set 0 : 0x00
MaxPower : 0x32 (100 mA)
-------------- IAD Descriptor --------------------
bLength : 0x08 (8 bytes)
bDescriptorType : 0x0B
bFirstInterface : 0x00
bInterfaceCount : 0x02
bFunctionClass : 0x01 (Audio)
bFunctionSubClass : 0x00 (undefined)
bFunctionProtocol : 0x20 (AF 2.0)
iFunction : 0x00 (No String Descriptor)
---------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x00
bAlternateSetting : 0x00
bNumEndpoints : 0x01 (1 Endpoint)
bInterfaceClass : 0x01 (Audio)
bInterfaceSubClass : 0x01 (Audio Control)
bInterfaceProtocol : 0x20 (Device Protocol Version 2.0)
iInterface : 0x00 (No String Descriptor)
---- Audio Control Interface Header Descriptor 2.0 ----
bLength : 0x09 (9 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x01 (Header 2.0)
bcdADC : 0x0200 (2.0)
bCategory : 0x0A (pro-audio)
wTotalLength : 0x0100 (256 bytes)
bmControls : 0x00
D1..0: Latency : 0x00 (not present)
D7..2: Reserved : 0x00
----- Audio Control Input Terminal Descriptor 2.0 -----
bLength : 0x11 (17 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x02 (Input Terminal 2.0)
bTerminalID : 0x01
wTerminalType : 0x0101 (USB streaming)
bAssocTerminal : 0x00
bCSourceID : 0x12 (18)
bNrChannels : 0x00 (0 Channels)
bmChannelConfig : 0x00000000 (-)
iChannelNames : 0x00 (No String Descriptor)
bmControls : 0x0040
D1..0 : Copy Protect : 0x00 (not present)
D3..2 : Connector : 0x00 (not present)
D5..4 : Overload : 0x00 (not present)
D7..6 : Cluster : 0x01 (read only)
D9..8 : Underflow : 0x00 (not present)
D11..10: Overflow : 0x00 (not present)
D15..12: Reserved : 0x00
iTerminal : 0x00 (No String Descriptor)
----- Audio Control Output Terminal Descriptor 2.0 ----
bLength : 0x0C (12 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x03 (Output Terminal 2.0)
bTerminalID : 0x07
wTerminalType : 0x0301 (Speaker)
bAssocTerminal : 0x00 (0)
bSourceID : 0x0D (13)
bCSourceID : 0x12 (18)
iTerminal : 0x00 (No String Descriptor)
------ Audio Control Feature Unit Descriptor 2.0 ------
bLength : 0x12 (18 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x06 (Feature Unit 2.0)
bUnitID : 0x0D (13)
bSourceID : 0x01 (1)
bmaControls[0] : 0x03, 0x00, 0x00, 0x00
D1..0 : Mute : 0x03 (host programmable)
中略
bmaControls[1] : 0x00, 0x00, 0x00, 0x00
中略
bmaControls[2] : 0x00, 0x00, 0x00, 0x00
中略
iFeature : 0x00 (No String Descriptor)
--- Audio Control Clock Source Unit Descriptor 2.0 ----
bLength : 0x08 (8 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x0A (Clock Source 2.0)
bClockID : 0x12
bmAttributes : 0x03
D1..0: Clock Type : 0x03
D2 : Sync to SOF : 0x00
D7..3: Reserved : 0x00
bmControls : 0x07
D1..0: Clock Frequency : 0x03 (host programmable)
D3..2: Clock Validity : 0x01 (read only)
D7..4: Reserved : 0x00
bAssocTerminal : 0x00
iClockSource : 0x00 (No String Descriptor)
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x8F (Direction=IN EndpointID=15)
bmAttributes : 0x03 (TransferType=Interrupt)
wMaxPacketSize : 0x0006
Bits 15..13 : 0x00 (reserved, must be zero)
Bits 12..11 : 0x00 (0 additional transactions per microframe -> allows 1..1024 bytes per packet)
Bits 10..0 : 0x06 (6 bytes per packet)
bInterval : 0x01 (1 ms)
-------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x01
bAlternateSetting : 0x00
bNumEndpoints : 0x00 (Default Control Pipe only)
bInterfaceClass : 0x01 (Audio)
bInterfaceSubClass : 0x02 (Audio Streaming)
bInterfaceProtocol : 0x20 (Device Protocol Version 2.0)
iInterface : 0x04 (String Descriptor 4)
*!*ERROR String descriptor not found
------------ Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x01
bAlternateSetting : 0x01
bNumEndpoints : 0x02 (2 Endpoints)
bInterfaceClass : 0x01 (Audio)
bInterfaceSubClass : 0x02 (Audio Streaming)
bInterfaceProtocol : 0x20 (Device Protocol Version 2.0)
iInterface : 0x00 (No String Descriptor)
----- Audio Streaming Interface Descriptor 2.0 -------
bLength : 0x10 (16 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x01 (AS General)
bTerminalLink : 0x01 (1)
bmControls : 0x05
D1..0: Active Alt Settng: 0x01 (read only)
D3..2: Valid Alt Settng : 0x01 (read only)
D7..4: Reserved : 0x00
bFormatType : 0x01 (FORMAT_TYPE_I)
bmFormats : 0x00000001 (PCM)
bNrChannels : 0x02 (2 channels)
bmChannelConfig : 0x00000003 (FL, FR)
iChannelNames : 0x00 (No String Descriptor)
----- Audio Streaming Format Type Descriptor 2.0 ------
bLength : 0x06 (6 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x02 (Format Type)
bFormatType : 0x01 (FORMAT_TYPE_I)
bSubslotSize : 0x02 (2 bytes)
bBitResolution : 0x10 (16 bits)
---------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x05 (Direction=OUT EndpointID=5)
bmAttributes : 0x05 (TransferType=Isochronous SyncType=Asynchronous EndpointType=Data)
wMaxPacketSize : 0x00C8
Bits 15..13 : 0x00 (reserved, must be zero)
Bits 12..11 : 0x00 (0 additional transactions per microframe -> allows 1..1024 bytes per packet)
Bits 10..0 : 0xC8 (200 bytes per packet)
bInterval : 0x01 (1 ms)
---------- Audio Data Endpoint Descriptor ------------
bLength : 0x08 (8 bytes)
bDescriptorType : 0x25 (Audio Endpoint Descriptor)
bDescriptorSubtype : 0x01 (General)
bmAttributes : 0x00
bLockDelayUnits : 0x00
wLockDelay : 0x0000
-------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x85 (Direction=IN EndpointID=5)
bmAttributes : 0x11 (TransferType=Isochronous SyncType=None EndpointType=Feedback)
wMaxPacketSize : 0x0003
Bits 15..13 : 0x00 (reserved, must be zero)
Bits 12..11 : 0x00 (0 additional transactions per microframe -> allows 1..1024 bytes per packet)
Bits 10..0 : 0x03 (3 bytes per packet)
bInterval : 0x01 (1 ms)
--------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x01
bAlternateSetting : 0x02
bNumEndpoints : 0x02 (2 Endpoints)
bInterfaceClass : 0x01 (Audio)
bInterfaceSubClass : 0x02 (Audio Streaming)
bInterfaceProtocol : 0x20 (Device Protocol Version 2.0)
iInterface : 0x00 (No String Descriptor)
----- Audio Streaming Interface Descriptor 2.0 -------
bLength : 0x10 (16 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x01 (AS General)
bTerminalLink : 0x01 (1)
bmControls : 0x05
D1..0: Active Alt Settng: 0x01 (read only)
D3..2: Valid Alt Settng : 0x01 (read only)
D7..4: Reserved : 0x00
bFormatType : 0x01 (FORMAT_TYPE_I)
bmFormats : 0x00000001 (PCM)
bNrChannels : 0x02 (2 channels)
bmChannelConfig : 0x00000003 (FL, FR)
iChannelNames : 0x00 (No String Descriptor)
---- Audio Streaming Format Type Descriptor 2.0 ------
bLength : 0x06 (6 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x02 (Format Type)
bFormatType : 0x01 (FORMAT_TYPE_I)
bSubslotSize : 0x03 (3 bytes)
bBitResolution : 0x18 (24 bits)
---------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x05 (Direction=OUT EndpointID=5)
bmAttributes : 0x05 (TransferType=Isochronous SyncType=Asynchronous EndpointType=Data)
wMaxPacketSize : 0x012C
Bits 15..13 : 0x00 (reserved, must be zero)
Bits 12..11 : 0x00 (0 additional transactions per microframe -> allows 1..1024 bytes per packet)
Bits 10..0 : 0x12C (300 bytes per packet)
bInterval : 0x01 (1 ms)
---------- Audio Data Endpoint Descriptor ------------
bLength : 0x08 (8 bytes)
bDescriptorType : 0x25 (Audio Endpoint Descriptor)
bDescriptorSubtype : 0x01 (General)
bmAttributes : 0x00
bLockDelayUnits : 0x00
wLockDelay : 0x0000
-------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x85 (Direction=IN EndpointID=5)
bmAttributes : 0x11 (TransferType=Isochronous SyncType=None EndpointType=Feedback)
wMaxPacketSize : 0x0003
Bits 15..13 : 0x00 (reserved, must be zero)
Bits 12..11 : 0x00 (0 additional transactions per microframe -> allows 1..1024 bytes per packet)
Bits 10..0 : 0x03 (3 bytes per packet)
bInterval : 0x01 (1 ms)
--------------- IAD Descriptor --------------------
bLength : 0x08 (8 bytes)
bDescriptorType : 0x0B
bFirstInterface : 0x02
bInterfaceCount : 0x01
*!*ERROR bInterfaceCount must be greater than 1
bFunctionClass : 0x03 (HID - Human Interface Device)
bFunctionSubClass : 0x00
bFunctionProtocol : 0x00
iFunction : 0x00 (No String Descriptor)
----------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x02
bAlternateSetting : 0x00
bNumEndpoints : 0x01 (1 Endpoint)
bInterfaceClass : 0x03 (HID - Human Interface Device)
bInterfaceSubClass : 0x00 (None)
bInterfaceProtocol : 0x00 (None)
iInterface : 0x00 (No String Descriptor)
-------------- HID Descriptor --------------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x21 (HID Descriptor)
bcdHID : 0x0100 (HID Version 1.00)
bCountryCode : 0x00 (00 = not localized)
bNumDescriptors : 0x01
Descriptor 1:
bDescriptorType : 0x22 (Class=Report)
wDescriptorLength : 0x0032 (50 bytes)
05 0C Usage Page (Consumer)
09 01 Usage (Consumer Control)
A1 01 Collection (Application)
15 00 Logical Minimum (0)
25 01 Logical Maximum (1)
09 E9 Usage (Volume Increment)
09 EA Usage (Volume Decrement)
75 01 Report Size (1)
95 02 Report Count (2)
81 02 Input (Var)
09 E2 Usage (Mute)
09 00 Usage (Unassigned)
81 06 Input (Var, Rel)
09 00 Usage (Unassigned)
95 04 Report Count (4)
81 02 Input (Var)
26 FF 00 Logical Maximum (255)
09 00 Usage (Unassigned)
75 08 Report Size (8)
95 0F Report Count (15)
81 02 Input (Var)
09 00 Usage (Unassigned)
95 10 Report Count (16)
91 02 Output (Var)
C0 End Collection
------------ Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x84 (Direction=IN EndpointID=4)
bmAttributes : 0x03 (TransferType=Interrupt)
wMaxPacketSize : 0x0010
Bits 15..13 : 0x00 (reserved, must be zero)
Bits 12..11 : 0x00 (0 additional transactions per microframe -> allows 1..1024 bytes per packet)
Bits 10..0 : 0x10 (16 bytes per packet)
bInterval : 0x01 (1 ms)
--------------- String Descriptors -------------------
none