GORAN RADIVOJEVIC wrote:
> Interval is 1 and I think something is wrong in calculation routine.
> I did more tests and result is ~1.5MB/s for 3072 packet size (~2MB/s
> for 4096).

I'm confused by this statement.  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.


> Now after
> one week testing receiver works without problem but I have another question:
> how to control IN endpoint buffers? I'm using 16 for IsoPacketsPerTransfer and
> MaxOutstandingTransfers with 4096 buffers and for OUT Ep I can analyze 16 
> buffer
> and discard empty one, put correct packet into ring buffer and perform DSP 
> function.
> When I try to return data to USB device how to use only 12 (for 256 Ep size) 
> or only
> 6 (for 512 Ep size)? How to skip packets? Is it possible on Host side or my 
> USB 
> device must do the job?

There seem to be several questions mixed together in there.

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.

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.

-- 
Tim Roberts, t...@probo.com
Providenza & Boekelheide, Inc.


------------------------------------------------------------------------------
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