> On 19 Sep 2015, at 01:52, Brian Willoughby <[email protected]> wrote: > > I am developing a USB Device which samples data in real time (5 kHz), but > does not have enough internal memory to buffer more than a few milliseconds > of data. The USB Communications Device Class specification allows for > Isochronous endpoints in the DCI, and this seems like the correct solution to > avoid data loss due to the nature of Bulk endpoints as not having guaranteed > scheduling.
Hi, I'm by no means expert on this but here are a few random thoughts. Isochronous guarantees bandwidth but not delivery AFAIK, so you may still loose data. If you can tolerate that loss you should be able to tolerate occasional breaks in the bulk transfer (if any). I've used USB CDC ACM (with PIC) and never seen appreciable pauses in the communication. IIRC I did a test (on Mac OS X) that allowed me to transfer some +900 kB/sec of data using bulk transfers and CDC ACM. Mind you that used up all of the PIC USB RAM (PIC18F4550). Of course it is not guaranteed but in any case nothing is guaranteed because the OS is not a realtime anyway. I'm not sure if you can have isochronous endpoints with CDC ACM on any platform. The lack of isochronous examples indicates that there are a very few legitimate use cases for it beyond what the operating systems provide i.e. video. I hang around at [email protected] and the folks there seems to know quite a lot about, well everything USB related. So you might pose the question about you descriptors there. just my 2 snt worth, cheers Kusti _______________________________________________ Do not post admin requests to the list. They will be ignored. Usb mailing list ([email protected]) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/usb/archive%40mail-archive.com This email sent to [email protected]
