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.
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:
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.