We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Hi, Don't know if it is proper to post here.
Currently I'm on a project with USB HID function. The function works well without any error except that the USB HID has speed vary issue. The speed will vary depending on host PCs.
Using USB View, I found that for fast speed, the device has been assigned to be controlled by USB2 Enhanced Host Controller(EHC) Full Bus Speed, however, for slow speed, the device has been assigned to be controlled by USB Universal Host Controller(UHC) Full Bus Speed(Same Hardware&Firmware).
The confusing thing is what makes the host controller decides that the device should be assigned to be controlled by EHC or UHC.
Any idea and suggestions for this issue?
Thanks.
I'm wondering are there any workaround for this speed vary issue/Thanks.
> I'm wondering are there any workaround for this speed vary issue
Unfortunately, we cannot speed up control transfer on UHCI. UHCI requires intervention of PC device driver to put next stage of control transfer. As usual of host controller, it delays interrupt timing of (stage) transfer until next SOF. Therefore each stage takes (at least) a frame, respectively.
On the other hand, OHCI accepts transaction(s) of next stage on its Transfer Descriptor queue in advance. EHCI works on micro-frame (125 us), 8 times faster than UHCI/OHCI.
This speed problem deeply depends on the architecture of the host controller.
Tsuneo
I see. Too bad have to accept this limitation. Thanks, Tsuneo. You are always so kind and helpful :).