Andy Peters wrote:Does it enumerate as an Audio Class 2.0 or 1.0 device? The descriptors for the former are more involved than for the latter.
Do you have a bus analyzer which will let you see what is happening?
Hi Andy,
I'm enumerating it as an Audio Class 2.0.
For my Audio Control Descriptor, I am defining:
- USB Interface Descriptor
- Class-Specific Audio Control Descriptor
- For both Input and Output Directions:
- Input Terminal Descriptor
- Output Terminal Descriptor
- Feature Unit Descriptor
- Clock Source Descriptor
I'm afraid I do not have a bus analyzer. As this is my first time working with USB Protocol, I am not sure what I need to troubleshoot properly.
EDIT: I've been using a free usb bus monitor software and I've noticed that my terminal, feature unit descriptors are not being detected so I'll look more into it and let you know later
EDIT2: So I've switched over to USB Audio 1.0 (since it was easier to understand and test it) and I've got the following (below). Only problem is that it's still doesn't function properly. Any ideas? Am I still not enumerating correctly?
Code: Select all
Configuration Descriptor
Number of interfaces: 4
Configuration value: 0x1
Attributes: Remote wakeup, Bus powered
Max power: 100 mA
Interface Descriptor: 0, Alternate setting: 0
Number of endpoints: 1
Interface class: 0x3 - Human Interface Device
Interface subclass: 0x1 - Boot Interface Subclass
Interface protocol: 0x2 - Mouse
Endpoint address 0x1, Input, Interrupt, max packet size: 8 bytes, update interval: 512 microframes
Interface Descriptor: 1, Alternate setting: 0
Number of endpoints: 0
Interface class: 0x1 - Audio
Interface subclass: 0x1 - Control Device
Interface protocol: 0x0 - Unknown
Audio Control (AC) Descriptor: Header Descriptor
Audio Device Class Specification Release Number: 256
Total Length: 70
Number of Interfaces: 2
Interface0: 3
Interface1: 2
Audio Control (AC) Descriptor: Input Terminal Descriptor
Unit ID: 4
Terminal Type: 257
Associated Output Terminal: 0
Number Of Output Channels 1
Channel Configuration: 1
Name (String Descriptor ID): 0
Description (String Descriptor ID): 0
Audio Control (AC) Descriptor: Output Terminal Descriptor
Unit ID: 6
Terminal Type: 257
Associated Output Terminal: 0
Source ID: 5
Description (String Descriptor ID): 0
Audio Control (AC) Descriptor: Feature Unit Descriptor
Unit ID: 5
Source ID: 4
Control Size: 2
Description (String Descriptor ID): 0
Audio Control (AC) Descriptor: Input Terminal Descriptor
Unit ID: 1
Terminal Type: 257
Associated Output Terminal: 0
Number Of Output Channels 1
Channel Configuration: 4
Name (String Descriptor ID): 0
Description (String Descriptor ID): 0
Audio Control (AC) Descriptor: Feature Unit Descriptor
Unit ID: 2
Source ID: 1
Control Size: 2
Description (String Descriptor ID): 0
Audio Control (AC) Descriptor: Output Terminal Descriptor
Unit ID: 3
Terminal Type: 257
Associated Output Terminal: 0
Source ID: 2
Description (String Descriptor ID): 0
Interface Descriptor: 2, Alternate setting: 0
Number of endpoints: 0
Interface class: 0x1 - Audio
Interface subclass: 0x2 - Streaming
Interface protocol: 0x0 - Unknown
Interface Descriptor: 2, Alternate setting: 1
Number of endpoints: 1
Interface class: 0x1 - Audio
Interface subclass: 0x2 - Streaming
Interface protocol: 0x0 - Unknown
Audio Streaming (AS) Descriptor: Class-Specific Descriptor
Terminal Link: 3
Delay 1
Format Tag: 1
Audio Streaming (AS) Descriptor: Format Type Descriptor
Format Type: 1
Number of Channels: 1
Subframe Size: 2
Bit Resolution: 16
Endpoint address 0x5, Input, Isochronous, max packet size: 512 bytes
Audio Streaming (AS) Isochronus Audio Data Endpoint Descriptor
Attributes: 00000001(bitmap)
Delay Units: 0
Lock Delay: 0
Interface Descriptor: 3, Alternate setting: 0
Number of endpoints: 0
Interface class: 0x1 - Audio
Interface subclass: 0x2 - Streaming
Interface protocol: 0x0 - Unknown
Interface Descriptor: 3, Alternate setting: 1
Number of endpoints: 1
Interface class: 0x1 - Audio
Interface subclass: 0x2 - Streaming
Interface protocol: 0x0 - Unknown
Audio Streaming (AS) Descriptor: Class-Specific Descriptor
Terminal Link: 4
Delay 1
Format Tag: 1
Audio Streaming (AS) Descriptor: Format Type Descriptor
Format Type: 1
Number of Channels: 1
Subframe Size: 2
Bit Resolution: 16
Endpoint address 0x6, Output, Isochronous, max packet size: 512 bytes
Audio Streaming (AS) Isochronus Audio Data Endpoint Descriptor
Attributes: 00000000(bitmap)
Delay Units: 0
Lock Delay: 0
Thanks