Situation-
I have a ARM board that I wrote a small USB stack for so I could 
download my updates quicker.  I wrote a linux driver to talk to that 
USB stack and download my code basically.

Problem-
The framerate appears to be stuck at 1ms between frames.  So, if I 
queue up a single bulk urb at a time, the max throughput I'm getting 
is 256kbps.  If I use the USB_BULK_QUEUE flag on the URB, and queue 
up multiple URBs, the max throughput I can get is 512kbps (in theory 
:), since the control packet still has to be sent out).

Now, I've hooked all this up to my osciliscope, and here's what I'm 
seeing-
Case 1- One URB queued at a time
Frames are 1ms apart, traffic looks like-
[data]1ms[control]1ms[data]1ms[control] ...

Case 2- Two URBs queued up at a time-
[data]1ms[data]1ms[control]1ms[data]1ms[data]1ms[control] ...

Each [data] means 1 64byte bulk transfer.  I am assuming that 
[control] is a control packet, it's a *very* tiny blip on the scope 
compared to the [data] packets.

Now, the problem is that the theoretical maxima I could get in this 
scenario is 512kbps.  However, both the PC and the device are capable 
(hardware wise) of transferring a lot faster.  (USB1.1 device, so in 
theory 12Mbps)  So, what do I need to do in order to ratchet up the 
frame rate?, or just have it trigger the next transmit on the irq for 
bulk completion?

Thanks,
Shane Nay.

_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to