Tim Roberts wrote: >You can't have 4096-byte packets in
>high speed. You can have 3072 (1024-byte packets with 3 transfers per
>microframe), which gives you 24MB/s.

Sorry, my error: buffer size is 4096, packet size is 256. If I'm
correctly calculating: 125uS*12packets*256byte will give me 1.5MB/s transfer 
rate
(3072bytes in 2mS period). Host received 16 buffers: 12 are full 4 empty. 
Everything
works fine in device to host direction. 

>On the IN side, you must provide room for one packet for EVERY interval
>you are going to encounter. Each packet in your packet array is mapped
>to one interval. So, if your endpoint has 1024 packets with an interval
>of 1, and you submit a request with 8x 1024-byte packets, that will
>cover exactly one frame, no matter how much data is sent. If your
>device sends something during an interval, it will be copied into the
>corresponding packet. If your device skips an interval, that packet
>will be left EMPTY. It is up to your application to decode this.

In my example maximum packet size is 512 (I try two combination: 6*512
or 12*256 and both work well). Application detects empty packet and discard
them. Every 2mS I received 3072bytes. So far everything is good.

>On the output side, you don't get to control the scheduling. You just
>send a buffer. It will be sent to the hardware as fast as possible. >So, using 
>the previous example, if you send 4096 bytes, that will be
>sent as 4x 1024-byte packets during the first four microframes. You
>can't skip intervals, and of course there is no retrying if your device
>isn't ready (whereas there IS with an interrupt pipe). >Seriously, isochronous 
>is much less convenient that interrupt.

This is where things getting complicated. Interrupt or Bulk transfers 
scheduling 
are not time guarantied and 1mS period between two packets is sometime bigger 
resulting
in very bad synchronization (verified with oscilloscope). With ISO packet sync 
is 
almost perfect but I did not figured out yet how to correctly fill/send 
buffers. With reduced
bandwidth and Bulk transfer results are good but what will happen if other USB 
devices
request bandwidth allocation?
Thanks for help.

Goran
------------------------------------------------------------------------------
CenturyLink Cloud: The Leader in Enterprise Cloud Services.
Learn Why More Businesses Are Choosing CenturyLink Cloud For
Critical Workloads, Development Environments & Everything In Between.
Get a Quote or Start a Free Trial Today. 
http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
_______________________________________________
libusbx-devel mailing list
libusbx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libusbx-devel

Reply via email to