On 03/02/2011, at 21:26, Hans Petter Selasky wrote:
>>> You need to set the multiplier to 2 or 3. Then you get 3*1024 bytes at
>>> maximum.
>> 
>> OK, so I need..
>> usb_xf[i].xf = libusb_alloc_transfer(3);
>> p = malloc(3 * 1024);
>> libusb_fill_iso_transfer(usb_xf[i].xf, h, 0x82 p, 3 * 1024, 3, usbcb,
>> &usb_xf[i], 2000);
>> 
> 
> No. Please read the description of wMaxPacketSize in the USB2.0 spec, and the 
> multiplier bits.

I checked that but it didn't work, I'll try it again.
Also I read somewhere that setting it to zero was "as many as possible" but I 
can't find that now so maybe I was dreaming.

> High-speed USB executes 8 isoc packets per second! Number of packets should 
> not be less than 56 for High-speed USB due to underflow risc.

OK, I didn't realise it was so high

> usb_xf[i].xf = libusb_alloc_transfer(56);
> p = malloc(3 * 1024 * 56);
> libusb_fill_iso_transfer(usb_xf[i].xf, 0x82, p, 3 * 56 * 1024, 56, usbcb,
> &usb_xf[i], 2000);
> 
> libusb_set_iso_packet_lengths(usb_xf[i].xf, 3 * 1024);

OK, I have that, it seems I need to work on the firmware as it's not sending 
data properly when I set it to iso. I'll work on that and try and figure it 
out. Unfortunately there isn't much example code on isochronous data transfer 
with the FX2 :(

However I see the requests return saying they are complete but the amount of 
data transferred is 0. Setting the "short not OK" flag doesn't change the 
behaviour.

I'm not sure if this is a bug in libusb, expected behaviour, or a bug in my 
program.

> You need to allocate 2x "libusb_alloc_transfer(56)" and submit to get double 
> buffering!

Ahh that's no problem, I have many in flight requests as a buffer when my main 
thread has to sleep waiting for a slave process to read in some data (128Mb 
worth).

--
Daniel O'Connor software and network engineer
for Genesis Software - http://www.gsoft.com.au
"The nice thing about standards is that there
are so many of them to choose from."
  -- Andrew Tanenbaum
GPG Fingerprint - 5596 B766 97C0 0E94 4347 295E E593 DC20 7B3F CE8C






_______________________________________________
freebsd-usb@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-usb
To unsubscribe, send any mail to "freebsd-usb-unsubscr...@freebsd.org"

Reply via email to