Looking at the data log, I assume the source of this faulty interaction is the host. Otherwise, if it was the USB 2.0 device, I would at least see the IN packet part of the transaction, followed by either an error or a 0 byte DATA0 packet. In other words, during frame 0 (SOF index 4156719), I expect to see an isochronous IN transaction on endpoint 7, but that is missing.
To me, this indicates that the host is not providing service to this USB device.
My question – can you confirm my interpretation, that this issue is sourced at the host, not the USB 2.0 device?
Response from Technical Support:Thanks for your question! Based on the information, we agree that the loss of the endpoint data packet is due to the host. To explain why we support our confirmation, we will describe how isochronous data transactions work. We are assuming that the test scenario is “normal”. For significantly complex test setups or devices, additional analysis may be needed.
To guarantee real-time data, the isochronous data transmission allows data errors. This protocol does not provide error detection or recovery for isochronous transfers. The host or the USB device do not send handshake packets – real-time data is guaranteed, but not delivery.
In this case, because the host controller does not attempt to retry the transfer, data might be lost if an error occurs. This correlates with the logged data that you observed.
For interrupt transfers, if the device does not have data to send, it responds with NAK.
However, in an isochronous transfer, the driver issues a request to read or write data to an isochronous endpoint. The host then initiates an isochronous transfer that sends or receives data by polling the device at regular intervals. This polling uses IN-OUT token packets.
When the endpoint is ready to send data, the USB device responds to one of the IN token packets by sending data. To write to the device, the host sends an OUT token packet followed by data packets. As previously mentioned, there is no guaranteed delivery since no handshake packets are involved. Since the host controller does not attempt a retry, data can be lost if an error occurs.
Real-time analysis assures the accuracy of the captured data that is displayed via the Data Center Software.
We hope this answers your question. Additional resources that you may find helpful include the following:
If you want more information, feel free to contact us with your questions, or request a demo that applies to your application.