Hi all,
I was inspired by Dave's µSupply and the new USB-C power delivery standard. So I decided to design my own "USB-C PSU", powered by a USB-C wall adapter or anything which can deliver USB-C power. Depending on the USB-C power capabilities, the single channel PSU should deliver up to 80 W (20V, 4A) in a 25x60x150 mm³ case. It should be a modular supply, so you can stack two or more together, to reach more current or higher voltage. One can use a single USB-C supply for stacked modules if power is sufficient, or use one wall adapter for each module.
The specs I aim for are:
- 0-20 V output voltage
- 0-4 A @ 16 - 20 V
- 0-5 A @ 10 - 16 V
- 0-6 A @ 0 - 10 V (all assuming a 20V 5A 100W USB-C supply)
- low noise (have to test for that)
- Resolution: 5 mV, 1 mA
I attached the schematic, which I describe in more detail:
- USB-C power delivery:
I used this approach in a previous project, works just fine.
- Display and encoders:
I use a two-board construction, with pushable rotary encoders (for current and voltage selection), the "output on/off" switch, an output-on-status-LED and a 128x32 px OLED display (it's tiny: CFAL12832D-B from
www.crystalfontz.com).
- Local regulation:
Just a few linear regs to power all the logic stuff
- USB current monitor
This section deals with the stackable option; The ATMEGA328 always chooses the highest power profile available from the USB-C power source. So the maximum current rating of the supply is known; The actual current is measured with U9, a CS30C current sens opamp with gain 100. This info is used to limit the maximum power the user can dial in. The ATMEGA328 also computes the remaining current available for another PSU which might be present at the top of this one (connected via P102), done via an analog signal (1 A usable per V). If the PSU does not detect it's own USB-C power source, it gets the remaining available current (and its main power, of course) from a PSU at the bottom via connector "P103". If, on the other hand, the PSU detects its own power source, Q3 and Q4 (back-to-back PFETS) go hi-Z and disconnect power from the bottom. After all that, we should have Vcc available.
- DC/DC converter + filter
This is a software controlled DC/DC SEPIC switching converter based on the LTC1370: a "Tracking converter". Its set value is always approx. 1.5V above the voltage setpoint (= Dropout voltage of the linear regulators). I threw in two LC filters after that, maybe I'll get away with one - only testing will tell.
- Linear regulation and DAC:
This section was also havily inspired by Dave's µSupply series, as you can see. I use the same MAX4080 current opamp and two LT3083 regulators in parallel. I implemented the minimum load for the LTC3083 differently: I use three resistive loads switched in by software to assure regulation. I know, Dave's solution with a current source was more elegant, but I decided earlier, that instead of a ADC to precisiley measure the output voltage, I'd use the INA226 (U13), because it's cheaper. This chip also measures current AFTER the minimum load resistors.
For low voltage values (when the DC/DC converter goeas below 5V), the TLV2170 (U15) and the INA226 need an alternative power sourcec, thats were D3 and D4 come in an power the devices from the +5V rail.
The DAC is a LTC2612 (14 bit) for now, with a 4.096 V reference, resulting in a voltage resolution of 5 mV/bit.
- Main logic:
I chose the ATMEGA32u4, it has USB built in, so the supply can be remote controlled via USB.
I would appreciate any feedback on this design.
Cheers!