I will use USB type C for the first time in a new design. I would like to get power from a PC USB port, but the device I am making has no “intelligence” to negociate a higher current with the USB host. I know that for USB2, there is a trick by wiring D+ and D- with resistors, and the PC host will “understand” that a higher current is required.
Does this exist for USB-C? Does anybody have a reference schematic to do that?
USB-C is a connector, it knows nothing about power, data, host or protocol. It’s just a mechanical thing that you stick into another thing.
Probably you are talking about USB3, even then you should specify which version.
Also specify what do you mean by get power, do you need PD or QC protocols? I don’t know if there are any simple tricks to get more than default 100ma for 5v but as far as I know for higher voltages you need a power negotiating chip.
I believe the USB-C standard is more complicated than just a couple of resistors to set current, I think there’s negotiation involved, and for voltage too. Remember the standard extends even to powering laptops and the like.
You’d probably get better information from a forum like eevblog. We’re just copper junkies here.
I’m reading section 2.3.3 and 2.3.4 right now. Section 2.4 is also interesting (VBus). There are links to other documents as well, such as the PD Specification.
Edit: the bottom of page 218 indicates that you can use USB2.0 or USB3.2 if you don’t want to support PD negotiation and monitoring.
Note there are small (12mmx30mm) PD sink modules (with USB C connector) that will supply a fixed voltage and handle
All the negotiation for you. Voltages available from common modules include 5v, 9V, 12V, 15V, and 20V. Let me know if you want me to find a link for you. I’ve ordered them from AliExpress before. They are less than USD $5, if you’re willing to wait 1-2 months for delivery. There are also small (2.5mmx2.5mm with 0.5mm pitch and also smaller) chips as well, but I don’t have experience with those.
Edit 2: this stackexchange post seems a very good summary of power options for a dumb device.
I have seen that trick only in USB power supplies. If the D+ and D- (in power supply) are connected by resistor (or shorted) then cellphone knows it is fast charger and it can take high current from that supply.
I am no expert in USB-C but there is such a thing as USB power delivery, and it is much more complicated than original USB. There may even be 1 or more chips included in the cable…unsure. As mentioned above there are several voltage options up to 20V and power can go up to 100W, so it can power a mid range laptop for example. Negotiation is necessary to make sure that the load gets what it needs and that the source is not overloaded. If I really had to implement it, I would look to see whether there may be an available chipset which is already set up to perform both ends of this power dance. I think that a dumb implementation will probably not be able to draw full power.
You’re on the right track. Absolutely you cannot draw “full power” (i.e. 20V, 5A = 100W) without properly implementing the PD protocol. Here is a presentation on one of the two versions available. There are two versions that I know of. The earlier version can output one of several fixed voltages (I think it’s 5V, 9V, 15V, 20V) and the other is a relatively continuous voltage range of voltages (I think it’s 0.1V steps between 5V and 20V).
As for just getting 5V, the following excerpt from the above-referenced stack exchange post is relevant:
[For] mA from the power source, you can just take it, up to 500 mA, and do nothing;
If you really need more than 500 mA, your device/project must check the voltage level on one of CC pin (whichever is active), to verify host power capability.
If the level is below 420 mV (±20%), you shouldn’t take more than 500 mA, the port can’t supply more than that, and will likely drop off the VBUS; this level would correspond to 56k : 5.1k voltage divider;
If you sense the CC level as 940 mV ± 8%, you can take 1.5 A, from the cable. This level will come from 22k pull-up, if the host port supports 1.5 A current;
If you sense more than 1.7 V (±8%), or 10 k pull-up on host side, you can take up to 3.0 A with no problem.
You can design this three-level comparator (and related logic) by yourself, or you can use any IC offered for this specific purpose by Texas Instruments, Maxim, Cypress, NXP, STMicro, etc.
What current do you need ?
I think the connected UART style parts can be programmed to say they need 500mA.
Is that enough, or do you need more watts ?
Thanks for all your replies!
Just in case it may help, I found a device that seems to do what I want. STUSB4500L.
It does basically what I need and I will go for one prototype, just to check how it works.
The chip can be controlled by I2C, but I will read the documentation first, just in case.