- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
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.
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.