libusb performance on 8.1

Hans Petter Selasky hselasky at c2i.net
Thu Feb 3 07:22:50 UTC 2011


On Thursday 03 February 2011 07:56:25 Daniel O'Connor wrote:
> On 28/01/2011, at 18:28, Hans Petter Selasky wrote:
> > For this kind of applications ISOCHRONOUS transfers should be used. Then
> > you can have a double buffer guard in the range 1-56ms, regardless of
> > the buffer size the hardware uses.
> 
> That sounds nice :)
> I am trying to get it working at the moment, however I'm only finding it
> capable of 4 or 8 Mb/sec (512 or 1024 byte EP), although perhaps I don't
> understand how to do ISO transfer properly.

Hi,

You need to set the multiplier to 2 or 3. Then you get 3*1024 bytes at 
maximum.

> 
> BTW do you have a feel for the latency in bulk vs iso? I currently have
> 5-10 msec of buffering in the hardware which I plan on increasing but I'm
> not sure what a reasonable amount would be :)
> 
> I put a logic analyser on my board and it shows fairly regular requests
> from the hardware (16kbyte bursts every 2msec or so) however I see
> glitches occasionally - 5.5ms, 7.5ms.
> 
> I am not sure if they are attributable to userland scheduling (in which
> case writing a kernel driver should help) or some subtlety in USB itself.

Are you using two isochronous transfers or just one?

--HPS


More information about the freebsd-usb mailing list