1

I have a laptop which has one USB 2.0 host controller and one USB 3.0 host controller. I have many USB 2.0 devices connected (both to USB 2.0 and 3.0 ports) and I am experiencing bandwidth issues.

So here is my question: is it possible, either via hardware or software, to convert one of the USB 2.0 signal to a true USB 3.0 signal, that would be directed to the USB 3.0 host controller ? I do not see a fundamental reason why it should not be possible but I have been unable to find a solution on the internet.

Note that I am aware that USB 3.0 ports split 2.0 and 3.0 signals, and that this answer to a related question does not answer my question.

More details

The current layout is:

camera + other devices (all USB 2.0) -> USB 3.0 hub -> laptop USB 3.0 port

The layout I am thinking about (I would like to separate the camera because it uses the most bandwidth):

USB 2.0 camera -> translate to USB 3.0 --
                                        |
                       USB 2.0 devices ---> USB 3.0 hub -> laptop USB 3.0 port

The laptop is a Dell XPS 13. The hub is a 7-ports USB 3.0 Exsys EX-1188HMS.

A screenshot of the PCI bus section of the Device Manager:

9
  • Can you post a screenshot how your devices look like in device manager? (steps described in your refferred answer) – Máté Juhász Nov 10 '17 at 10:19
  • 2
    I don't understand what you are thinking of doing, but there won't be a software solution. Older laptops had PCMCIA ports, but they are less common now: if you have one, you can use it to add one of two additional ports. Otherwise, try a USB3 hub. – AFH Nov 10 '17 at 10:27
  • 1
    I added the details you asked for in my question, hopefully it is more clear now. I actually just found a device that looks like it would fit the bill: USB 3.0 transaction translator. It is not clear whether it can be purchased though. – Thibaud Ruelle Nov 10 '17 at 13:01
  • Yes, you would need an USB 3.0 to USB 2.0 transaction translator (or a hub with enough of those built in), but I've never seen any actual devices you can buy for those. A cheap embedded computer (RaspPi) with an USB 3.0 in client/OTG mode, and other USB 2.0 ports would also work (if you have the expertise to program it so it forwards the USB transactions. Another option is to move some of your devices to a LAN, if they can. – dirkt Nov 10 '17 at 13:35
  • 1
    In principle a single USB 3.0 OTG port should be enough, because it uses completely different root controllers. So put the xhci into client mode, the ehci into host mode, and solder a cable that separates the lines. Worth a try. But I still think USB to LAN would be simpler, either directly (camera on LAN), or using usbip if necessary. – dirkt Nov 10 '17 at 13:49
2

The answer is pretty simple and straight-forward. No, this cannot be done. USB Ports are wired directly into the USB Controller. You would need to remove the internal cable to the USB Controller, so the USB Port itself is not attached to anything, then also do the same for the USB 3.0 port. Then attach a USB 3.0 2 port hub to the USB controller of the USB 3.0 port, and connect both USB ports to that hub.

You will obviously not have the space inside the device to do this, so you will automatically come to the next best thing. Use a 3.0 USB hub outside of the device, but that does not answer your question, so that's why I have started with: no, this cannot be done.

I guess, if you could actually remove the USB 2.0 controller and replace it with a USB 3.0 controller, it could work, but the USB3.0 controller may be bigger than the 2.0 controller. Do note, this will stop you from being able to connect usb 1.1 devices, because 2.0 devices are usually backwards compatible to 1.1, and possibly 1.0 devices, but 3.0 devices are usually only backwards compatible to 2.0.

5
  • Thanks for your answer. I apparently did not express my question very clearly. I am OK with an external device that would convert a USB 2.0 signal into a USB 3.0 signal. I am basically trying to use the USB 3.0 controller in my laptop as a second USB 2.0 controller. – Thibaud Ruelle Nov 10 '17 at 13:03
  • A USB Hub makes 1 port to more. So my idea is that you use an external hub to make from 1 USB port, more than one, eg. 4. – LPChip Nov 10 '17 at 13:21
  • Unfortunately, this doesn't increase the bandwidth, which is ultimately limited by the bandwidth of the USB controller (480 Mb/s) in the case of a USB 2.0 controller. – Thibaud Ruelle Nov 10 '17 at 13:33
  • Yep, which is why I started with: no, this cannot be done. – LPChip Nov 10 '17 at 14:19
  • It can be done in theory, there's even a chip which translates USB 2.0 transactions to their USB 3.0 counterparts: VIA Labs VL670 via-labs.com/product_show.php?id=82 – Alexandr Zarubkin Jul 4 '19 at 12:50
1

No, there is no simple way to convert or translate USB 2.0 devices unto the USB 3.0 bus. For this to work would require considerable manipulations of the hardware and new drivers written to translate the USB 3.0 signals into their USB 2.0 counterparts.

Perhaps the best way to start describing the problem is to point out that a USB 3.0 port is three busses or protocols on one cable. Four, if one considers the USB 1.1 separate still from USB 2.0. There's the original USB 1.1 which was extended to USB 2.0. This bus uses the D+/D- pins. There's the DC power bus that can use the USB 2.0 bus to negotiate power, or it can modulate a 24MHz FSK BMC on the 5 volt bus for power negotiation. Then there's the USB 3.0 buss which can actually operate entirely independently from the USB 2.0 bus.

For a device like a hard drive these four busses integrate quite well since these are often designed to work across different computers which may or may not talk USB 3.x. The drivers are written to negotiate which busses are available and at which speeds. To make this work means all the wires are there to the USB bus controllers on the host and on the drive. It's one controller in the drive talking to one controller in the host.

For a USB 2.0 device there's only the USB 2.0 data lines, and maybe for some higher power devices there is an ability to negotiate power usage on the +5 volt line. To get devices like these to talk on the higher speed USB 3.0 bus would require a dock of some kind that would have a USB 2.0 controller on that USB 3.0 bus. This controller in the dock is now managing power and data on behalf of the host. The data from perhaps a mouse and keyboard is now coming to the host on the USB 3.0 bus, not on the USB 2.0 buss like the drivers expect. This would require new drivers for these devices. Or, at least some kind of "unwrapping" of the USB 2.0 data that was wrapped into packets on the USB 3.0 bus.

The dock is then a kind of bridge chip, sort of like a PCI bridge, for managing USB 2.0 devices. Which is actually how Thunderbolt 1 and 2 docks have USB 2.0 and 3.0 devices on them. Thunderbolt 3 may work this way as well. The difference is that Thunderbolt is a PCIe variant and so the drivers for this already exist. The USB controllers are common-off-the-shelf PCI chips and so pack all the USB 2.0 and 3.0 data on the Thunderbolt bus and the drivers on the PC see them like any other USB devices.

If I understand how USB4 is going to work they may have docks and hubs work like I described, with USB 2.0 data packets wrapped up into a USB4 packet, and then unwrapped on the host so that legacy USB 2.0 drivers can still work for them. This is because the legacy USB 2.0 lines will be gone and replaced with an additional pair of "superspeed" lines.

None of this helps people with a USB 3.0 controller because I am not aware of any such project to wrap USB 2.0 data into USB 3.0 packets. This only exists for Thunderbolt and USB4. The only way to get more USB 2.0 bandwidth is with some kind of expansion slot, which are quite rare on laptops today. Maybe there's an SD slot that can take a conversion card to USB 2.0?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.