I use the TMS Async for communication between an USB CDC and a windows PC. Basically the CDC streams a relatively large data amount from a sensor to the PC, approx. 400kB/s. Unfortuantely these are not equidistant distributed (time-wise), they come in chunks of about 40kB every 100ms. Each transfer of 40kB takes about 5ms.
The 40kB are splitted in packets with usually 4kB. Relatively often one of these packets is missing. It is more or less random, but I would say I lose every 20th packet.
The same code works eprfectly well for CDC devices with smaller data amounts, I have it running with a sensor which is transferring approx. the half data amount (but in the same time scheme).
I never get an overflow, or at least the overflow event is never triggered.
Also, I read the buffer always in time, ReadBufUsed was never >12kB and Buffers->ReadSize is set to 65536.
I also tried to split down the data into smaller packets with 256 byte only. The result was basically the same: I will lose a packet very fast.
Also, if I sniff the communication using wireshark (USBPCap) it gets clear that I will always lose an complete packet. It seems to me somehow that this packet even didn't fire an OnRXChar event.
What else can be the problem?