Hi
I want to make a composite device in the USB-3 of G420 platform with Yocto.
The composite device including the UVC, UAC, HID-1, HID-2, HID-3, HID-4, ADB, and MSD.
The UVC needs support the 4K@30.
The UAC only speaker output feature.
From below ticket, there are 15tx/15rx in the USB-3 port-0 of G520/G720. It is enough for composite device requirement.
https://genio-community.mediatek.com/t/explain-the-usb-controller-and-endpoints-information-for-different-genio-series-platforms/279
If I connected the USB-3 on my computer, it should work.
But if my computer only has USB-2, will the number of TX/RX still be enough? And can the device still be used normally?
In addition, what is the SRAM of USB-3? And if it is downgraded to USB-2, will SRAM still be the same?
Hi Scott Shih
The TX/RX endpoint count is a hardware resource of the USB controller MAC — it does not change based on link speed. If 15 TX / 15 RX is sufficient for the composite device at USB 3.x, it remains the same when the host connects at USB 2.0. All functions (UVC, UAC, HID×4, ADB, MSD) will still be enumerated normally.
Will all functions still work at USB 2.0?
Most functions will work, but UVC 4K@30 is the problem.
4K@30 with a reasonable compressed format (MJPEG, ~10:1) already requires ~300 Mbps. USB 2.0 High-Speed has a theoretical limit of 480 Mbps, but the practical usable bandwidth for isochronous transfers is only less than 200 Mbps after protocol overhead and other functions sharing the bus. 4K@30 UVC will likely fail or require falling back to a lower resolution/framerate when the host is USB 2.0 only.
All other functions (UAC, HID, ADB, MSD) have much lower bandwidth demands and will work fine at USB 2.0.
SRAM
The USB controller’s internal SRAM (used for TX/RX FIFOs) is fixed hardware — its total size does not change when downgrading from USB 3.x to USB 2.0.