3

I have the above simple requirement, and I'm frankly astonished that I can't find it as a simple chip.

My understandings:

  1. USB2 provides 5V on its power pins;
  2. USB2 assumes 100mA, but will provide 500mA upon negotiation;
  3. Most USB2 sources just provide 500mA anyway - but I want to be "official" and negotiate for it first;
  4. USB3 does "power delivery", but those chips are SO complex that they're overkill for my situation.

I have a 500mA, 3.3V circuit (330mA @ 5V) that I'd like to power from 5V USB. So I'm looking for a simple chip that has 4 USB pins (I assume the Data pins are part of the negotiation!) and one 3.3V output pin that can supply 500 mA - noting that ~750mA is the theoretical maximum. If there needs to be a couple of extra pins for support components (capacitors, inductors, etc.) then so be it, but I'd hope there wouldn't be many.

I've found all sorts of devices for USB chargers (on the "host" side - no good), USB Hub controllers (to even out multiple ports' requirements - too complex), USB peripherals with incidental output voltage (e.g. FTDI - way too complex), and even one 8-pin device that's almost ideal - but it stops at 200mA (300mA @ 3.3V).

Why isn't there a device that negotiates for 500mA, and then simply delivers it at 3.3V @ 750 mA (or close)?

John Burger
  • 1,493
  • 1
  • 10
  • 19

3 Answers3

0

Why isn't there a device that negotiates for 500mA, and then simply delivers it at 3.3V @ 750 mA (or close)?

Getting 750 mA implies a switching regulator, which is going to be a few components.

If you just want 500mA, I believe officially you are supposed to enumerate if connected to a host. However, almost nothing actually enforces that requirement, so if you are really pressed for board space or don't mind using a USB phone charger, you could omit the microcontroller and put a 30 cent 3.3v linear regulator.

user1850479
  • 14,842
  • 1
  • 21
  • 43
  • 500 mA per port is a USB requirement. It is strongly enforced. – Ale..chenski Aug 18 '20 at 01:30
  • @Ale..chenski Officially I believe you cannot draw 500mA without enumerating first, but few devices enforce that requirement. Edit: I see your point that non-USB devices may be exempt from that requirement. I had not heard that, but it would make sense. – user1850479 Aug 18 '20 at 01:32
  • There are official specifications that define power capabilities of classic USB-A ports. I provided a reference in many of my previous posts. The basic "100-mA level of pre-enumeration" is only required over bus-powered hubs, and this one is almost never enforced, vast majority of hubs are "cheating". The non-USB devices are just taking advantage of the official USB requirement. – Ale..chenski Aug 18 '20 at 01:44
0

Mostly because of the impractical need for one. As you mention no one really cared about the usb power enumeration so it has been defacto ignored. And it never worked with usb power supplies. Plus you would need active circuitry to do so. For a power only non data transfer device, its an added expense with little benefit. Usb requires constant data transfers or a keep alive message. Usb requires you to enumerate as a device on the host. Enumerating as an unknown device would lead to messages on the computer about it.

You can roll your own if you really wanted to. Take a 5v to 3.3V switching regulator with an enable pin and take a usb capable microcontroller like an attiny based v-usb or real usb atmegaU and program it as a usb serial device. Once enumerated you can switch on the regulator for your output. Bonus serial connection if you need it. Not a single chip solution but with two modules off fleabay and 20 minutes of setup you can have what you want.

Passerby
  • 72,580
  • 7
  • 90
  • 202
  • If you're not too fussy about your 3.3V supply you could always have the micro PWM it to save using an external regulator. Would still need an external MOSFET though - so maybe not worth the trouble... – brhans Aug 16 '20 at 19:31
  • What explained it best was you effectively asking "What would it enumerate as?" – John Burger Aug 17 '20 at 08:30
0

#2 premise is wrong. There is no need to "negotiate" anything from USB2 port, nor be "official". This "100 mA" sentiment is a commonly repeated misconception. Per USB specifications any AC-DC powered USB host must provide AT LEAST 500 mA. See this. That's why you cannot find any "negotiating" device on the market, it is not needed and thus does not exist.

Ale..chenski
  • 38,845
  • 3
  • 38
  • 103
  • From that exact answer: "The rare exceptions [from] 500 mA limit are small battery-powered USB hosts, who can limit themselves to 100 mA per port." Think ChromeBook. Thus the negotiation with such a host could be denied, so the device shouldn't use the higher current. "Rare", I'll grant you, but not a complete misconception either – John Burger Aug 18 '20 at 01:45
  • @JohnBurger, if a "small" device has a real concern about its battery run-time life, the designers have an option to DECLARE their ports as "low-power ports", and will limit the port current by hardware means. This would be a solution to prevent "laptop coolers" from draining your small device battery. BTW, Chromebooks can be pretty sizeable too. Still no "negotiations" is defined. – Ale..chenski Aug 18 '20 at 01:51
  • I agree about ChromeBooks - but they can also be _very_ small. But I don't understand: if a USB device is only to use 100mA until it knows it can use 500mA, how can it "know" without a negotiation process? _That_ is what I'm talking about. – John Burger Aug 18 '20 at 01:54
  • OK, "enumeration" is just another word for "negotiation". The device still asks for 500mA during the enumeration process. What if the Host says "No"? – John Burger Aug 18 '20 at 02:05
  • @john then the device is supposed to limit itself and honor what the host says. And if not the host is supposed to cut it off. Another thing that rarely happens. Most Macs do have controllable usb voltage sources per port but most manufacturers just tie it directly to the system 5v. Usb is less a standard and more of a guideline. – Passerby Aug 18 '20 at 02:11
  • @JohnBurger, the device doesn't not "know" anything. It is either admitted (set_configuration), or takes a "highway". This is not "negotiation", it is dictatorship. The device doesn't "ask", it just informs the host about worst case power consumption, which is/was never accurate. No customer wants to see a pop-up "not enough power for your device". It is much simpler to admit all devices until overcurrent threshold is reached. In reality this rarely happens, and all are happy. – Ale..chenski Aug 18 '20 at 03:07
  • 1
    OK, I think we're discussing semantics now. "Negotiation" is an often-used phrase in various computer protocols where the two sides decide upon mutually agreeable conditions. But as in life, that doesn't mean that all negotiations are successful. Q: "Can I have 500mA?" A: "No" is still a negotiation, just not a successful one. Just try plugging nearly any USB device into an iPad. That thing complains all the time about "too much power required", even when the device is self-powered - the device doesn't change its request when it's self-powered, although you could argue it should. – John Burger Aug 18 '20 at 03:17
  • @JohnBurger, a USB device MUST accurately describe its power configuration in its descriptor. Therefore it must change its descriptor depending on whether it is bus-powered or gets switched to self-power. These are different classes and therefore must have different descriptors. Several configuration can exist, see Section 7 of USB 2.0 specification. Also check Table 11-12. Again, this is semantics, but using the term "device request" is misleading and causes confusion. USB devices do not request anything, they peacefully "describe" their needs in device descriptors. – Ale..chenski Aug 18 '20 at 07:05
  • Say I did @Passerby's suggestion and enumerate as a CDC serial port with two power profiles, 100mA and 500mA. It'd start at 100mA with only the MCU operating, and (for example) wait for a "GO" serial command. When that happened, it would want to activate the rest of the circuit by turning on the 500mA regulator. But first, it'd need to switch to the second profile. Are you saying the correct procedure is for the device to Announce the change, and the only recourse for a denying Host is to simply turn off the power? There's no "Sorry, no" option? Or would the Host just never start the device? – John Burger Aug 18 '20 at 07:28