High-power bus-powered functions: All power to these devices comes from VBUS. They must draw no
more than one unit load upon power-up and may draw up to five unit loads after being configured.
However, you may be correct that in general most usb hosts do not enforce this specification.
For the last time, what people don't understand here is whilst this is telling you what a compliant hardware device should do, it is effectively a
software negotiation specification. It is
not a hardware specification. Ports do
not limit the current to 100mA first and then open that up to 500mA when requested.
That clause is in there to ensure that multiple devices on the same bus that may require more than 100mA, do so by asking nicely first "please sir, can I take more than 100mA?". The PC knows how many devices are already connected to that bus, so can them tell the device that's it's ok (or not) to use the 500mA available (at all times anyway) on the port.
If you know you are the only device connected to the port, then it certainly possible to cheat and simply draw your 500mA.
It's not nice, and it's not a USB compliant device, but there is virtually no real practical issue with cheating like this.
There are several good reasons why I'm taking this shortcut, and I accept any limitations it may have. I'm a bad, bad, person!, get over it people, really.
There are ports called "low power ports" that only have 100mA at all times, but these are relatively rare. Nothing you can do about that.
Maybe you could do a quick video which tests the current capability of a few USB ports to either prove or disprove this myth?
I've done it countless times over many many years. General USB ports do not limit the current 100mA. 500mA is available at all times.
Even if I measured 100 USB ports in a video, people would still crap on that what I'm doing is wrong.
Those who don't believe me can go around themselves and stick a 10 ohm resistor on USB ports and see for themselves.
Dave.