Apparently polyfuses can take days to properly un-trip.
When I took the offending cable out, and tried with a different device, it worked straight away, no reboot required (not sure about earlier versions/alternative scenarios though, it's possible they do require a reboot).
Apparently the resistance falls quickly at first but can take a long time to fully return to pre-trip level.
This has caused trouble in the Raspberry Pi. Users were getting odd effects when voltages didn't quite return to spec after polyfuse trip. [2]
[1] http://www.te.com/content/dam/te-com/documents/circuit-prote...
This explains why my computer has a bunch of USB3 ports that work... sometimes. (It also very sporadically has a massive wibble and hard-crashes with an error relating to USB.)
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.
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...
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.
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.
Not very expensive ($.5 a piece), but at scale may become costly.
>When you connect your USB-C-equipped Nexus 6P phone to a MacBook Air port designed to only provide 1.1A ... the phone can pull too much power ... and potentially destroy internal components.
This is just nonsense, as far as I know. No device can "pull" more current than you can provide. Even if you short the pins, the port will just be shut down, as noted later in the article itself.
>But Saunders, chairman of the USB-IF standards body, says he's not aware of any protection against a completely miswired cable like the one that struck down Leung's Chromebook Pixel. "That was something that the circuits of his notebook can't protect against," he says.
I highly doubt that. What's the worst that can happen? You deliver 20V to the pin expecting GND. Trivial to protect against. And this is also only for things like chargers. If it is any peripheral device, the voltage drop will never exceed ~5V I'm guessing. All this just comes down to bad engineering on the part of laptop manufacturers. Bad cables, bad devices, reverse polarity chargers have always been present. And our computers have always had protections against them. And that is how it should be. A completely miswired cable should simply not work.
Now if you're talking about differentials of >100V, then I would understand. But we're nowhere close to those levels. Google and Apple: Your ports are badly designed and you should feel bad!