We have a requirement, which is a normal self powered USB Hub, with individual power control of the ports, i.e in addition to a normal Hub, we want to remove the power to any of the downstream port on the fly using on-board micro controller. I am not an expert of USB2.0 specification, so, if any thing wrong please correct me. i am learning.

USB hub circuit has basically a USB Hub controller like TUSB8040, Quad Powerdistribution switch I have thought 3 possiblities.

1. I thouht to connect all OE# pins from Power distribution switch to On-board MC(Micron controlller) and connect I/O's of MC to TUSB8040's OC# pins. SO, that whenever we want to disable the Power to a perticular downstream port, that port OE# pin we will indicate Over Curretn condition from MC to TUSB8040. SO, that TUSB will disable that Port according to USB Spec. But, when i contacted manufacterur regarding he said this involves host communication also and it is not possible.

2. in USB Spec on these following sections in section states of Downstream ports " Powered-off This state is supported for all hubs. A port transitions to this state in any of the following situations: • From any state except Not Configured when the hub receives a ClearPortFeature(PORT_POWER) request for this port" One more section in USB2.0 spec, 11.11 Hub Port power control "A hub indicates whether or not it supports power switching by the setting of the Logical Power Switching Mode field in wHubCharacteristics. If a hub supports per-port power switching, then the power to a port is turned on when a SetPortFeature(PORT_POWER) request is received for the port. Port power is turned off when the port is in the Powered-off or Not Configured states."

Which indicates power to a particular port can be turned ON from Host if Hub supports the Per Port Power control. for this i didn't get any reply from the Manufacturer yet.

3. we are planning to control the USB distribution switch using 2:1 mux ( one of the input from on board MC and another from TUSB8040, so, that when MC want to disable any port it can control ) When on board MC disconnects the Power to any Port it can be detected by Hub and reported to Host automatically.

I feeel 3rd approach is very good and works. Any body foresee any hiccups in this 3rd pointenter image description here method.

  • \$\begingroup\$ Many hub IC's already support this - it's just that the cheaper off-the-shelf products leave out the necessary high side switches, so the hub IC has nothing to control. \$\endgroup\$ May 19, 2013 at 6:29

2 Answers 2


If you are willing to sacrifice one of the hub ports, FTDI has devices that talk UART over USB and have a bunch of IO-lines on them that support bit banging, ready to use. Advantage is that is only a single chip and most operating systems have drivers available.

I believe it is this one: http://www.ftdichip.com/Products/ICs/FT232H.htm

That way you can use one of the hub's USB ports to connect to the chip that can be programmed to control the outputs.

From the datasheet:

Bit Bang Mode.

The 2 nd generation device has a new option referred to as “Bit Bang” mode. In Bit Bang mode, the eight UART interface control lines can be switched between UART interface mode and an 8 - bit Parallel IO port.

Would be a nice fit with your option #2

  • \$\begingroup\$ Sorry for the confusion. I didn't want any programming capability through USB interface. \$\endgroup\$
    – user19579
    Mar 8, 2013 at 8:54

For approach #3, you don't need any switches. Simply put a resistor - a couple kilo-Ohms will do - between the HUB and the power switch, and use open drain outputs on your microcontroller connected directly to the power switch. Same effect for the price of 4 resistors instead of using an IC.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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