title: (libusb) Confusion about continous isochronous USB streams
body: <p>I am using a 32-bit AVR microcontroller (AT32UC3A3256) with High speed USB support. I want to stream data regularly from my PC to the device (without acknowledge of data), so exactly like a USB audio interface, except the data I want to send isn't audio. Such an interface is described here: <a href="http://www.edn.com/design/consumer/4376143/Fundamentals-of-USB-Audio" rel="nofollow">http://www.edn.com/design/consumer/4376143/Fundamentals-of-USB-Audio</a>.</p>
  
  <p>I am a bit confused about USB <strong>isochronous</strong> transfers. I understand how a single transfer works, but <strong>how</strong> and <strong>when</strong> is the next subsequent transfer planned? I want a <strong>continuous</strong> stream of data that is calculated a little ahead of time, but streamed with minimum latency and without interruptions (except some occasional data loss). From my understanding, Windows is not a realtime OS so I think the transfers should not be planned with a timer every x milliseconds, but rather using interrupts/events? Or maybe a buffer needs to be filled continuously with as much data as there is available?</p>
  
  <p>I think my question is still about the concepts of USB and not code-related, but if anyone wants to see my code, I am testing and modifying the "USB Vendor Class" example in the ASF framework of Atmel Studio, which contains the firmware source for the AVR and the source for the Windows EXE as well. The Windows example program uses libusb with a supplied driver.</p>