But that's not what the spec says, nor is it common practice. The spec requires current limiting for safety set not higher than 5A 'and must be sufficiently above the maximum allowable port current such that transient currents (e.g., during power up or dynamic attach or reconfiguration) do not trip the over-current protector'.
I don't agree.
Look again at MrEngmans last post where he quotes an excerpt from the USB2.0 spec.
There isn't any active current monitoring in typical USB applications. Power management is done simply by tracking power requests made by peripherals.
As one example I refer you to page 12 (description of PRTCTL2 pin) and also pages 17 -19 of the
LAN5912 datasheet (the USB control chip used in the Pi).
Available here: http://www.smsc.com/media/Downloads_Pub ... s/9512.pdf
If a port that can supply 500mA already has 400mA of load on it and a device requests 200mA, it will deny it and the device should not power up, and the user should be notified. As far as I can tell, this is what the spec requires, and it's what every host port I've ever encountered does in practice.
Exactly, and how do you think the port knows that it's already supplying 400mA and that allowing
another 200mA will be greater then the allowable 500mA (and not 5A as you say) ?
Most hardware does comply with the power negotiation protocol, though it is pretty common for devices to simply request 500mA even if they don't require that much power.
"Most" being relative.
If the hardware bug isn't going to be fixed, then the USB host port should probably be configured so that it has a power budget of only 100mA, which should cause high power devices to fail to come up and the kernel to log an error.
Getting an experienced user to make use of kernel logs is all fine and well, but what about the less
Surely this whole "problem" can be avoided by simply using the correct polyfuses.
It's not as if they cost any more then the ones already being used.
Furthermore, how does one communicate to the less knowledgeable that the USB ports on the Pi
are OK as long as what you connect to them does not exceed 100mA.
Most users don't know the difference between a milliamp and a mega-amp, and why should they?
Bottom line whether we agree on the finer points of the USB spec or not, is that the power on the Pi boards as they stand is a problem.
First thing I'm going to do when I get my Pi is change the polyfuses to more sensible ones
and put this problem behind me once and for all.