I am using the Beagle USB 5000 v2 SuperSpeed Protocol Analyzer - Standard Edition, and I am having some issues with seeing orphaned packets and empty packets. Some IN (incoming) packets are displayed as orphans, and some IN packets are displayed with no data. What are the potential causes of these orphaned packets? How can these problems be addressed? Here are two examples of what I have seen:
Thanks for your questions! Orphaned transactions indicate that not all data was visible to the Beagle USB analyzer; only a portion of the data within the packet was captured. There are two common reasons for this to occur: multiple devices with one controller or data from different branches of the USB tree, which we will cover in the following sections.
It is common to observe orphaned packets when multiple devices are plugged into the same host controller or if a USB hub is present on the bus. In such cases, the target device (Device A) has an internal USB host controller. The target device may also have multiple internal USB host controllers and devices, as well as an internal USB hub.
We will refer to the target’s internal device as Device B, and that internal device is connected to the same USB host controller as the Beagle USB analyzer. This internal USB device in the system, Device B, can be connected with or without an internal USB hub. In this scenario, the Beagle sees all the traffic between the host and Device A, but only the downstream traffic from the host to Device B. Here are two common reasons why orphaned packets can occur in this setup:
We have two approaches for this problem, both of which use filtering.
To observe only the packets of the selected device:
LiveFilter is another option, which is accessed via Data Center Software. LiveFilter allows you to focus on the data you need by using many filtering options. Here is a video that shows how this feature works:
For more information about filtering a bus capture, please refer to the Data Center Software User Manual.
Orphaned transactions can also occur when the target device is on a different branch of the USB tree. In this case, the Beagle USB analyzer may only see a portion of the data packet.
For an Orphaned transaction, there are two traces to look at: Endpoint 2 and the default endpoint, Endpoint 0. For this scenario, we recommend filtering the Endpoint 2 transactions. The easiest way to achieve this is with Quick Filters. To do this:
We hope this answers your questions. 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.