...
...
PD only requires a subset of the pins of USB Type-C, so a 16 contact connector is fine. (note: i believe we could have even gotten away with a 6 contact connector, but we need to support 5A and the 6p connectors on Mouser only support 3 :/)
...
...
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.
Requirements:
- 12V and 5V output at max amperage possible
- 12 for LeaderSOM, 5 for PeripheralSOM
- Able to switch modes between the two
- Status LEDs
- On/off toggle switch
- Current/voltage monitoring capability thru an external scope/multimeter?
Block Diagram:
Image Removed
Preliminary Research Notes:
- USBPD devices can either act as the source (charger) or sink (device) or DRP (both). For our purposes we probably want a sink-only chip since we'll be plugging a charger into this board and the output will be a 12V/GND line. We don't need this to act as a source from a wall outlet.
- Compatibility with USBPD 2.0 and USBPD 3.0 would be nice to allow us to use a wider array of laptop chargers.
- USBPD 2.0 allows for fixed voltage outputs of 5, 9, 12, 15, and 20V
- USBPD 3.0 allows for incremental voltage outputs anywhere from 3.3V to 21V in increments of 20mV. This is called PPS (programmable power supply). We don't really need this since we only need to provide fixed 12V and 5V.
- Perhaps considerations should be made for USBPD 3.1 as well, as that would allow for a higher power delivery of 240W and possibly support driving contactors.
- 3.1 is backwards compatible so designing a 3.1 sink should allow for interfacing with 3.1/3.0/2.0 source
- Since we want to max out current I think 3.1 makes the most sense as USBPD 3.1 EPR (Extended Power Rating) cables have the capability of providing up to 240W @ 48V
- This may have to wait as there are not many 3.1 sink chips available
- According to this reddit post, USBPD3.1 @ 240W probably isn't possible since the sink functionality of it is not well supported. I took a look at a few chips such as ST-ONEHP and TPS25730USB.
USBPD Controller Chip Evaluations:
- Mouser USBPD Search
- USB Type-C PD 3.0 Specification, Charging and Design
- Guide to USB-C Pinout and Features
- USB Type-C and USB power delivery power path design considerations
- Phil's Lab video
- Designing a USB PD (Power Delivery) Trigger Board For My Devices
- Infineon CYPD3177-24LQXQT
- Used in this Phil's Lab video
- In stock on Mouser as of 5/22/24
- Price: $2.20
- Operates on USB-PD 3.0 Standard
- Capable of 100W (20V @ 5A)
- Evaluation Kit Guide
Image Removed- Pretty simple to set VBUS Min/Max and Current Min/Max; just use voltage dividers on four config pins as shown above
- Offers a fault indicator
- Falls back to 5V in case negotiation fails
- QFN package (more difficult to solder, but still manageable at Pickle esp. with someone with experience)
- INJONIC IP2721
- Used in this isaac879 video
- Available for order on JLCPCB or AliBaba
- In-stock at JLC and Alibaba as of 5/8/24
- Price: $0.69
- Capable of 20V
- Connecting high to SEL pin will make it output 20V, which makes configuration easy
- The downside of this (as according to this Hackaday post) is that even though USB-PD supports current negotiation (sink asking source what current it supports), the IP2721 doesn't. So if a charger is plugged in that doesn't support 5A, which we are ultimately going to request, then we still may not get the current we want and perhaps trigger some overcurrent condition on the source if we go over that amount.
- TSSOP package, so easier to solder
- Texas Instruments TPS25730
- Price: $2.69
- On backorder in Mouser as of 5/8/24
- In TI's product selector for USBPD chips, this seems like the newest sink-only chip
- It supports PD 3.1 in that you can do PPS (which we don't actually need anyways)
- Capable of 100W (20V @ 5A)
- It looks like an external microcontroller can be attached to I2C for configuration purposes, but doesn't have to be
Image Removed- Min/max voltage and operating current/max current configured through ADC1 through ADC4, can just hook up voltage divider
- TPS25730D has an internal HV path, whereas S has a gate driver for an external HV path
- QFN package; harder to solder as mentioned before
- STMicroelectronics STUSB4500
- In-stock as of 5/8/24
- Price: $2.71
- Reference schematic
- Capable of 100W (20V @ 5A)
- Configurable through programming non-volatile memory (NVM) through I2C
- Would make initial configuration of anything above 5V a bit more difficult, but would only need to be done once at the beginning with a programmer of some sort (Nucleo?)
- QFN package
Buck Converter Research:
- I suppose we'll need a high-efficiency buck converter to step down from 20V@5A to 12V@8.333A after the whole USB PD negotiation is complete.
- This doesn't just need to be 20V → 12V, it could also be 15V or 12V since those are supported by USB PD and will be negotiated if 20V isn't available
- Tips on Layout from Phil's Lab
- Buck Converter Explained
- Another one: Buck Converter 2: Electric Boogaloo
- Other typical forms of voltage step-down (Linear Voltage Regulator (LDO), Voltage Divider) dissipate power as heat to step down voltage. We lose power in some capacity as heat.
- Buck converters will decrease voltage AND increase current to maintain power (typically higher efficiency but less stability when compared to an LDO)
Image Removed- When the switch is closed, the inductor charges up
- When the switch is opened, the inductor releases charge through the load resistor RL. The current flows through the diode and back into the inductor
- We switch the switch (MOSFET) at a certain frequency and duty cycle in order to keep the average current relatively stable over one period
- The capacitor is assumed to have a steady voltage over one period, so it just keeps the voltage drop across RL the same
- Watch the Buck Converter 2 video for more explanation and the derivation for the following equation:
- Vout = Duty Cycle x Vin (typically)
- Datasheet will have more specific calculations for things such as voltage dividers which will ultimately set the duty cycle
- A synchronous buck converter replaces the diode with another MOSFET so that there is less power loss since the MOSFET will have lower power loss while current is flowing thru it
- Luckily for us, these buck converters come in convenient little ICs that will do all this switching for us
- We need two of these, one for 12V and one for 5V
- WEBENCH Power Designer
- Integrated FET packages (the mosfet comes inside the IC)
- Mouser Filter Link
- TI Filter Link
- Analog Devices Filter Link
- Nothing on here that can do more than 6V output
- TI TPS56A37
- $2.87 on Mouser
- 4.5V to 28V input
- 0.6 to 13V output
- Supports 10A continuous output current
- Seems most appropriate for our 20V->12V use-case especially since other ICs can't supply as much current
- QFN package
- muRata MYLSM00502ERPL
- This is the one used on LeaderSOM
- Supports up to 2.5A continuous output current (we don't need much for 5V usecase since it's meant for lower power boards)
- External FET Buck Controller packages (mosfet is outside the IC, might be more cost-effective and able to provide enough current)
- TI Filter Link
- TBH I kind of prefer an integrated package rather than this so might not really look at these any further
- Is isolation required between the USB-PD provided power and the device power?
- If so, an external FET buck controller package with a transformer may be required
- https://www.eevblog.com/forum/projects/usb-type-c-pd-lab-power-supply/
- Decided it's probably not worth it. From what I can tell from online + talking to Jacob Pustilnik and Matthew Yu, isolation is mainly used to protect the user from voltage shock and to protect the device from taking a large amount of voltage if the buck converter fails. Additionally, the cost difference after looking at some Murata buck converters is large enough to warrant no isolation ($83 is a LOT). We'll just A) be safe when using the device, perhaps put it in an enclosure of some sort, and B) make sure that there is voltage protection on new devices we produce so that a 5V device like the Peripheral SOM won't break if a spike of 20V is applied to it. We'll also include some overvoltage protection on the output to make sure this doesn't output more than 12/5 V.
Weird NMOS MOSFET Configuration:
Image Removed
(Infineon CYPD3177-24LQXQT)
Question: What does this even do?
Answer:
- https://www.homemade-circuits.com/bidirectional-switch/
- TLDR; even if a MOSFET is not powered via the gate, the diode can still carry current if it flows into the gate. This double MOSFET configuration prevents current from flowing either way, so there is no power loss across the diode when inactive.
- When the MOSFET is off current will only flow in one direction, from source → drain (because of the diode). When the MOSFET is on current can flow in either direction (source → drain or drain → source). This is why this circuit works, because if both MOSFETs are on then current can pass either way, but if both are not on current cannot flow at all due to the diode.
- Bidirectional switch
Image Removed
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):
Image Removed
- SAFE_PWR_EN (or as referenced here SAFE5V_FET_EN) is driven to 0V if negotiation fails and USB PD falls back to 5V at 1A. Otherwise it is high impedance.
- If negotiation fails, VBUS_OUT = 5V and SAFE_PWR_EN = 0V. The voltage divider drives the MOSFET's gates at ~0.098V.
- When negotiation fails, the common source node (where S1 connects to S2 on the diodes) will be equal to VBUS_OUT (5V).
- Therefore, VGS = 0.098 - 5 = -4.90200 V
- As according to the datasheet, VGS(th) = -1.5V. Remember, since this is a P-channel MOSFET, it gets activated with a negative VGS.
- So VGS > VGS(th), therefore the gate of both MOSFETS will allow current to flow and SAFE_5V_OUT will get 5V.
- Why do we need the 49.9k and 1k resistors?
- The 49.9k really acts more like a large pull-up resistor rather than a voltage divider from what I can tell. If negotiation of USB-PD succeeds, SAFE_PWR_EN is high impedance. This means that it will be easily influenced by whatever is connected to it, so it can be pulled up/down. Then, VBUS_OUT pulls it up to its voltage so that the gate is not triggered (since then source = gate)
- The 1k is for protecting the gate inputs to the MOSFETs (see https://www.build-electronic-circuits.com/mosfet-gate-resistor/)
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)
Image Removed
Development
Components and ICs:
...
Infineon CYPD3177-24LQXQT
...
QFN Design Guidelines
Evaluation Board Design
...
TI TPS56A37
...
muRata MYLSM00502ERPL
...
Phoenix Contact 1332645
...
Ishan Deshpande
Thanks to Champers Fu , Lakshay Gupta , Dylan Kretschman , Devin Kretschman for review & assistance with KiCAD and manufacturing!
| Table of Contents |
|---|
| minLevel | 1 |
|---|
| maxLevel | 6 |
|---|
| include | |
|---|
| outline | false |
|---|
| indent | |
|---|
| style | none |
|---|
| exclude | |
|---|
| type | list |
|---|
| class | |
|---|
| printable | true |
|---|
|
| Panel |
|---|
| panelIconId | 1f635-200d-1f4ab |
|---|
| panelIcon | :face_with_spiral_eyes: |
|---|
| panelIconText | 😵💫 |
|---|
| bgColor | #FFF0B3 |
|---|
|
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:
| Expand |
|---|
Simultaneous 12V and 5V output 12 for LeaderSOM, 5 for small sensor power or CANbus power 5V needs to be isolated from 12V for CANbus power Status LEDs On/off toggle switch Overcurrent/voltage and undervoltage protection
|
Preliminary Research Notes:
| Expand |
|---|
USBPD devices can either act as the source (charger) or sink (device) or DRP (both). For our purposes we probably want a sink-only chip since we'll be plugging a charger into this board and the output will be a 12V/GND line. We don't need this to act as a source from a wall outlet. Compatibility with USBPD 2.0 and USBPD 3.0 would be nice to allow us to use a wider array of laptop chargers. USBPD 2.0 allows for fixed voltage outputs of 5, 9, 12, 15, and 20V
Perhaps considerations should be made for USBPD 3.1 as well, as that would allow for a higher power delivery of 240W and possibly support driving contactors. 3.1 is backwards compatible so designing a 3.1 sink should allow for interfacing with 3.1/3.0/2.0 source Since we want to max out current I think 3.1 makes the most sense as USBPD 3.1 EPR (Extended Power Rating) cables have the capability of providing up to 240W @ 48V This may have to wait as there are not many 3.1 sink chips available According to this reddit post, USBPD3.1 @ 240W probably isn't possible since the sink functionality of it is not well supported. I took a look at a few chips such as ST-ONEHP and TPS25730USB.
|
USBPD Controller Chip Evaluations:
| Expand |
|---|
Mouser USBPD Search USB Type-C PD 3.0 Specification, Charging and Design Guide to USB-C Pinout and Features USB Type-C and USB power delivery power path design considerations Phil's Lab video Designing a USB PD (Power Delivery) Trigger Board For My Devices Infineon CYPD3177-24LQXQT Used in this Phil's Lab video In stock on Mouser as of 5/22/24 Price: $2.20 Operates on USB-PD 3.0 Standard Capable of 100W (20V @ 5A) Evaluation Kit Guide Image AddedPretty simple to set VBUS Min/Max and Current Min/Max; just use voltage dividers on four config pins as shown above Offers a fault indicator Falls back to 5V in case negotiation fails QFN package (more difficult to solder, but still manageable at Pickle esp. with someone with experience)
INJONIC IP2721 Used in this isaac879 video Available for order on JLCPCB or AliBaba In-stock at JLC and Alibaba as of 5/8/24 Price: $0.69 Capable of 20V Connecting high to SEL pin will make it output 20V, which makes configuration easy The downside of this (as according to this Hackaday post) is that even though USB-PD supports current negotiation (sink asking source what current it supports), the IP2721 doesn't. So if a charger is plugged in that doesn't support 5A, which we are ultimately going to request, then we still may not get the current we want and perhaps trigger some overcurrent condition on the source if we go over that amount. TSSOP package, so easier to solder
Texas Instruments TPS25730 Price: $2.69 On backorder in Mouser as of 5/8/24 In TI's product selector for USBPD chips, this seems like the newest sink-only chip It supports PD 3.1 in that you can do PPS (which we don't actually need anyways) Capable of 100W (20V @ 5A) It looks like an external microcontroller can be attached to I2C for configuration purposes, but doesn't have to be Image AddedMin/max voltage and operating current/max current configured through ADC1 through ADC4, can just hook up voltage divider TPS25730D has an internal HV path, whereas S has a gate driver for an external HV path QFN package; harder to solder as mentioned before
STMicroelectronics STUSB4500
|
Buck Converter Research:
| Expand |
|---|
I suppose we'll need a high-efficiency buck converter to step down from max 20V@5A to 12V@8.333A after the whole USB PD negotiation is complete. Another design consideration was made in this area about the buck converter pipeline. The two possible options were 20V → 12V → 5V (e.g. having chained buck converters) or 20V → 12V AND 20V → 5V (independent buck converters) Chaining buck converters means that we can use the same 12V → 5V buck converter we typically use, muRata MYLSM00502ERPL. However, this means that if 12V or above is not in a source’s capabilities, then 5V will also fail. Basically 5V is entirely dependent on the 12V working, which limits the set of USB Type-C chargers we can use with this board. Independent buck converters means that 5V can function without 12V, so if a PD charger WITHOUT 12-20V support is used, we can still test a low voltage device. This seems better but also makes our job as circuit designers more difficult in terms of validation, cost, or efficiency.
Matthew Yu’s notes on LDO vs Buck Converters: Image Added
Tips on Layout from Phil's Lab Buck Converter Explained Another one: Buck Converter 2: Electric Boogaloo Other typical forms of voltage step-down (Linear Voltage Regulator (LDO), Voltage Divider) dissipate power as heat to step down voltage. We lose power in some capacity as heat. Buck converters will decrease voltage AND increase current to maintain power (typically higher efficiency but less stability when compared to an LDO) Image AddedWhen the switch is closed, the inductor charges up When the switch is opened, the inductor releases charge through the load resistor RL. The current flows through the diode and back into the inductor We switch the switch (MOSFET) at a certain frequency and duty cycle in order to keep the average current relatively stable over one period The capacitor is assumed to have a steady voltage over one period, so it just keeps the voltage drop across RL the same Watch the Buck Converter 2 video for more explanation and the derivation for the following equation: A synchronous buck converter replaces the diode with another MOSFET so that there is less power loss since the MOSFET will have lower power loss while current is flowing thru it
Luckily for us, these buck converters come in convenient little ICs that will do all this switching for us We need two of these, one for 12V and one for 5V WEBENCH Power Designer Integrated FET packages (the mosfet comes inside the IC) External FET Buck Controller packages also exist and were looked into briefly (mosfet is outside the IC, might be more cost-effective and able to provide enough current)
Originally the decision was made to have two buck converters both bucking from the source voltage of 5-20V. The reason this decision was made early on was because a heavy emphasis was being placed on this board working with a wide range of USB PD chargers for a larger applicability. However, this decision needs some reconsideration. First, an argument could be made for not supporting anything other than 20V. 12V isn’t typical on these laptop chargers and is usually considered an “optional” voltage While it would be cool to run on 5V/9V chargers, perhaps the design considerations necessary for them (such as a 5V buck bypass mosfet in case the voltage input is 5V to prevent voltage dropout, or a similar design on the 12V buck for an input 12V) isn’t worth it. Most common is the 65W USB-C laptop charger, which usually is 20V at 3.25A (bucks down to approx. 12V at 5.41666667A). We could even buy a few of these Anker 100W USB PD chargers for people to use with the device. Also, we don’t need that much current for the 5V bus since it’s mainly for CAN, so we can safely fail negotiation and then just use SAFE_5V from the USB-PD chip
Additionally, supporting a wider range of voltage inputs is making development slightly more difficult for not all that much gain. All in all, a larger variety of chargers supported may just make our lives harder. Thus, let’s decide to make it only operate if the USB-PD charger supports 15 or 20V. This is easily modified during testing via placement of different resistors.
Buck Converter Pipeline15/20V → 12V → 5V, a series configuration, means we only have one unknown voltage input from the USB-PD chip, which is better than having an unknown voltage go into both the 12V and 5V converter.
|
Power Path & Flowchart:
| Expand |
|---|
Image AddedA few notes on this: The 5V output needs to be isolated from the 12V output for CANbus, since our CAN chip requires an isolated bus-side power If the source does not support 15/20V, a safe 5V will be generated by the USB-PD chip that will then be input into an ORring diode configuration in order to output it to the same 5V port. The triangles are ORring diodes.
Image AddedA major benefit to this scheme would be to allow negotiating for 12V and either using a buck/boost converter that supports 12V input and 12V output; or bypassing the buck entirely. In his review, Matthew Yu suggested having a buck-boost TPS55289 that cost $6 more than the previously selected TPS56A37. Additionally, using a buck-boost only to then input the same voltage that you are outputting does not make much sense. One may think that a buck-boost converter would allow for 12V at even lower negotiated VBUS, such as 5V or 9V, but this may complicate the power path. If the negotiated voltage is 5V, then we boost to 12V and then buck again to 5V it’s not super optimal. Instead, keeping the “allowed' voltages to 12, 15, and 20 allows us to use the SAFE 5V output for 9V and 5V inputs, which is probably enough current for most purposes (900mA).
Maybe bypassing the 12V buck is an option. Here’s a TI forum post of someone attempting to do this exact thing. On the post they recommend using their buck’s built-in 100% duty cycle mode. The TPS56A37 on the other hand only supports up to 98% duty cycle, probably with some efficiency losses. Most of these forum posts seem to suggest that it will require more development time to figure out switching circuitry for a bypass, and recommend simply purchasing a buck or buck-boost with a built in bypass or 100% duty cycle.
A third option is to just negotiate for 12V and allow the voltage drop over the buck converter. This could be optimal. Our SOMs have an UVLO point of 10.4V. Assuming the voltage drop is not greater than a volt, this may be worth it. The downside is that it may be bad for our spec if a power supply that says it outputs 12V doesn’t output highly regulated 12V. Plus, voltage droop from high current draws may drag it below the UVLO point.
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) |
PMOS Power Switch Configuration:
| Expand |
|---|
Image Added(Infineon CYPD3177-24LQXQT) Question: What does this even do? Answer: https://www.homemade-circuits.com/bidirectional-switch/ TLDR; even if a MOSFET is not powered via the gate, the diode can still carry current if it flows into the gate. This double MOSFET configuration prevents current from flowing either way, so there is no power loss across the diode when inactive.
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): Image AddedSAFE_PWR_EN (or as referenced here SAFE5V_FET_EN) is driven to 0V if negotiation fails and USB PD falls back to 5V at 1A. Otherwise it is high impedance. If negotiation fails, VBUS_OUT = 5V and SAFE_PWR_EN = 0V. The voltage divider drives the MOSFET's gates at ~0.098V. When negotiation fails, the common source node (where S1 connects to S2 on the diodes) will be equal to VBUS_OUT (5V). Therefore, VGS = 0.098 - 5 = -4.90200 V As according to the datasheet, VGS(th) = -1.5V. Remember, since this is a P-channel MOSFET, it gets activated with a negative VGS. So VGS > VGS(th), therefore the gate of both MOSFETS will allow current to flow and SAFE_5V_OUT will get 5V.
Why do we need the 49.9k and 1k resistors? The 49.9k really acts more like a large pull-up resistor rather than a voltage divider from what I can tell. If negotiation of USB-PD succeeds, SAFE_PWR_EN is high impedance. This means that it will be easily influenced by whatever is connected to it, so it can be pulled up/down. Then, VBUS_OUT pulls it up to its voltage so that the gate is not triggered (since then source = gate) The 1k is for protecting the gate inputs to the MOSFETs (see https://www.build-electronic-circuits.com/mosfet-gate-resistor/ )
Make sure that the sources are connected For this sort of configuration, the sources need to be at the same voltage level since you want to control the gates via the same line. The MOSFET chooses to turn on when the gate-source voltage is above VGS(th) , so the source reference needs to be the same in both a PMOS or NMOS config.
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) Image Added |
TPS56A37RPAR Buck Converter Notes (15-20V → 12V)
| Expand |
|---|
See section 7.2.2 of the datasheet linked above. Image Added
Undervoltage lockout calculations (see datasheet pg 13) R6/R7 calculations for output voltage Using Table 7-2, recommended values are as follows for Output Voltage and Output Filter selection: Image Added
Note: for this next set of calculations, I referenced this presentation and chose a safety factor for Vin of about 20%. Equation 8 (inductor peak-to-peak ripple current): Image Added
Equation 9 (peak current) Image Added
Equation 10 (RMS current) Image Added
When choosing an inductor, it seems like we want to pay attention to the following things: Inductance must be as specified (5.6 uH) Saturation current should be higher than peak current + ripple current, since as soon as the inductor reaches the saturation current it will drastically decrease in inductance (see this) Rated current should be >= the typical DC current to make sure the inductor doesn’t heat up too much. A shielded inductor keeps stray magnetic fields from screwing up your circuit
Equation 11 (rms current rating for output capacitor) (C5/C6 on diagram, Cout in table) Equation 12 (input voltage ripple) C3’s voltage rating must be greater than the max input voltage, which is the max input voltage + any voltage input ripple. Voltage ripple is calculated as follows: Image AddedNote that Cin = 20.1uF here since the total input capacitance on the input is two 10uF caps and one 0.1uF cap So maximum Vin (without considering safety factor) = 20V + 0.27V = 20.27V
Equation 13 (input cap current ripple) Image Added
Ensure that 0.1uF bootstrap capacitor (C4) has 10V or higher voltage rating, ceramic capacitor with X5R or better dielectric
From https://github.com/lhr-solar/USBCPowerPCB/blob/v1.0/BuckCalcs.xlsx , the appropriate component values are as follows. Image AddedNote: 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 Component | Value |
|---|
R1 | 55479.45205 | R2 | 4987.684729 | R6 | 383k | R7 | 20k | L1 | 5.6uH |
Cap Selection Input caps: need to be 50V or greater since input voltage can go up to 20V and we care about derating for bucks Ripple current rating (Arms) > 3.646422753 Voltage ripple rating (Vrms) > 0.303 seems like larger capacitors have a better derating curve
Output Protection This buck already has protections for overvoltage and overcurrent on the output, and undervoltage on the input, as well as a soft start time to prevent current inrush on startup. Really the only thing I’m going to add extra to the output is a mosfet to ensure that current doesn’t flow backwards into the buck.
|
TPS562231DRLR Buck Converter Calculations (12V → 5V):
| Expand |
|---|
Recommended component values have been provided in the datasheet: Image Added
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 L | 0.0000047 | IL_PP | 0.730079266 | IL_PK | 2.865039633 | IL_RMS | 2.508867868 |
|
| Expand |
|---|
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. Image Added
|
5V → Isolated 5V converter:
| Expand |
|---|
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: Image AddedThis holds at 0.16 A and trips at 0.37 A, which seems more than suitable for the CAN bus usecase. |
Development
Version 1 Pull Request
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:
Image Addedvs the KiCAD dual mosfet symbol (far clearer in what it actually is):
Image AddedSo 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
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.
Image AddedIf 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
https://dubiouscreations.com/2021/04/06/designing-with-usb-c-lessons-learned/
ESD Layout Guide
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.
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.
Image AddedThe reason the capacitor C8 is placed there is because of this diagram from the evaluation kit:
Image AddedI 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.
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
| Expand |
|---|
Initial ResearchWhat is a shunt resistor? The general principle is that measuring the voltage drop across a known value resistor (shunt resistor) will give you current. Since I = V/R, measuring the voltage drop and dividing it by the resistance value will give you the current. This voltage drop across the resistor can also be fed into a differential amplifier, magnifying the voltage drop to a reasonable level (since a shunt resistor tends to be a lower value, so less voltage drop).
The plan is to use a shunt resistor and a current sense amplifier and feed the output to a couple of pins, test points, or a connector (haven’t decided yet). This could then be measured by an oscilloscope and logged so that current monitoring is possible. After some deliberation, I decided that it would be cool to add a seven segment display to the board in order to display the amount of current on the 12V bus or 5V bus. There are two strategies to implement this: Use a specialized IC to convert the analog voltage produced by the shunt resistor +amplifier into an output that can be read by a seven segment display. Program a microcontroller with an integrated ADC to convert the analog voltage into an output. Much of the time, the second solution can be more cost effective and configurable than the first.
Shunt and Amplifier SelectionFirst, let’s figure out where to put the shunt resistor: https://www.allaboutcircuits.com/technical-articles/resistive-current-sensing-low-side-versus-high-side-sensing/ To do this, let’s talk about CMRR (Common Mode Rejection Ratio). Here’s Google’s Gemini AI engine to help (prompt: Explain CMRR and what a common vs differential mode signal is of an op-amp to me with an analogy like I am 15 years old): Imagine you're at a concert with your friend. The band is the desired signal you want to hear clearly. Common-mode noise is like a bad sound system rumble that affects both of you equally. It might be caused by a loose wire or some electrical gremlins. Differential-mode signal is the actual music from the band. This is what you want to amplify without the rumble.
An op-amp is like a fancy headphone amplifier that boosts the music (differential signal) for you and your friend. Ideally, it should completely ignore the rumble (common-mode noise). In reality, no headphones are perfect, and some rumble might still leak in. Similarly, even a good op-amp will have some CMRR, meaning a small amount of rumble might still be amplified with the music.
Ok, but what’s even the big difference between putting a shunt resistor on the low side vs the high side? Image AddedThe common mode voltage (VCM) is literally the average of the two voltage inputs into the amplifier. VCM = (V1 + V2) / 2 Thus, when Rshunt is placed on the low side (and since the voltage drop across the shunt is negligible) VCM is far closer to GND Conversely, if Rshunt is placed on the high side, VCM is far closer to Vsupply. This means that using a high side shunt resistor will require an amplifier with a higher CMMR (common mode rejection ratio).
Ok, but then why not just put it on the low-side and go on with our lives? Let’s say some system fault happens and the low side of Rshunt becomes grounded. Then, our system load never actually gets power! All of the current flows directly to ground. With a low-side shunt resistor, this would never be detected, as we would just read in a Vshunt of zero or perhaps some floating voltage. With a high-side shunt resistor, however, we read in a voltage of Vsupply, as the entire voltage drop happens across Rshunt. This isn’t really a concern with our application as we don’t really care. If the user of this board happens to detect a fault condition, they will notice it immediately as their board will not get power.
Another issue is ground loops. The gist is that if some components on the system use one ground and some use another, there can be some path for current flow. Even if the grounds aren’t connected, there are many ways things can go wrong (for example, even things like stray electromagnetic fields can induce small currents). In this case, the system load (the device being powered) would have a slightly higher ground reference than our buck converters or USB-PD chip, which means that we would need separate ground planes or paths. On the other hand, if a high-side resistor is used, the grounds of everything is all the same, so no possibility of weird ground shit happening.
High-side shunt resistor is our answer then.
To select a shunt resistor, we also have to keep in mind our amplifier circuitry due to something called amplifier offset voltage. https://www.allaboutcircuits.com/technical-articles/understanding-the-amplifier-offset-voltage-and-output-swing-in-resistive-current-sensing/ Let’s say the two inputs to our current sense amplifier are V+ and V-. Ideally, if V+ == V-, then Vout = 0V. However, this is not truly the case, and current sense amplifiers will have some necessary offset on V+ to be applied so that Vout = 0V. Image Added
If Gdiff is differential gain of the amplifier: Next, let’s look at error. Error is defined as (Measured Value - Actual Value)/(Actual Value). Measured value is Vshunt + Voffset (not including Gdiff as that is really just a multiplier for ADC measurement purposes) Actual value is just Vshunt since that’s what we’re trying to measure Therefore, Error = ((Vshunt + Voffset) - Vshunt)/(Vshunt) If Vshunt = Voffset , then Error = ((Vshunt + Vshunt) - Vshunt)/Vshunt = Vshunt/Vshunt = 1 = 100%.
This matters because it screws up our accuracy at lower current values (i.e. if Rshunt is fixed, and Voffset is fixed, and Ishunt is low enough, Vshunt <= Voffset which means Voffset/Vshunt > 100%) Thus, we must find our lower bound for Vshunt, i.e. the shunt voltage that we are ok with 100% or greater error because it is probably lower than minimum current of a device connected to the bus. Essentially, how low do we plan to measure? We can try increasing the value of the shunt resistor (Rshunt) in order to increase Vshunt at lower current draws, such that Vshunt stays above Voffset, but that will incur a greater power draw.
This is the optimization we have to run: how small of a Rshunt value can we select before the accuracy catches up to the power savings? Note: On the mouser page Voffset is displayed as Vos for a given current sense amplifier. Image Added
5V Current Sense SelectionFirst, the 5V current sense amplifier. I’ve filtered by every Vcm range that includes 5V and selected the cheapest current sense amplifier to start. INAx180 Depending on the selected part, this can be a 1-channel, 2-channel, or 4-channel, which means we could use the 2-channel variant for sensing on the 12V bus too. It all depends on what gain is necessary though. Supply voltage supports 5V
Let’s first calculate the minimum and maximum Rshunt which will constrain us. Image Added Image AddedFirst, for 20V/V: For 50V/V: For 100V/V: For 200V/V: This is at typical Vsp and Vsn; at maximum Vsp and Vsn, Rshunt_min becomes greater than Rshunt_max which is no bueno. However since this really only affects the upper and lower bounds of current we can sense and not the resolution directly, I think it’s probably fine unless we’re going to be measuring a device that draws only 1mA of current.
In order to effectively decide our configuration, let’s assume we intend to choose the maximum Rshunt possible in order to maximize accuracy. Thus, we’d need to choose the lowest gain option for our current-sense amplifier of 20V/V. Choosing an Rshunt of 80mOhms yields a voltage drop (at max current) of 3A x 80mOhms = 0.24V Pshunt = 3A x 0.24V = 0.72W, 4.8% of maximum power draw of 15W on 5V bus. Percent error at 0.001A on 5V bus: Error = 100uV/(0.001A x 80mOhms) = 1.25 = 125% (100uV is typical offset voltage)
However, we’ll choose the exact Rshunt that gets us desired Vout from the 20V/V amplifier, provided it’s within the voltage swing range An important note here is that we are using a microcontroller at Vsupply = 3.3V with an LDO, specifically because most of the 5V microcontrollers also have the pin output voltage = 5V which is higher than what our seven-segment display needs. The current is expressed on the microcontroller as a voltage mapping 0 to 3A to 0 to 3.2V (which is 20V/V x 0.24V). The ADC is 12 bits, so that means a value from 0 (0V) to 4096 (3.3V). However, this is a max of 3.2, which equates to a value of about 3972.
12V Current Sense SelectionIf the INAx180 works for the 5V bus, it may work for the 12V bus especially since that requires a lower resolution. Let’s do some shunt calculations at the 20V/V gain for the 12V bus. The shunt maximum and minimum resistance would remain the same since Vsupply remains the same for the amplifier (being supplied by the 5V bus). Choosing an Rshunt of 80mOhms yields a voltage drop (at max current) of 8.33A x 80mOhms = 0.666 V. This yields a power drop of 5.55W on the 12V bus, which is designed to supply typically 65W and 100W at max operating conditions. This would mean a percentage use of 5.5-8.5%. However, 0.666V x 20V/V = 13.32V. This is far too high of a voltage for the ADC to handle anyways, and since we want to lower power draw anyways it might be in best interest to choose a smaller shunt resistor. This presumably increases error at lower current points but since this bus is for higher load devices it shouldn’t matter that much. Currently, the percent error at 1mA is 100uV/(0.001A x 80mOhms) = 1.25, or 125%.
If we want 3.2V to be equivalent to max current out, 3.2V/(20V/V) = 0.16V needs to be our shunt voltage at max current 0.16V/8.33A = 19 mOhms. This is below our Rshunt minimum, which means we have a problem. To fix this, we can up the resistance to be above the minimum and then use a voltage divider on the output of the amplifier to get it within measurable range. By using a resistance of 28mOhms, we get a voltage drop of 8.33A x 28mOhms = 0.23324 volts on the resistor, and an output of 0.23324V x 20V/V = 4.6648 volts. Then, we resistor divide by a ratio of 0.685988681 to get to our desired 3.2V.
As shown earlier, 3.2V is approx. a value of 3972 on our ADC. This means a resolution of 8.33A/3972 = 0.0021A = 2.1mA The percent error at 0.002A, our lowest measurable value, would be 100uV/(0.002A x 19mOhms) = 2.63 = 263% This will drop considerably as current increases though, and since the line isn’t really meant for low-power devices anyways I’m not too concerned. Finally, the power draw at max current would be 8.33A x 0.23324V = 1.943W.
We have to select a 28mOhm resistor because we don’t have much wiggle room due to the voltage swing characteristics of this amplifier. It’s settled. Choosing the INA2180A1QDGKRQ1 is in our best interest, the two-channel, 20V/V gain variant of the INAx180
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 OptionsIt’s actually not settled at all. To satisfy the requirement that we choose the ideal component for the job, we’ll have to look at a few more options. I’m not going to go over calculations in great detail, but merely present them here:
| View file |
|---|
| name | Current Sense Selection.xlsx |
|---|
|
| Excel |
|---|
| name | Current Sense Selection.xlsx |
|---|
|
|
Microcontroller
| Expand |
|---|
If we are measuring current on the 12V and 5V bus, we will need two integrated ADCs. These will come in anywhere from 8-24 bit resolution. Let’s think about the display, since that may be the constraining factor on resolution displayed anyways. I kind of want to use this 4-digit seven segment display I found on Mouser. It’s about $2.55. Be careful. Almost selected a 5V A.C. seven segment display rather than a D.C. one. It has LEDs for decimal points as well! For the 5V bus, since current goes from 0 to 3A, it would be nice to display current as X.XXX A. This implies a resolution of maximum 0.001A, or 1mA. The 12V bus can be similar resolution since we have to display a range from 0 to 8.33A.
Next, the number of pins. Our MCU will need 1 pin for an ADC and some pins to interface with the selected seven segment display. Note that on the datasheet we are presented with a schematic: Image AddedThis brings total I/O to 17 pins. We’ll have an extra couple of pins for GPIO or UART or something. Also note that forward voltage is 2.6V at max, which means we’ll probably need to add some resistor in series to ensure that the output of our MCU is not too much for it to handle. Similar thing with current.
Also, no QFN packages please 🙏🏽 (we already have enough on this board). We can use https://www.ti.com/product/SN74LS47 to get a better current source (since tiny MCU pins won’t be able to source more than a mA or two) and to reduce the amount of pins we have to use, so we can go with a slightly lower spec’d micro. This chip is also common anode, which means it will support driving this seven segment display which is also common anode. To calculate the LED current limiting resistor: I’m putting the current limiting resistor on the low side (so that we have 1 per LED instead of 1 per digit) since I want to make sure that there’s no uneven current distribution amongst the LEDs. Assuming we want ~2mA output per segment. Vs = 3.3V, Vf = 2.05V, I = 0.002A R = (3.3-2.05)/0.002 = 625 ohms
|
- 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):
| Expand |
|---|
See datasheet linked above, as well as the section above this one. Image AddedOutput voltage calculation Switching frequency will be 500kHz so that power loss is minimal, so RT will be floating Undervoltage lockout on EN pin Image Added Image AddedVstart = 11.75V Vstop = 11V R1 = (14.25V x (1.17V/1.21V) - 13.5V)/(0.7uA x (1 - 1.17V/1.21V) + 1.4uA) = 200 kohms R2 = (200 kohms x 1.17V)/(13.5V - 1.17V + 200 kohms x (0.7uA + 1.4uA)) = 18.35 kohms Ven = (18.35 kohms x 24V + (200 kohms x 18.35 kohms x (0.7uA + 1.4uA)))/(200kohms + 18.35 kohms) = 2.0522 V < 5.5V
Inductor selection (starting pg 30 of the datasheet):Peak-to-peak ripple current and inductance Image Added Image AddedNote: choosing max Vin of 24V for safety factor (20% above intended voltage) L = (24V - 5V)/(500kHz x 0.4 x 3 A) x (5V/24V) = 6.59722222 uH 🔺IL = 5V/24V x (24V - 5V)/(6.59722222 uH x 500kHz) = 1.2 A
Maximum Inductor peak current RMS current IHS_LIMIT = 5.8A (make sure inductor sat current is higher than this so that in case of a short across high side mosfet it doesn’t saturate) Nearest standard value available is 6.6uH, so we must recalculate K Image Added6.6uH = (24V - 5V)/(500kHz * K * 3A) x (5V/24V) K = (24V - 5V)/(500kHz * 6.6uH * 3A) x (5V/24V) = 0.4 🤷🏽 K value is the ripple ratio of the inductor current (🔺IL/Iout_max)
sumida CDR10D48MNNP-6R6NC
Output Capacitor SelectionOutput capacitor directly affects voltage ripple, loop stability Output voltage ripple comprised of: Image AddedInductor current ripple going through ESR of output caps Image AddedInductor current ripple charging/discharging output capacitors with K being the ripple ratio of the inductor current (see above) assumed to be 40%. Assume output ripple is targeted at +- 20mV. So, 🔺Vout_esr = 20mV and 🔺Vout_c = 20mV. Note this does not mean the actual ripple is 40mV, as these are separate ripples that will be out of phase, so average voltage ripple will be < Vout_esr + Vout_c 20mV = 0.4 x 3A x ESR → ESR = 16.67 milliohms at maximum 20mV = (0.4 x 3A)/(8 x 500kHz x Cout) → Cout = (0.4 x 3A)/(8 x 500kHz x 20mV) = 15uF at minimum
Additionally, the output caps are what provide the required charge while waiting on the inductor to rise to the expected current. “Thus, the output capacitance must be high enough to supply the current difference for about eight clock cycles to maintain the output voltage within the specified range.” - (pg 31 of datasheet) Image AddedThe 🔺Vout is specifically the change in voltage for over/undershoot that we are ok with on some 🔺Iout load step (e.g. some change in desired current). D is the duty cycle (Vout/Vin) I suppose it can’t hurt to use the same specs as the example design and adjust if necessary. For 24V input (includes safety factor of 20%): Cout >= (1.5A)/(500kHz x 250mV x 0.4) x [(1 - 0.208333333) x (1 + 0.4) + ((0.4)^2)(2 - 0.208333333)/12] = 34uF
Minimum capacitance of 32.2uF for 5% overshoot at 1.5A load step Maximum ESR of 16.67 milliohms for 20mV voltage ripple Be careful here with part selection; depending on the ceramic capacitor(s) chosen, the caps will have DC bias de-rating. This means the effective capacitance will decrease at higher DC voltages. Check the datasheet to see how much the capacitance decreases at expected voltage of 5V, and adjust the chosen capacitors accordingly. We typically use the 0805 size as our standard passive component package for our boards, so I’ll filter for that on Mouser. Also assuming that we’ll use some combination of 10, 15, and 22uF caps for this output. I looked at a few different characteristic graphs of different 22uF caps first (see the design tips section below to see how I found these graphs), most seemed to average around 50% effective capacitance at 5V. Decided to settle for this 22uF Murata Cap (GRT21BR61E226ME13L) which has a effective capacitance of 10.21uF (see graph below and this link) at 5V. We can tack on 3 of these to get ~30.63uF. Rated voltage of 25V. Image AddedNext we’ll tack on a few 10uF caps to get above the 32.2uF threshold. The Standardized Components Sheet we keep on the club’s Sharepoint references TMK212BBJ106MGHT, a TDK 10uF cap that we commonly use. The DC bias curve shows a 38.229% drop in capacitance at 5V. This means an effective capacitance of ~6.177uF. That should be enough for our purposes. Image AddedIn total, we have an effective output capacitance of 36.807uF, which is hopefully and probably fine. Worst case scenario we can choose to remove some of them if the performance is poor due to too large output capacitance.
|
- Originally planned to use ORring diodes for the 5V and Safe 5V combo wombo but decided to use TPS2116DRL instead.
ORring Diodes:
| Expand |
|---|
https://resources.system-analysis.cadence.com/blog/msa2021-enhance-power-supply-protection-with-power-oring-diodes “ORring diodes” just mean you have two diodes in a configuration like this: Image Addedto “OR” the two power sources together. The diodes prevent current from going back into either of the sources, while also still allowing the sources to produce power Typically Schottky diodes seem to be used in these configurations because they have lower voltage drop and less energy lost to heat
For our purposes, we want to OR together the Safe 5V output and the 5V buck converter output https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/992974/faq-ideal-diode-controller-vs-oring-controller “Reverse battery protection implemented using Schottky diode is shown in Figure 2. Reverse current blocking is required to prevent hold-up capacitor banks on the output from discharging during various input transients including transient negative voltage at the input. Reverse current blocking naturally provides protection from reverse input polarity conditions to circuits and components connected on the output. Reverse polarity conditions can be static, during reverse connected battery or power supply wires or dynamic due to inductive load switching.” “Ideal Diode Controllers are basically ORing Controllers with integrated reverse input polarity protection or reverse battery protection. Ideal Diode Controllers protect rest of the circuit components from negative voltage and also protect themselves from damage due to reverse input polarity conditions.” From this, it seems like we want an ideal diode controller
Going to use https://www.mouser.com/ProductDetail/Nexperia/NID5100GWH?qs=IKkN%2F947nfD2cfXyItG6kA%3D%3D Image Added
|
- 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)
| Expand |
|---|
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 Image AddedOutput Voltage Image Added
|
- 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.
Power Protections:
| Expand |
|---|
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. Image AddedNeed 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): Rtotal < 12.6V/(100 x 1uA) = 126kOhms R2 = (Vth x Rtotal)/Vov = (1.2V x 126k)/(12.6V) = 12kOhms R1 = 126kOhms - 12kOhms = 114kOhms ~ 113kOhms (we don’t want to be over 126kOhms)
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. Image Added390mA = 23600/Rlim → Rlim = 60.5128205 kOhms We’ll use a 62kOhm since it’s a standardized value which equates to a limit of 380mA. https://www.ti.com/lit/an/slvaf82b/slvaf82b.pdf |