Rossi said:
Andy Peters said:
As noted, USB host ports provide 100 mA until a device enumerates and requests more. A powered hub's downstream ports are the same as a host port in this regard. Unpowered hubs cannot provide more than 100 mA on a downstream port.
I haven't seen any bus-powered USB audio devices that support more than two mic preamps with 48V phantom, likely because they just won't work.
What's interesting is how various computers handle things. My iMac's ports handled overcurrent (faulty device pulling too much) gracefully. My MacBook Pro (on the power supply, not the battery), dealing with the same device, threw up an exciting error, saying that "A device was drawing too much current and was shut down." However, in the former case, the USB VBUS dropped significantly.
-a
Of the USB devices I tested, only one requested more current than 100mA. That was a Zoom guitar interface that acutally contained a 12AX7.
Of the handful of USB audio devices that support phantom power that I've tested, the descriptor dump indicates that they request the full 500 mA.
Manufacturers obviously avoid requesting more than 100 mA, and I suspect its for good reason. It's asking for trouble. It likely won't work on a passive hub, and I'm not so sure an active hub would always work. The active hubs I have have five or six USB outs and are powered via a relatively small wall wart. I haven't checked, but I doubt that little switching PSU would supply enough current for more than one USB device that draws maximum current. And as you say, many real world PCs and Macs won't supply high current either without giving trouble.
The whole point of the USB current-consumption field in the Device Descriptor is so that the device WILL work. The device reports its actual in-use current requirement. The host, which keeps track of everything attached to the bus, can then make a decision about whether the device should be allowed to operate. So if a device that requests 500 mA is connected to a bus port for which only 100 mA is available, the host will report that the device needs more current and will not be configured.
If the device requests only 100 mA and it requires 500 mA, then it's likely that the host will enable the device, but things will not work because perhaps only 100 mA is actually available. And this is at cross purposes with the USB spec -- it breaks the bus. This is why crap like those dual-type-A cables for hard disks (one for data and power, the other for extra data) are a disaster -- the device reports 500 mA current consumption but it actually uses up to 600 mA and the host driver that handles power management doesn't know that extra 100 mA.
Now in the case of passive hubs, assuming that the upstream port is providing 500 mA, it's obvious that there's no way this hub's downstream ports can source 500 mA. Some current is used by the hub electronics. As for powered hubs, all of the powered hubs floating around the house and at work have supplies that do 2.1 A or 2.5 A at 5V. This is sufficient to provide 500 mA to four downstream ports. And for ***** and grins, I've tried plugging in a bunch of high-power bus-powered things to a powered hub connected to my laptop and they all worked. I suppose that if I was worried that the wall warts weren't doing as they say, I could put a load on them and test them.
So 100 mA is likely the most you can safely assume a USB port will supply.
No, that is not true. You can assume that a host port (built into the computer) will supply up to 500 mA. Poorly-designed laptops cheat and do not provide 500 mA, but that's OK assuming that they are honest about their sourcing capability and as such disable a high-power device.
The problems occur when devices do NOT adhere to the spec, and unfortunately that's all too common, since the USB Implementer's Forum (the group that assigns Vendor IDs and promulgates the spec) is quite toothless indeed.
-a