2024 - 2026 USB-C PD Dongle Design Document
@Ishan Deshpande
Thanks to @Champers Fu , @Lakshay Gupta , @Dylan Kretschman , @Devin Kretschman for review & assistance with KiCAD and manufacturing!
- 1 Design Notes
- 1.1 Objective:
- 1.2 Block Diagram & Requirements:
- 1.3 Preliminary Research Notes:
- 1.4 USBPD Controller Chip Evaluations:
- 1.5 Buck Converter Research:
- 1.5.1 Input Voltage Range
- 1.5.2 Buck Converter Pipeline
- 1.6 Power Path & Flowchart:
- 1.7 PMOS Power Switch Configuration:
- 1.8 TPS56A37RPAR Buck Converter Notes (15-20V → 12V)
- 1.9 TPS562231DRLR Buck Converter Calculations (12V → 5V):
- 1.10 TPS2116DRL Power Mux
- 1.11 5V → Isolated 5V converter:
- 2 Development
- 3 Archive:
- 3.1 Current Monitoring
- 3.1.1 Initial Research
- 3.1.2 Shunt and Amplifier Selection
- 3.1.3 5V Current Sense Selection
- 3.1.4 12V Current Sense Selection
- 3.1.5 A Few More Options
- 3.2 Microcontroller
- 3.3 TPS62933PDRLR Buck Converter Calculations (12V → 5V):
- 3.4 ORring Diodes:
- 3.5 TPS55289 Buck-Boost Converter Notes (9-20V → 12V)
- 3.6 Power Protections:
- 3.1 Current Monitoring
Warning: this document is purely my notes from my own research. Don’t take everything in it for granted especially since I’m a beginner to this sort of stuff, and double check everything, especially if using it for design purposes. I am not purporting to be good at this or to get everything right or to know everything, since this is my first board for Solar.
If you have any corrections for this document, please feel free to comment with a correction. Try to keep the original material for a bit so that it is clear a correction is made/so that we preserve some history in case the correction is incorrect. - Ishan
Design Notes
Objective:
The purpose of this board is to be able to use a USB Type-C laptop charger to run one LV system (such as BPS or Controls). The dongle will act as a breakout; negotiating the power delivery at a fixed voltage with the laptop charger and delivering as much current as needed at a stable voltage of 12V/5V.
The dongle will (hopefully) also be able to supply the maximum amount of current necessary for any of our systems. @Lakshay Gupta wants to be able to handle the current spike that BPS has when the HV+, HV-, and HVARR contactors flip, so the design should potentially accommodate for that.
Block Diagram & Requirements:
Preliminary Research Notes:
USBPD Controller Chip Evaluations:
Buck Converter Research:
Power Path & Flowchart:
PMOS Power Switch Configuration:
TPS56A37RPAR Buck Converter Notes (15-20V → 12V)
TPS562231DRLR Buck Converter Calculations (12V → 5V):
TPS2116DRL Power Mux
5V → Isolated 5V converter:
Development
GITHUB LINK
Misc. Tips and Design Notes:
Originally I was using the downloaded symbols for the MOSFETs when creating the schematic, but then I realized KiCad has a large base of existing symbols for common device configurations. For example, Device:Q_Dual_NMOS_S1G1S2G2D2D2D1D1 models an NMOS FET similar to the 12V Output N-Channel MOSFET.
Additionally, the MOSFET symbols you might download for one of these things will just look like a rectangle:
vs the KiCAD dual mosfet symbol (far clearer in what it actually is):
So using the symbols from the Device library for a MOSFET, and then linking it later to the downloaded footprint for the desired FET, will make the schematic clearer.
This website is pretty good for resistor values: https://jansson.us/resistors.html
Choose E24 for most commonly available values
Originally I calculated inductors for max input of 20V, but in order to overspec it (as a safety measure) I’m going to redo the calculations for 25V and pick new inductors & ensure that the buck converters will still work as intended
According to this presentation, the voltage tolerance on USB PD is +-5%. The undervoltage lockout points have been set at exactly these values so that we can ensure proper operation.
Use wolfram alpha for conversions and calculations, it works pretty well.
Murata (and many other manufacturers) caps may not provide the DC bias curves for a capacitor on the datasheet directly, but have external design tools linked on the Mouser or Digikey page that will have the specific curve for the selected cap.
Digikey will often have more resources than Mouser, so make sure to check there.
See this reddit comment:
That's just an example graph to show that ferroelectric dielectrics are shit. You need to look at the curves for the specific part number capacitor, which is not always available.
For specific capacitor Vbias curves, I tend to look on the Digikey product page, where it will often be linked.
For Samsung caps, look for "Datasheets: LONG-MFG-PART-NO Characteristics". Example digikey page. Example characteristics datasheet.
For TDK, look for "Datasheets: Character Sheet". Example.
For Murata, look for "Design Resources: SimSurfing Design Tool". Example.
For KEMET, look for "Design Resources: K-SIM Simulation". Example. There's a drop-down menu on the upper left to select "Capacitance vs. Vbias" plot.
I'm pretty sure AVX has something similar, but not seeing an easy example, so no link. I guess they have crap coverage.
I've never found a good link for Taiyo Yuden, though I haven't searched much.
Wurth has a link that looks suspiciously like simulation results, but require you to signup and login, so fuck them. I'm not making an account to learn about your commodity passives.
So the data is out there for like 25-50% of the ceramic caps on digikey. I just assume the rest are garbage and ignore them, but then again I don't have BOM price pressure forcing me to look for cheaper passives. It really should be a column on digikey's parametric sort: delta C @ 75% WV. But I think they have the same problem with data availability that we do.
Adding onto this, Taiyo Yuden has a product searcher that will give you similar characteristic sheets. Given that these are on the cheaper end of caps, having this sort of data on caps we use often is valuable.
If you figure out certain specs for a component but you don’t know others, sometimes it is useful for me to just sort by price and pick the cheapest thing, then see if there’s anything that would bar it from working with your application.
Capacitor selection
Higher capacitor voltage ratings typically exhibit less effective capacitance losses
https://dubiouscreations.com/2021/04/06/designing-with-usb-c-lessons-learned/
Manufacturing First Iteration:
The plan is to solder & verify each subcircuit (USB-PD controller, 12V buck, 5V buck, power mux, and isolation) independently, so that we can catch errors with minimal interaction between subcircuits.
As soon as we received the board & the components from Mouser, @Champers Fu and I soldered the Power-Delivery circuitry late after workday. The embedded lab soldering room was closed so we sort of eyeballed it, which was a mistake.
We also didn’t have resources (like alcohol) to clean the flux off of the QFN pins so we definitely shorted some pins on the CYPD chip.
We found that the chip was not able to produce a stable 3.3V, which screwed up the configuration resistors and immediately made negotiation fail.
Additionally, the chip was getting so hot that the flux was moving around on the board. We must have shorted USBIN and GND (and perhaps also the CC pins and GND), because I’m pretty sure we completely fried the chip.
This was all found after careful inspection under a microscope with @Dylan Kretschman and @Devin Kretschman. Note to self: using a microscope for soldering, especially for QFN packages, makes everything so much easier.
I believe the QFN pin for USB in was burnt off completely due to the botch soldering job.
Another mistake was not ordering extra components. Always buy at least two of every chip & passive you’re planning to use. Sometimes if you buy 10 pieces of passives (resistors, capacitors) rather than 1 or 2 it can make it cheaper.
Archive:
These are sections that I’ve archived after some review/redesign step. They are preserved here to view along with an explanation of the design decision(s).
- Current monitoring with a 7seg display and MCU was cut because:
- after PSOM transitioned to 12V and 5V became only an isolated supply for CAN testing, there was really no need to monitor current on both 12V and 5V (only 12V)
- felt the need to make development faster and easier
- not really super useful if you have a multimeter and some header pins, more just for the cool factor
I suppose one thing I try to keep in mind is to not be too married to a specific idea, and also that something that works and is streamlined in application is often better than the more complicated option.
Current Monitoring
Microcontroller
- Using TPS562231DRLR buck converter (from the PSOM) w/out power protections; since we need to add a separate power protection chip for the isolated 5V anyways. Plus it’s far easier to use and is cheaper.
TPS62933PDRLR Buck Converter Calculations (12V → 5V):
- Originally planned to use ORring diodes for the 5V and Safe 5V combo wombo but decided to use TPS2116DRL instead.
ORring Diodes:
- TPS56A37RPAR was the original selection for a buck converter; but did not support 9V and 12V voltages. Matthew suggested that TPS55289 may be the way to go for a buck-boosts that would fit this usecase. However, after learning that it uses I2C for voltage configuration (🤮) I decided to revert back to the TPS56A37, since I did not want to add a microcontroller to the board, nor did I want to have to configure every manufactured power supply.
TPS55289 Buck-Boost Converter Notes (9-20V → 12V)
- These power protections were added initially but deemed as overkill in review, especially since the nice 12V buck handles a lot of this. Replaced by far simpler output protections like a PTC resettable fuse and a diode.
Welcome to the University Wiki Service! Please use your IID (yourEID@eid.utexas.edu) when prompted for your email address during login or click here to enter your EID. If you are experiencing any issues loading content on pages, please try these steps to clear your browser cache.