1
\$\begingroup\$

I have a simple electronics project where I need to build a device powered by a USB 3.0 port. The device controls some motors, so it needs quite some power. I need nearly 900 mA, which as far as I know, is the max. USB 3.0 port can provide.

However, I don't understand what should be there on the slave side for the USB port to supply such current. Would it be enough to put some specific USB bridge IC, such as FTDI? If so, could you recommend one? Or maybe I can use some simple USB hub for example?

\$\endgroup\$

2 Answers 2

1
\$\begingroup\$

To start with, current (A) and power (W) are two different things. How did you figure out that you need 900mA of current for your device? Did you take into account the efficiency of your power supplies to apply back to the USB power feed (eg. 5V)?

As you mentioned correctly, a standard USB 3.0 port, like the one you can find on a computer, can only deliver 900mA, or 4.5W (Power = 5V x 0.9A = 4.5W). For the port to enable the VBUS (eg. 5V), your device needs to show its presence when connected. To do so, the USB2.0 data lines (D+/D-) are used, see this article.

Now, most wall good USB chargers can deliver up to 5V/1.5A (7.5W), still using the USB2.0 data lines for advertising. Take a look into the Battery Charging 1.2 standard.

You could also consider Type-C ports/chargers which, with a simple resistor setup (5.1k pull-down resistors on CC lines), can deliver up to 5V/3A (15W) to your device.

\$\endgroup\$
1
\$\begingroup\$

If you don’t need USB communications, the DP/DM lines can be left open. If you do, you need only the standard pull-down on DP or DM so the host can determine if you’re a low-speed or full-speed/high-speed device.

Regardless, the downstream-facing port will deliver its rated current no matter what the endpoint devices does. If your device exceeds that rating the host will limit/over current warning but will not suffer damage.

This simple, host-limited power delivery was the state of affairs before the various ‘battery charging’ handshaking/sensing schemes came into play, all designed to avoid tripping host over-current. Nevertheless, the simple method is still workable if you’re willing to be explicit about the type of port your device plugs into.

And what about those handshaking/sensing schemes? Endpoint devices that support fast charging look at the host’s DP/DM termination to determine how much current they’re allowed to draw, and self-limit accordingly. Unfortunately there’s confusion about how this works exactly. There’s the USB (BC 1.2) way, the Apple way, the Sony way, etc. More here: https://www.maximintegrated.com/en/design/technical-documents/tutorials/5/5801.html

\$\endgroup\$
5
  • 1
    \$\begingroup\$ That is not at all true. A USB port will deliver 1 unit of power before enumeration. During enumeration, the power delivery is negotiated and can be up to 5 or 6 units depending on the version. A fully managed PC based USB port will not let you draw all 6 units of power without enumeration. (I'm not including chargers or wall warts in my statement). \$\endgroup\$
    – vini_i
    Feb 24, 2020 at 20:59
  • \$\begingroup\$ In working with USB power draw from hosts this is not the case. USB2: 500mA. USB3: 900mA, BC port? Up to 1.5A. Host-powered hubs are different and so they have to follow the current draw rules for their downstream-facing ports to avoid overcurrent-trip on the upstream host. For something that isn't a hub - just a USB-powered device - this doesn't apply. It's not complicated: plug in the device and it gives you the current that it can. \$\endgroup\$ Feb 25, 2020 at 0:42
  • 1
    \$\begingroup\$ Universal Serial Bus 3.2 Specification, September 22, 2017. Bus power: For one lane operation: Support for low (150 mA)/high (900 mA) bus-powered devices with lower power limits for un-configured and suspended devices. For two lane operation: Support for low (250 mA)/high (1,500 mA) bus-powered devices with lower power limits for un-configured and suspended devices. \$\endgroup\$
    – vini_i
    Feb 25, 2020 at 13:10
  • \$\begingroup\$ You’re getting hung up on ‘support for’. These lower limits are something the host and endpoint can negotiate if, for example, the host needs to switch to a lower power profile. There’s nothing in the specification that limits a host from simply delivering 900mA (more typically, 1A) at all times. And for normal power profiles that’s what actually happens. \$\endgroup\$ Feb 25, 2020 at 17:30
  • 3
    \$\begingroup\$ Not at all, I'm getting hung up on the "limits" in lower power limits for un-configured and suspended devices. Depending on how the standard was implemented there is no guarantee that the host will deliver full power without enumeration and power negotiation. Without a guarantee, it's just chance. Do you want to feel lucky every time you plug into a new host? \$\endgroup\$
    – vini_i
    Feb 25, 2020 at 17:37

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.