How Do I Identify the Cause and Resolve PHY Errors on a USB 3.0 Camera Device?

Question from the Customer:

I am using the Beagle USB 5000 v2 SuperSpeed Protocol Analyzer - Standard Edition with the Data Center Software to resolve a USB 3.0 issue with a Basler industrial camera device. The Beagle USB 5000 v2 analyzer reports PHY Errors for all USB 3.0 packets. I have tried other slave devices (cameras, mobile phones), different cables, and different hosts (ARM and Intel), but the results remain the same - PHY Errors and no enumeration on the host.

A summary of the attempts I have made so far:

  • Change SS Frontend Settings: change drive strength to 990mV, equalization, and pre-emphasis in different combinations
  • Change devices, cables, and host

The setup I am using:

  • The Data Center Software is running on Mac OS.
  • The host systems run different versions of Linux.

I am not sure how to proceed. If you have any suggestions, I would really appreciate it.

Response from Technical Support:

Thanks for your question! There are various scenarios that can cause PHY errors. In one scenario, PHY errors are “normal” while the link is being established during “training”. If the link has been established, there are specific bus events that can cause such errors to occur.

Why PHY Errors Occur During Training

The Beagle USB 5000 v2 SuperSpeed analyzer has an active front-end circuitry between the USB 3.0 host and USB 3.0 device. This front-end re-transmits the signals between the host and device as the signals pass through the analyzer. When the link comes out of an idle state, it is not uncommon for there to be some number of PHY errors while the link is being established. Once the link is established, PHY errors should no longer occur.

How USB 3.0 Training Works

The USB 3.0 training includes the TSEQ, TS1, and TS2 sequences.

During the training period, each link sends training sequences. TSEQ, TS1, and TS2 sequences are sent both upstream and downstream. Here is a summary of the training sequence:

  1. The link first sends multiple TSEQ. Then the link sends TS1. After the link gets a specific number of clean TS1, the link starts to send TS2.
  2. The training period begins when one link sends TSEQ, and concludes when both links send their last TS2.

When PHY Errors Occur During Training

It is normal for PHY errors to occur during the training period, as the transceiver clock (in the transmitter link) and the receiver clock (in the receiver link) are different. During the training period, the receiver clock is compared to the transmitter clock; the receiver clock is not yet trained to the transmitter clock.

  • If the receiver clock is faster than the transmitter clock, then the receiver link adds sub symbols.
  • If the receiver clock is slower than the transmitter clock, then the receiver link misses symbols.

After the training period is finished (after the last TS2 is transmitted), PHY errors are no longer expected.

When the Beagle USB 5000 v2 analyzer detects a small number of PHY errors during training period, those errors are not marked in red. However, if significantly more number of PHY errors are detected during the training period than expected, then the PHY errors are marked in red.

The link is normally trained in 1-2 us.

  • The time that it takes for the upstream link to be trained is measured from the time that the first TS1 of both links appear until the downstream link of the first TS2.
  • The time that it takes for the upstream link to be trained is measured from the time that the first TS1 of both links appear until the downstream link of the first TS2.

Communication During Training

The Low Frequency Periodic Signaling (LFPS) is used by USB ports to communicate across a link that is under training, in warm reset, or in a low power state. The LFPS type is determined by the burst and repeat times of a signal, as well as the LTSSM state.

Specific Events that Can Cause PHY Errors

Sometimes, the PHY error is a special-case bus event that will match the following errors:

  • Disparity Error
  • Elastic Buffer under-run or over-run
  • 8b/10b Decode Error

While the PHY Error collapses these errors into a single match, you can distinguish some of the errors in the captured data. Here is what you can look for:

  • When an elastic buffer under-run error occurs, an EDB symbol (K28.3) is inserted into the data stream to fill the under-run.
  • When an 8b/10b Decode Error occurs, a SUB symbol (K28.4) is substituted in place of the bad 10b symbol in the data stream.

Other Causes of PHY Errors

PHY errors also occur due to electrical inconsistencies. For your setup, we suggest inserting a self-powered SuperSpeed hub between your Beagle USB 5000 v2 analyzer and your target device and the host. This could resolve the problem, if electrical inconsistencies are the cause.

Another possibility is using hardware filters in Complex Matching to restrict the amount of data stored in capture buffer. To see an example of using this feature, take a look at this video:

For more information about this setup, please refer to the section USB Device Settings in the Data Center Software User Manual.

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.