Milling small parts
Tips & Tricks
USB Power Delivery is a standard within the USB 3.x protocol that specifies power supply and voltage levels within the USB network. With USB-PD it is possible to daisy-chain consumers which then negotiate power demands with the source(s) automatically. The standard has different versions, of which the latest (2021) allows up to 5 Ampères at 3.3…48V and a maximum of 240 Watts of power.
In the USB Power Delivery Standard, there are different roles that participants on the ends of an USB cable can play. They can be host or client for data purposes, and at the same time power source, power sink, or both for other participants.
USB-C uses the acronym DFP
or Down-Facing Port to make clear that the port is the one of a Host. UFP
or Up-Facing Port is used for clients that can be connected to hosts. There’a third role, though: DRP
or Dual-Role Port. This port can serve either as a host or as a client, depending on who the connecting partner on the other side of the cable is and what the USB network negotiates.
In USB-PD context, any of those ports can be configured to be sinking or sourcing current. Example: Although a Laptop’s USB-C port’s role may be configured to DFP
, when connected to a power source, it can still be a power sink. Hmm.
In this post, I’m only using the UFP
role in both USB-C and USB-PD word sense, meaning that I’m trying to configure a power sink for my device so that it will get the input voltage and current it needs.
Not all sources (wall plugs, powerbanks etc.) can supply all Voltage levels or currents, or even share the same standard of implementation. But a number of values is pretty common: 5V, 9V, 12V, 15V, 20V. Some of the products I have seen on the market offer up to 4A, but most keep it with up to 3A and voltages up to 15V are most common (in 2021).
ASIC stands for application specific integrated circuit, and in this post I’m trying to shed some light on ASICs with Power Delivery sink role that can work stand-alone, that is without an external control device such as a microprocessor. I found three types of these devices:
What all ASICs have in common: They require peripheral circuitry to work - at least some resistors, capacitors, and power transistors to switch power supply and negotiate with connected power sources.
Both the downwards compatibility and the scaleability of USB-PD take their tribute - the USB-PD specification is a >600 page monster and it’s not always clear which source or sink supports which protocol level.
As both the source, sink, and the cable have to negotiate a Power Delivery contract based on the sink’s requirements, the source’s power options, and the cable’s capabilities, you can imagine that this process is very complex. Even more so as all participants may have implemented a different USB-PD standard, revision and version. Fun fact: The USB Power Delivery specification package’s zip folder on the official page has a file size of >42MB. Although I think this topic is very interesting, I don’t have the time to deep-dive into the specifics 😅
So, let’s leave all this stuff behind and try finding an easy-to-implement solution.
I have arbitrarily chosen three ICs from the web, supplied by different companies, one each per device type:
I’ll select the STUSB4500 first.
For integration into my design, I wanted to buy some samples. Unfortunately, Chip shortages hit hard so that neither of the distributors that I normally order electronics parts with, had any in stock for the next year.
That’s why I decided to order a development board with the ASIC readily mounted. This is 10x more expensive than the chip itself but I didn’t have a choice here.
STUSB4500 is using the USB-PD Standard 2.0 - so not the latest greatest one - but downwards compatibility of later standards make it a quick and easy starting point for a maker. The device comes pre-programmed with three Power Delivery Objects:
So for my AnywhereAmps Alpha 1.1 evolution 1.2 I can use this thing right out of the box without re-programming. If I wanted to change the Power Delivery Objects, I’d use an Arduino board with I2C and install STUSB4500 library which is readily available e.g. at Platformio. With this, I could even activate USB-PD 3.0’s Programmable Power Supply if I wanted. Let’s see, when I find the time, I’ll prepare a specific blog entry for programming STUSB4500.
OK, so I connected the eval board to a 15V capable 30V USB-C power supply. The purple light indicates 15V available on the output rail.
Now I attached my amplifier circuits at its output terminals for an initial test. STUSB evaluation board lights gone, amp off. Meh. At least I have an indicaton for what the cause might be: It’s capacitive inrush currents, again! To be able to properly power devices with large bulk capacitors, either I’ll have to set current in the PDO to abormally high levels or I make up my mind aboud constructing a proper, miniaturized inrush limiter circuit. I have setup a prototype already that I discuss here.
The answer is a definete “it depends”. Although the capabilities of USB-PD are great, there are a few drawbacks:
On the other hand, using USB-PD makes much sense when you
Tips & Tricks
Touching off easily
Strategy and how to
improving quality
engrave and cut
the struggle to successful builds
Faster Engrave Algo
for CNC: Decision aid
Decision aid, Pros & Cons
3D signs - tutorial
Job preparation and quick demo
of an audio amplifier
From investigation to problem solution
From Pixel to Vector graphics
Symptoms of insufficient spindle power
Beginner CNC issue: Speeds/Feeds
Automatic Z-referencing, Tool length, Tool changes
EdingCNC Settings & Variables
Software/Hardware setup & kinematics
Assembling Sorotec’s Basicline 0607
Switch box setup
Entry-point and questions
Circuit & Application examples
USB-PD power supply explained
Can I use a Metabo/CAS battery for my system?
How to set protective voltage & current limits
Current inrush limiters explained
Electronics knowledge: TVS diodes
Or how to kill your circuits
How to properly talk to VideoLan’s VLC player
Prototype build, issues, improvement ideas for Revision2
How To: First steps with FreeCAD
Professionalizing circuits for AnywhereAmps
AnywhereAmp Alpha’s simple single-supply preamp
Design, folding, stability, amplifiers
Evolving the mobile, foldable instrument combo
Fix ‘ERROR: favicon not found’
Export the instructions from Markdown to PDF! but how?
Why some images display OK locally but won’t on Github
How to make ToC sticky
-incremental
option
How to solve issues with disappearing posts
Configure: landing page’s header image, Navigation