4 ms·
> "Your device tried to draw too much current and so the USB port has been disabled." In USB 1 and 2 (probably also in 3, but I don't know about this), the dev
by cnvogel 11y ago
> "Your device tried to draw too much current and so the USB port has been disabled."
In USB 1 and 2 (probably also in 3, but I don't know about this), the device has two power modes. Initially it is only allowed to draw a few mA. This allows to power up enough of the device (the USB controller) so that the device descriptor can be read. The device descriptor tells the computer that the device requires some additional current. If in a chain of several non-externally powered hubs there's not enough capacity, the COMPUTER will NOT TELL THE DEVICE TO POWER UP. The computer can not turn off the voltage on the port. Typically USB interface chips will have an output pin that's only providing additional ("high power" circuitry) with power, by switching a mosfet, when the computer gave the OK to proceed.
sudo lsusb -v
(...)
Device Descriptor:
(...)
Configuration Descriptor:
bmAttributes 0xa0
(Bus Powered)
Remote Wakeup
MaxPower 500mA
> I highly doubt that. What's the worst that can happen? You deliver 20V to the pin expecting GND.
...which means that you deliver -20V to the +5V rail.
- omgtehlion 11y ago> The computer can not turn off the voltage on the port Right here I have a roll (1000pcs) of chips that do exactly this (usb power management ICs) that cut power off and report this incident to controller. Maybe notebook manufacturers do not use them due to cost or space constarints...
- cnvogel 11y agoInteresting. Could be that they are mandatory when you have ports sourcing higher currents? That would be reasonable, to avoid damage on shorts. -- But I've never seen such things on "simple" (500mA) ports, only polyfuses. I'd really be surprised if there would be anything but polyfuses on the "old WinXP PC" my original comments's parent comment referred to.
- dfox 11y agoCommon implementation of overcurrent protection on USB ports consists of polyfuse on VBUS and feedback pin from this fused VBUS to controller (to detect tripped polyfuse), on some devices such polyfuse is even shared by multiple ports. In theory, original USB1.1 expected the trip-point to be programmable, but most USB hosts are not implemented that way, because it requires some kind of low-drop high-side power switch that tends to be expensive.
- omgtehlion 11y agoYup, these ICs are low-resistance (low drop) mosfets with some comparators in single package (handles 2 usb ports). Not very expensive ($.5 a piece), but at scale may become costly.