FX3 UAC2.0 Enumeration

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
TPI-96
Level 1
Level 1
First reply posted First question asked Welcome!

Hello,

Using the UAC1.0 example I am attempting to create a version that supports UAC2.0.

I have edited the descriptors but I am unable to get the device to enumerate. Windows reports error code 10 "A device which does not exist was specified."

As part of the descriptors I have included a clock source and clock selector entity but I have not yet created the code to handle requests to these. Could this be the reason for the error code I am getting? I am trying to check that the descriptors are correct before I move on to other parts of the code to avoid confusion later.

0 Likes
3 Replies
Rashi_Vatsa
Moderator
Moderator
Moderator
5 likes given 500 solutions authored 1000 replies posted

Hello,

Please share the USB descriptor file for us to check.

Regards,
Rashi
0 Likes
lock attach
Attachments are accessible only for community members.

Hi,

I have attached the descriptor file.

It should describe a device with 8 channels in and 8 channels out. At them moment this is a loopback to test the device. In future this will be used with the GPIF to stream audio to and from the ADC's / DAC's via an FPGA.

Thank you

0 Likes

Hello,

As of now, we do not have an example/reference project for implementing a UAC 2.0 device with FX3. However, please find my comments on the descriptor file shared in your previous response:

1. In the Class-Specific AC Interface Header Descriptor, please change the bcdADC field to 0x00,0x02.

2. The bCSourceID field of all the input and output terminal descriptors should be changed to 0x10 (the bClockID given in Class-Specific AC Clock Source Descriptor) as per the UAC 2.0 specification.

3. In Class-Specific AC Output Terminal Descriptor (USB OUT), the bSourceID should be 0x01 (the terminal ID of ANA_IN).

4. As mentioned in the UAC 2.0 specification, "class-specific AS Format Type descriptor follows the class-specific AS interface descriptor and delivers format type-specific information to the Host. The details and layout of this descriptor for each of the supported Format Types is found in the USB Audio Data Formats document".  The link to the document USB Audio Data Formats document is given below:

https://www.usb.org/sites/default/files/frmts10.pdf

The format of type 1 format descriptor is specified in the above document. As per this description, Audio Out Class-Specific AS Type I Format Descriptor and Audio In Class-Specific AS Type I Format Descriptor are wrong. Please check the same.

5. The descriptor length field of Audio Out Class-Specific AS Isochronous Data EP Descriptor and Audio In Class-Specific AS Isochronous Data EP Descriptor should be 0x08 instead of 0x07.

6. The descriptor length of Audio In Class-Specific AS Interface descriptor should be 0x10.

7. As there are changes in the length of individual descriptors within the configuration descriptor, the wTotalLength field of configuration descriptor needs to be updated.

Please make all the modifications mentioned above and let me know the result.

Best Regards,
Jayakrishna
0 Likes