3 ms·
Does anyone know why the USB-C header was designed to be almost-but-not-quite rotation symmetrical [1]? So now you need some complex electronics for each port t
by xg15 4y ago
Does anyone know why the USB-C header was designed to be almost-but-not-quite rotation symmetrical [1]? So now you need some complex electronics for each port to detect the orientation and swap the data and cc lanes accordingly - with lots of opportunities to make errors or be cheap as we see.
It seems to me, you could have saved an enormous amount of complexity by simply making the header slightly larger and duplicating the entire pinout on each side, including the data lanes.
Or are there electrical reasons why a data lane must only be connected to a single pin?
[1] https://en.wikipedia.org/wiki/USB-C#USB_3.0/3.1/3.2 https://en.wikipedia.org/wiki/USB-C#USB_3.0/3.1/3.2
- paulywog 4y agoFrom a signal integrity standpoint, you really don't want both pins (i.e. SSRX1 and SSRX2) tied together. A lot of USB3 routing is reducing stubs. When the signals are going as fast as they are in USB3, they're essentially a wave going down the line, and if there's a "stub" the wave will actually hit the end of the wire and reflect back, causing interference. Having one of the pins not connect to your processor would create a stub inherent in the design, which is probably a bad idea. When you dig into the details of the signals of USB3+ electrically it's truly remarkable they're able to mass produce cheap consumer grade equipment to implement it. To give you an idea, the lengths of USB3 traces in your board need to be matched, so you add wiggles to the shorter trace to make it ever so slightly longer. But those wiggles can't get too far from the opposing trace in the diff pair either because that changes the way the traces are coupled together. Also, if the layer above/below is not a solid ground plane, you will run into issues as the signal will propagate through the wire faster/slower depending on what's around it. This is so critical that you use "impedance controlled" PCBs that place a tight tolerance on the spacing of your layers so that you can be sure it doesn't change along the length of your trace. And, of course, you want to avoid sharp bends in your traces as those will act like a stub. None of this is bad engineering on the part of the USB IF, just that if you want to send data over a USB cable reliably at 5gbits, or now 40gbits, you're really pushing the limits of modern electrical design.
- xg15 4y ago> From a signal integrity standpoint, you really don't want both pins (i.e. SSRX1 and SSRX2) tied together. > Having one of the pins not connect to your processor would create a stub inherent in the design, which is probably a bad idea. I was more thinking that each wire for a lane has two pins, one on the top and one on the bottom, which are electrically connected. So e.g. SSRX1+ on the top would be connected to SSRX1+ on the bottom, SSRX1- on the top with SSRX1- on the bottom, same for SSRX2+, -, etc. With the same wiring in the plug as well as in the socket, there wouldn't be any disconnected pins. The wire for e.g. SSRX1+ would split before the plug, then lead to two pins in the plug; the plug connects to two matching pins in the socket which merge back into a single wire. So in that modified header one differential pair would occupy four pins, two in the top row and two in the mirrored bottom row. This means the header would have 4 additional pins per row (so 8 in total) compared to what it has now. But of course the splits and merges in the wire might cause interference as well.
- klysm 4y agoThe signal reflections from the stub can propagate all the way back to the source. This means you’d have to use two transmitters to avoid interference from those reflections.
- function_seven 4y agoIf there’s only one wire in the cable, and one trace leading up to the socket, would there still be a stub? Have the sockets pins both tied to the same trace, and have the plug terminals both tie to the same wire.
- Denvercoder9 4y agoI'm not an expert; but having splits and merges in your traces and wires when you need to have matched signal path length seems like a terrible idea.
- exmadscientist 4y agoThe four additional pins are a nontrivial problem. The Type-C connector is already annoyingly large as is. The stubs others have talked about are a major problem; they're really hard to avoid. In fact, they're so hard to deal with, that a lot of effort in routing goes to keeping things in the right order on the board. By that I mean that when you leave, say, your upstream device and run the traces to downstream, you need to have them come out in the same order: if you start with _P on the left and _N on the right, you want to end that way. A swapover is annoying at USB 2 480Mbps speeds and utterly awful at 20Gbps. (There is also a >50% chance that you miswired the thing and are wiring _P to _N, which increases to >99% if the routing came out naturally neat, but that's just Murphy's Law in action.) It's so difficult and awful to deal with this stuff that USB 3 took a page from Gigabit Ethernet and usually features transceivers that just figure it out: they know you have eight wires in four pairs between eight pins and they can work with that. Once you have that feature, and transceivers definitely do, there is no point whatsoever in trying to make superfluous changes at the connector bit.