Thanks to Champers Fu , Lakshay Gupta , Dylan Kretschman , Devin Kretschman for review & assistance with KiCAD and manufacturing!
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. |
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.
|
|
|
Input Voltage Range
Buck Converter Pipeline
|
A few notes on this:
Also added a transient voltage suppresion (TVS) diode after review (see https://github.com/lhr-solar/USBCPowerPCB/pull/1#issuecomment-2294664194 and https://www.ti.com/lit/an/slvaf82b/slvaf82b.pdf?ts=1723847436491) |
(Infineon CYPD3177-24LQXQT) Question: What does this even do? Answer:
Let's try to understand the configuration (this is a slightly more detailed version with specific part numbers as presented in the Evaluation Board Design):
A similar configuration is used for the main output of the board as well. The reason we use a PMOSFET controlled switch for VBUS_OUT instead of just directly outputting to the sink is shown below (see pg 10 of Evaluation Board Design) |
See section 7.2.2 of the datasheet linked above.
From https://github.com/lhr-solar/USBCPowerPCB/blob/v1.0/BuckCalcs.xlsx , the appropriate component values are as follows. Note: calculations were done with Io = 10A since this buck is designed to carry that load. 15/20V ā 12V UVLO: Vstart at 14.25V, Vstop at 12.75V
Cap Selection
Output Protection
|
Recommended component values have been provided in the datasheet: From https://github.com/lhr-solar/USBCPowerPCB/blob/v1.0/BuckCalcs.xlsx , the appropriate component values for a 5V output are as follows. R1 = 73.2kOhms R2 = 10kOhms L1 = 4.7uH Cout = 47uF Additionally, bootstrap capacitor from BST to SW of 0.1uF, and Input Capacitor of 10uF for decoupling (and a 0.1uF from VIN to GND for high frequency filtering) Inductor values
|
A priority power mux like this one will allow me to switch between the 5V buck output and the safe 5V output from the USB Type-C PD chip all in an integrated package. It also includes reverse current blocking. |
ROE-0505S is a cheap option available on DigiKey/Mouser that outputs 1W (200mA), which is the most power we can get without jumping up by like $7. Itās very simple to use (V+in, V-in ā V+out, V-out). Additionally, Iāll include a PTC resettable fuse on the output here that protects the 5V ISO chip: This holds at 0.16 A and trips at 0.37 A, which seems more than suitable for the CAN bus usecase. |
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/
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.
A successful manufacture was later completed with Dylan & Devin. We soldered & verified the USB-PD negotiation at 20V (USB-PD) and 5V (non USB-PD), with the MOSFET logic to switch between SAFE 5V and 12V. We did this after ordering more extras
Near the end of the school year & during winter break I completed soldering of the 12V buck converter. Unfortunately, in conjunction with the USB PD negotiation, this brought up some issues.
Itās not clear whether this is a design or manufacturing problem, but the 12V output is at 0V. Additionally, it seems that the VBUS (USBIN as well as post-MOSFET) is being bucked to 12V, leading me to believe that USBIN and 12V or VBUS and 12V have been shorted. However, it seems like this is not the case from a continuity test.
Another potential error area I considered was incorrect resistors. I resoldered the 383K resistor since it seemed like it was reading the wrong value, but this was to no avail. In fact, it was probably right at the start, since when I was reading the resistor value it was on the board & in conjunction with other components the resistance reading was probably wrong.
Next, I tried connecting up just the buck converter to a power supply (20V). This way I was hoping I could test it in isolation without the influence of the negotiation and without the MOSFET actually connected up. I failed to consider that since there is a small capacitor from VBUS_OUT to GATE, connecting up VBUS_OUT to 20V would probably cause the MOSFET to activate and affect VBUS_IN as well.
The reason the capacitor C8 is placed there is because of this diagram from the evaluation kit:
I have now learned that āNO LOADā means āDO NOT PLACEā essentially: https://forums.parallax.com/discussion/102327/terminology-question-no-load-capacitor-and-no-load-resistor
However, after removing capacitor C8 the USBIN LED continued to light up, so I am not completely sure why. Thereās probably something connecting VBUS and USBIN or 12V and USBIN somehow???
Update: went into the embedded lab to desolder the MOSFET and test the buck converter and USB-PD negotiation in isolation
On the scope, USB negotiates to 9V but it does some weird PWM flipping between like 9.5 and 9V. So negotiation isnāt working anymore; wondering if that was because of some fry caused by the buck converter
For the buck itself, applying 20V to VBUS (input to the buck) yields an oscillating voltage on the output around 800mV. So something is wrong.
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).
Initial Research
Shunt and Amplifier Selection
5V Current Sense Selection
12V Current Sense Selection
Note: I changed this decision to just the one-channel variant after deciding that we donāt need 5V current sense. The new part number is INA180A1QDBVRQ1. Note: I changed this decision to just the one-channel variant after deciding that we donāt need 5V current sense. The new part number is INA180A1QDBVRQ1. A Few More Options
![]()
|
|
See datasheet linked above, as well as the section above this one.
Inductor selection (starting pg 30 of the datasheet):
Input Capacitor Selection
Output Capacitor Selection
|
|
This should allow us to boost to 12V from 9-20V, allowing a greater range of operating voltages. Also supports a 8A current limit. Switching Freq
Output Voltage
|
Stole this handy-dandy circuit from the LeaderSOM for Vout protection. It essentially does overvoltage for the 12V output with two back-to-back MOSFETs as discussed previously. Need to change overvoltage lockout point to 12.6V though, as USB PD has a tolerance of +-5%. As according to the MAX1691 datasheet (pg 8):
The other thing we need is current limiting for the 5V 400mA isolated output. For this, Iām using NPS4053 which works from 2.5 - 5.5V and has an adjustable current limit that weāll set to 390mA so that we donāt fry the isolator chip. 390mA = 23600/Rlim ā Rlim = 60.5128205 kOhms Weāll use a 62kOhm since itās a standardized value which equates to a limit of 380mA. |