I am designing a “simple” USB-C Hub, that will have two downstream facing USB-C ports (and nothing else), both supporting USB 3 speeds. I have solved some of the challenges already- VCONN, power budgeting- but one thing I am having trouble deciding on how to solve is the actual USB data topology.
The obvious way is to short together the USB 2 data lines at the receptacle, and route the USB 3 lines using a multiplexer- this would require only a two port hub, but it would also require multiplexer ICs, which I would like to avoid- more sourcing troubles, and it’s a space constrained design.
Instead, I believe it should be possible to “combine” two USB 3 ports from a 4 port hub IC. In fact, many PC motherboards and USB cards work this way (including my own)- the Type-C specification only mandates the “functional equivalent” of a mux. However, I am not quite sure on the exact details of this setup. Obviously, each TX/RX pair is routed to a separate port on the hub- but what to do with those pesky USB 2 lines? Either to route each pair to a port on the hub (presumably the pair on the A side of the connector goes with TX1/RX1)- but this would be very annoying to route (especially at the connector), or, to short then together and route to whatever port on the hub is most convenient. It appears to me that USB 2 and USB 3 operate independently, such that there would be no scenario where a device would be trying to talk to, say, port 1 on USB 2 and port 2 on USB 3 at the same time. Have I made a foolish assumption?
(considering how pervasive this practice appears to be in the computer industry, I am surprised I was not able to find more written about it. Just the above blog post and this article, which seems to suggest the second method.)