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?
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?