Max burst limited to 1 when developping a USB composite device (FX3)

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

cross mob
lock attach
Attachments are accessible only for community members.
Anonymous
Not applicable

Hello,

I'm developping a USB composite device that provides two functionnalities:

- Data streaming from USB device to USB host.  : one USB interface, one bulk endpoint

- A virtual COM port for controling the device : CDC class device,

When I put only the streaming interface in the superspeed configuration device, all is OK.  The burst size set in the endpoint companion is properly set and I am able to handle the throughput of the video stream sent by the device.

When I put both configurations in the superspeed configuration device, after customization of .inf files,  both devices are seen on windows (streaming device + serial port), but I am no longer able to handle the video stream.

Printing the video stream endpoint ssmaxburst parameter shows that the ssmaxburst is no longer set to 15 but to 0, as if the superspeed endpoint companion has been ignored in this case (note that I am working on Win7).

Dumping the usb descriptors in linux (lsusb -v) shows that in both cases, the max burst size is set to 15.

Did someone already faced that issue ? How to fix it ?

I attached the usb descriptors for reference.

Regards,

Yann

0 Likes
1 Solution
Anonymous
Not applicable

Thanks for your feedback. It did not solve the issue, but at least the descriptors are cleaner now

In the meanwhile, I was able to find the issue. It's the combination of Win7 and Intel USB 3 controller.

My understanding is that Win7 lacks from native USB 3.0 support, each HW manufacturing providing its own USB 3.0 stack.


On the same PC, I installed another USB controller (from asrock, ASMedia chipset) and everything was fine

On another PC running under win10, using intel USB controller, it is also fine.

View solution in original post

0 Likes
2 Replies
NoriTan
Employee
Employee
25 sign-ins 5 questions asked 10 sign-ins

I found two strange points.

1) It is described in the "USB Interface Association Descriptor Device Class Code and Use Model" that the Device Descriptor using IAD should have class codes as follows.

GS003291.png

USB Interface Association Descriptor Device Class Code and Use Model

http://www.usb.org/developers/docs/whitepapers/iadclasscode_r10.pdf

2) It is described in the "Interface association Descriptors ECN" document that the bFunctionClass in the Interface Association Descriptor (IAD) must be specified.

GS003289.png

Interface Association Descriptors ENGINEERING CHANGE NOTICE (ECN)

http://www.usb.org/developers/docs/InterfaceAssociationDescriptor_ecn.pdf

The Device class code is described in the "Defined 1.0 Class Codes" WEB page.  The class code of CDC is 0x02.

USB.org - Defined 1.0 Class Codes

Regards,

Noriaki

0 Likes
Anonymous
Not applicable

Thanks for your feedback. It did not solve the issue, but at least the descriptors are cleaner now

In the meanwhile, I was able to find the issue. It's the combination of Win7 and Intel USB 3 controller.

My understanding is that Win7 lacks from native USB 3.0 support, each HW manufacturing providing its own USB 3.0 stack.


On the same PC, I installed another USB controller (from asrock, ASMedia chipset) and everything was fine

On another PC running under win10, using intel USB controller, it is also fine.

0 Likes