For all of its ubiquity across all aspects of consumer and personal electronics, the Universal Serial Bus (USB) protocol has a serious flaw relating to port switching and host/device role swapping. Because it was born in the era of desktop and laptop computers, the original USB specification assumed a one host — the PC — and one device link, be it a printer or an external memory storage device. USB-On-The-Go allows limited role swapping but only on a one-device/one-host connection.
But current popular applications in smart phones, wearables, MP3 players, etc. make things much more complicated. Now end users want to do more: depending on the application environment, a host may have several devices connected to it, each of which is capable of also being a host; or the user may want several hosts to talk to and control several devices.
“Currently, to do any of this with either USB 2.0 or USB 3.0 requires human intervention to physically go and make the swaps and switches,” Mark Gordon, Microchip USB/Networking Product Marketing Manager, told EE Times. The USB 3.0 Type C connector, which replaces the older USB form factors, makes the process less confusing, but it is still the user who has to physically make the right connections.
To make such flexible USB connections easier and remove the human user from the middle of the transaction, Microchip Technologies Inc. has just begun deploying FlexConnect, a proprietary state-machine-based algorithm, in many of its new USB-based circuit designs. The most recent device into which the company has incorporated FlexConnect is the USB5734 Smart Hub, which enables host and device role swapping and port switching, I/O bridging, and various other serial communication interface functions.
“With FlexConnect, a mobile device can plug into a standard USB host and take control of system functions, along with other USB connected devices and peripherals whose access was previously only available via the host controller or root hub,” said Gordon.
The state machine incorporated into the Smart Hub contains a FlexConnect algorithm that initiates and then directs a set of protocols that make it possible for a device to dynamically change physical settings to allow it to perform upstream and downstream ports, but remain compatible with the USB spec. In conjunction with an on-chip MCU, the FlexConnect state machine can also dynamically change whether an exposed port acts as a host or a device through low-level software commands.
By means of the FlexConnect capabilities, the Smart Hub has the ability to dynamically swap between a USB host and a USB device through hardware and/or software system commands giving the new USB host access to downstream resources. This same technology can also switch common downstream resources between two different USB hosts. Incorporating FlexConnect into a system simplifies the overall software requirements of the primary host, as class drivers and application software stay local to the device-turned-host.
Provided with the Smart Hub is the Protouch2 Configuration Tool, a software utility that can be used to program an on-chip, one-time programmable ROM that stores required register settings for an on-chip microcontroller to ensure the desired start up configuration at power on. In addition to this firmware control capability, FlexConnect can be configured through a series of external low-cost resistor bootstraps. There is also a command line tool for programming the Smart Hub's one-time programmable ROM on the production line.