Wander Lairson Costa wrote: > I observed that benchmark firmware always expects isochronous transfer > of a size multiple of packet size. Is this just a convention on the > firmware or is there something about isochronous that I am missing > out?
Isochronous requests are different from other requests. The "multiple of packet size" thing really only applies to isochronous IN requests. The reason is that isochronous data is not packed into your data buffer. Instead, each packet in your isoch request stands alone, and gets mapped directly to a single microframe in time. If your device has an interval of 1, so that you get a shot in each microframe, and you include 16 packets in your request, those 16 packets will span exactly two milliseconds. The first packet gets whatever is read in the first microframe, the second packet gets whatever is read in the second microframe, and so on. So, if your device skips one interval, you will have a gap in your buffer. If your device sends short data in one interval, again you will have a gap in your buffer. Remember, in the USB protocol, a device is never told how large the read buffer is. All it sees is a signal that says "GO!". Thus, at every interval, the device has the right to send up to its maximum packet size. As a result, your buffer has to be ready to accept that much data, every time. -- Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. ------------------------------------------------------------------------------ Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS, MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft MVPs and experts. ON SALE this month only -- learn more at: http://p.sf.net/sfu/learnnow-d2d _______________________________________________ libusbx-devel mailing list libusbx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/libusbx-devel