The USB Switch/Multiplexer allows a USB device (or multiple devices if connected via a USB hub) to be switched between two hosts, or powered off. This newer 4-pin version adds a 3.3V output which can be used to toggle the state using switches without the need for external power.
For example, to test images on a Raspberry Pi you can use it to switch a USB flash drive between being the USB boot device on one Raspberry Pi and switching it to a second Raspberry Pi where you could write a new Raspberry Pi OS image, read/write data etc. The switch can handle loads of up to 2.5A.
Whilst there are many USB 2 Multiplexers available to share a device between USB hosts, the folks at 8086 wanted a board they could easily connect and control from a Raspberry Pi or Arduino and allow power to the device to be turned off.
To control which host the USB port is connected to, set the OE and S (SELECT) pins high/low as per the table below:
!OE | SELECT | Connection |
---|---|---|
0 | 0 | USB Type-A is connected to micro USB port A |
0 | 1 | USB Type-A is connected to micro USB port B |
1 | X | Disconnected |
Both !OE and SELECT are pulled low on the board so that micro-USB port A is connected by default.
The pins can be controlled by 3.3v signals but they're also 5v tolerant. When switching between hosts A/B both data and power for the USB device are connected to that host. Using only the SELECT pin you can switch the device between A/B USB hosts.
Using only the !OE pin it can be used as a USB Switch to turn on/off the USB device (disconnecting both power and data) if you need to power cycle/power down a USB device for example to reset or save power.
By using both !OE and SELECT you have full control over which USB host the device is connected to and power it on/off.
This newer 4-pin version of the USB Switch/Multiplexer adds a 3.3 Volt output which can be used to toggle the state using switches without the need for external power.