Electrical – USB3.0 OTG SSTX/SSRX crossover confusion

cable-assembliesusb

I am having some confusion with creating a USB3 connection between two boards. I have two UltraZed+ EG boards, each sitting on a carrier card. Both boards have a USB3 Micro-B receptable that is internally connected according to the pinout shown here. The boards can be configured to act as host, OTG, or device.

I want to use one of the boards to act as a USB3 host and the other board to act as a device. I set several jumpers so that the power on one board works according to host mode and the other according to device mode. However, I have some fundamental confusion regarding the SSTX/SSRX pins.

I have obtained a USB3 Micro-B to Female-A OTG cable together with a standard Male-A to Micro-B cable which I connect via the A-plugs so I have a long cable with male Micro-B connectors on both ends. When I measure the connections of the combined harness, I would expect the SSTX and SSRX wires to be crossed so that the host SSTX lines connect to the device SSRX lines and vice versa. However, this is not the case. The cables create a 1:1 connection and hence connect SSTX to SSTX and SSRX to SSRX. There seems to be no way to swap the lines either via switches on the board (they seem are routed directly into the FPGA) or in the FPGA itself (it uses special PS-GTR transceivers that are hard-wired).

This makes me wonder, is there a fundamental flaw in my approach? Do I have a faulty USB3-OTG cable? Apparently there are some that cross the wires but others that don't (see here) and I have not found a USB-OTG cable specification in the standard and, according to 4, OTG isn't really standardized. Can someone more knowledgeable in all matters USB3 shed some light on this, please?

UPDATE

I did some measurements on the OTG-part of the wiring and I've found that it connects as follows:

  • Micro-B Pin 10 (RX+) – A-receptable Pin 9 (TX+)
  • Micro-B Pin 9 (RX-) – A-receptable Pin 8 (TX-)
  • Micro-B Pin 7 (TX+) – A-receptable Pin 6 (RX+)
  • Micro-B Pin 6 (TX-) – A-receptable Pin 5 (RX-)

Since, according to the standard, a Standard-A to Micro-B cable also does a crossing, this explains what is going on and according to 4 this would be a bad OTG cable. I still wonder why those are sold so often and get solid reviews on Amazon and co. Is most hardware able to detect this and then just swap the TX and RX lines internally?

Best Answer

In USB3, transmitter on one end of link must be connected to receiver on the other end of USB link segment. And vice versa. The fundamental flaw in your approach is that you are using non-standard (and USB-illegal) "USB3 Micro-B to Female-A OTG cable", and eventually made an illegal "Micro-B to Micro-B" cable. As you pointed yourself to the Toradex website, different people are crafting cables to their understanding or rather misunderstanding.

From the Toradex site:

In the USB 3.0 specifications, only the following cable assemblies are specified:

USB 3.0 Standard-A to USB 3.0 Standard-B Cable (SuperSpeed RX and TX are crossed in the cable)

USB 3.0 Standard-A to USB 3.0 Micro-B Cable (SuperSpeed RX and TX crossed in the cable)

USB 3.0 Micro-A to USB 3.0 Micro-B Cable (SuperSpeed RX and TX crossed in the cable)

USB 3.0 Micro-A to USB 3.0 Standard-B Cable (SuperSpeed RX and TX crossed in the cable)

The OTG cable is really standardized, but the standard condition for OTG port is to use micro-AB connector, which can mate with both micro-B (as for device mode) and with micro-A (for host mode).

Note: in all legal cables the Rx and Tx pairs are crossed. Get the correct cable combination (preferably micro-A to Micro-B), and move on.