Does USBFS 3.20 not support USB Audio Class 2.0?

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

cross mob
JoBr_1593366
Level 5
Level 5
100 sign-ins 50 questions asked 100 replies posted

I tried to replace all the UAC1 descriptors with UAC2 descriptors, but Windows says "This device cannot start. (Code 10)" and tdd.exe says *** ERROR: Descriptor has errors! ***

For example:

Endpoint Descriptor:
------------------------------
0x09 bLength
0x05 bDescriptorType
*** ERROR: Invalid descriptor length 0x09
Hex dump:
0x09 0x05 0x86 0x03 0x02 0x00 0x1E 0x00 0x00

 

It looks like this was length 9 in UAC1 (Table 4-17: Standard AC Interrupt Endpoint Descriptor) but is now supposed to be length 7 (Table 4-25: Standard AC Interrupt Endpoint Descriptor).  The bRefresh and bSynchAddress fields have been removed.  But USBFS component does not have "Endpoint Descriptor 2.0", it just has "Endpoint Descriptor" with bRefresh and bSynchAddress fields that cannot be turned off?

 

It has similar errors for other interfaces and endpoints:

 

AS Interface Descriptor:
------------------------------
0x07 bLength
0x24 bDescriptorType
0x01 bDescriptorSubtype
*** ERROR: Invalid descriptor size 0x07
Hex dump:
0x07 0x24 0x01 0x01 0x01 0x01 0x00

Endpoint Descriptor:
------------------------------
0x09 bLength
0x05 bDescriptorType
*** ERROR: Invalid descriptor length 0x09
Hex dump:
0x09 0x05 0x01 0x05 0x86 0x01 0x01 0x00 0x88

AS Isochronous Data Endpoint Descriptor:
------------------------------
0x07 bLength
0x25 bDescriptorType
0x01 bDescriptorSubtype
*** ERROR: Invalid descriptor size 0x07
Hex dump:
0x07 0x25 0x01 0x01 0x00 0x00 0x00

Endpoint Descriptor:
------------------------------
0x09 bLength
0x05 bDescriptorType
*** ERROR: Invalid descriptor length 0x09
Hex dump:
0x09 0x05 0x88 0x11 0x03 0x00 0x04 0x03 0x00

 

0 Likes
8 Replies
Aashita_R
Moderator
Moderator
Moderator
50 likes received 100 solutions authored 250 replies posted

Hi @JoBr_1593366 ,

Can you please let us know which device are you using? PSoC devices only support USB 2.0 which means full speed device capability is supported. There could be some backward compatibility issue that is happening here.

Please let us know in case of any further query.

Best Regards,

Aashita

 

0 Likes

PSoC 4200L and PSoC3 CY8C34

USB version, USB speed, and USB Audio Class are each different things.  Your example code is already USB 2.0:

------------------------------
Connection Information:
------------------------------
Device current bus speed: FullSpeed

…

------------------------------
Device Descriptor:
------------------------------
…

0x0200 bcdUSB

…

AC Interface Header Descriptor:
------------------------------
…

0x0100 bcdADC

 

In other words, currently your example code (and our products based on it) is:

  • USBFS, USB 2.0, UAC1

I would like to change it to

  • USBFS, USB 2.0, UAC2
0 Likes

I missed the AS General 2.0 descriptors.  Now that I've updated them, the "AS Interface Descriptor" problem is gone. 

But the Endpoint Descriptors are still all saying "Invalid descriptor size". 

I can manually edit them in USB_descr.c and manually edit the sizes to be consistent, and it no longer shows the "Descriptor has errors!" message.

So I think when UAC2 was added in USBFS 2.0 ("Audio Class 2.0 class support"), it was forgotten to add "Endpoint Descriptor 2.0" and "AS Endpoint Descriptor 2.0" and this still needs to be added to the USBFS component.

Or else there is some setting that I missed that automatically changes these?

0 Likes

Looks like it's also missing the "Type I Format Type Descriptor".  Should be listed as "AS Format Type I 2.0".

0 Likes

Can you at least confirm that the functionality doesn't exist and I'm not missing something?   These UAC2 descriptors were added in USBFS component version 2.0, over 10 years ago.  Has no one ever actually tested that they work in all that time?

The website says "The best way to reach out to our Applications Engineers is through our Developer Community" yet it is rare to get any response or solutions to anything posted on here. ☹️

0 Likes

Hi @JoBr_1593366 ,

Apologies for the delay caused. I was loaded with some engagements. Can you please attach the usb_descriptor.c of your application here? I have read your responses and wanted to go through your UAC2 descriptor.

Best Regards,

Aashita

Can I email them to you?  It's for a commercial product.

0 Likes

Hi @JoBr_1593366 ,

Apologies for the delayed response. Yes! You can mail them to me. I will look into it.

Best Regards,

Aashita