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 18.104.22.168 states of Downstream ports " 22.214.171.124 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 point method.