Hi Alan,
What happens if you attach the full-speed device to a high-speed hub
and plug that hub into the MUSB?
That's a very interesting test i will definitely do. Unfortunately, even
if that solves the problem, we could not use that on our production
boards because we cannot change the design, we are very advanced and
nearly approaching the production phase. We have no chance of changing
any hardware, it should be a software solution.
I'm also very interested in any opinions about my assumptions because I
really don't know if I'm misunderstanding something and the problem
could be on any other place.
Basically that assumptions were that we are sending too small packets
(64B) which combines with the interrupt latencies and the degraded
performance of MUSB as it has more work done in software than an EHCI
interface. So for reaching the required 0.5MB/s by reducing the time
spent on the OMAP micro (which i find difficult) or by increasing the
packet size, having to use the Isochronous interface with a risk of
packet losing.
Thanks :)
On 21/06/14 15:07, Alan Stern wrote:
On Sat, 21 Jun 2014, Pedro Erencia wrote:
Hi,
We are developing an ecg (electrocardiogram) application on an OMAP3
device (DM3730 ti).
An acquisition board gets the samples in microseconds and sends them
to the OMAP board via USB.
This acquisition board does a 16KHz sampling which results in ~4000
bytes sent every 8ms to the OMAP board; that gives a necessary
throughput of ~0.5MB/s. This acquisition board device is a full-speed
one, and the transfers are done in bulk endpoints, so 64B maximum
packet size.
So 500 B/ms, or about 8 64-byte packets per frame. Since the USB
limit on full-speed bulk transfers is 19 packets per frame, you're well
within the limit.
Given the 1.5 MB/s max _theoretical_ throughput of a full-speed
device, it should be enough. And it is if we connect it on an EHCI
external Host. The problem comes when we try to use the MUSB OTG
configured as host. In that case we get ~300KB/s so the host and the
device became desynchronized and a great mess happens :).
That could be resolved if we use the EHCI Host Controller with the
full-speed device or the MUSB with a high speed device. Unfortunately,
we cannot do any of that.
What happens if you attach the full-speed device to a high-speed hub
and plug that hub into the MUSB?
Alan Stern
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html