This is another magnificent addon!
[If USB2.0 is too boring, learn about the details of 50 different Thunderbolt-4 docks – yep you read that right, there are 50 different models – find out which ones are identical inside.]
USB 2.0 is over 20 years old, so why do modern USB-C and USB 3.x hubs still have 2.0 ports? Shouldn’t they all be USB 3.x by now?
Some folks would assume this is simply a cost saving measure given that it is cheaper to implement 2.0 vs 3.x as some devices like keyboards and mice can’t take advantage of USB 3 anyway. But it is a little more nuanced than that. Before diving into device teardowns during the last year, I had always thought that manufacturers selected cheap USB 3.x hub chipsets with fewer ports and supplemented them with even cheaper USB 2.0 hub chipsets to increase total port count. But having two chips is expensive. The real answer lies in the pinout of USB connectors. USB 3.x and USB-C have both super speed data lines (SSTX+/-, SSRX+/-, TX+/-, and RX+/-) and low speed data lines (D+/D-):
USB 3.0 pinout [courtesy Wikipedia.com]
USB-C pinout [courtesy Wikipedia.com]
Physical 3.x ports have all the pins connected for backwards compatibility with USB 2.0 devices like mice/keyboards. But devices embedded inside a hub only need to connect to the pins they actually need. For example, SD card readers and Gigabit Ethernet chipsets often use the super speed SSTX/SSRX pins, but not the D+/D- pins. So what can we do with unused D+/D- pins?
Enter port splitting, port bifurcation, or USB link sharing.
According to Microchip, port splitting “allows for the USB3.1 Gen1 and USB 2.0 portions of downstream ports… to operate independently and enumerate two separate devices in parallel…”. Cypress documents a similar “shared link” scheme for some of their USB chipsets. Here is part of Microchip’s guidance on how to implement port splitting:
[Image courtesy Microchip.com]
Essentially this is getting a USB 2.0 port for free. For example, a 4-way hub chipset can be converted into a 6-way by having two downstream USB 3.x ports, Ethernet, SD card, and two bonus USB 2.0 ports split off from the Ethernet and SD card. How’s that for cost savings? There are some caveats with this approach. The USB 3.x device must be embedded and not something that can be unplugged. The USB 2.0 device can either be embedded like an audio chipset, or an external port. Because of the way USB hubs are setup, if there is a fault on either the USB 3.x or USB 2.0 device, both may disconnect. So in this aspect, port splitting can be less reliable with problematic or non-compliant devices compared to truly distinct ports. Also full USB 2.0 backwards compatibility is broken.
Other USB hub chipsets from ViaTech, Genesas, etc. also support this feature but don’t provide full public documentation. But you can always tell when port splitting is in use because the total number of embedded devices plus downstream ports exceeds the hub chipset downstream port count. So a 6-port hub chipset might have a combined total of 8 downstream ports/devices. And who wouldn’t want an 8-in-1 instead of a 6-in-1 hub for less than $1 USD in extra parts?
Microchip USB5816 hub controller product guideCypress CYUSB3326 datasheet page 6 (thanks to /u/hubsdocks for pointing this one out)
Share this on knowasiak.com to discuss with people on this topicSign Up on Knowasiak.com now if you’re not registered yet.