Author Topic: Real-world hosts that reject >100 mA or >8 mA?  (Read 9716 times)

jb

  • Member
  • ***
  • Posts: 26
Real-world hosts that reject >100 mA or >8 mA?
« on: December 17, 2020, 11:46:22 am »
Are there any hosts in the real world that actually reject a device that requests >100 mA?  The only one I've ever seen is an iOS device with a Camera Connection Kit attached to it (but our devices connect directly with a Lightning connector in that case).

I even bought some bus-powered USB hubs, expecting them to limit downstream ports to 100 mA, and none of them did.  They all lied and claimed to be self-powered, even AmazonBasics hub.

There is one report here of a hub refusing >100 mA: https://superuser.com/q/1350148/13889

Any smartphone models that have this limitation?


This article says that current limitations are "a myth" and you can just draw 500 mA all the time from everything with no problems.  I know that's probably true for 99% of hosts, and even the Type C spec seems to say "You can always draw 500 mA without even enumerating", but I want to really understand if there are any exceptions out there.



Similarly, USB OTG spec only requires hosts to support 8 mA.

OTG 1.0 On-The-Go Supplement to the USB 2.0 Specification Revision 1.0 2001-12-18

Quote
3.2 Dual-role Device
In addition to being a fully compliant USB 2.0 peripheral, a dual-role device must include the following features and characteristics:
...
• one, and only one, Mini-AB receptacle
• minimum 8 mA output on VBUS

...

A dual-role device must be able to source a minimum of 8 mA on VBUS when it is the A-device and a session is in progress.

...

An unconfigured, SRP capable, peripheral-only B-device shall not draw more than 8 mA average current (IB_PO_UNCFG max) from VBUS.

I'm confused as to whether our device would ever be plugged into such a host.  They use the same connectors and behave like a normal host otherwise, right?  So a smartphone, etc. could be following this spec?  And then even if we request 100 mA it could conceivably be rejected?

SRP means:

Quote
Session Request Protocol (SRP), which allows a B-device to request the A-device to turn on VBUS and start a session. This protocol allows the A-device, which may be battery powered, to conserve power by turning VBUS off when there is no bus activity while still providing a means for the B-device to initiate bus activity.
...
Any B-device, including a standard USB peripheral, is allowed to initiate SRP.

So I guess if we don't support Data-line Pulsing or VBUS Pulsing, we can't connect to these devices anyway, so it's not relevant.



The context is that our device can run from batteries or not, depending on what it's plugged into, and I'd like it to charge as fast as possible from whatever it's plugged into, but still function from batteries even if current draw is refused.
« Last Edit: December 17, 2020, 11:58:39 am by jb »

Jan Axelson

  • Administrator
  • Frequent Contributor
  • *****
  • Posts: 3033
    • Lakeview Research
Re: Real-world hosts that reject >100 mA or >8 mA?
« Reply #1 on: December 17, 2020, 08:41:53 pm »
I believe hosts and hubs are free to provide more current than the spec mandates.

A device that depends on that behavior runs the risk of encountering a host / hub that does limit current. Even if none exist right now, they could in the future.

If the device CAN use a higher current, but doesn't REQUIRE it, it's likely OK.