Initial commit

This commit is contained in:
Folkert Kevelam 2024-12-02 22:19:37 +01:00
parent 8009677a72
commit de63d72a3f

86
docs/power_path.md Normal file
View File

@ -0,0 +1,86 @@
# Power Path
## PD controller
Based on the specifications, I've decided to use the the STUSB4500 as
a PD controller instead of the TPS25730. Mostly due to the nice interface
and the lack of ADC-based configuration pins. The TPS25730 has one thing that
is nicer than the STUSB4500, the way it enables its sink path.
The STUSB4500 has a pin called the *VBUS_EN_SNK* which is an open drain output
and turns on (or rather the Transistor turns on) when a PD profile has been
negotiated according to the configuration. This means that the way to switch
on the sink path is by using P-channel FETS.
The TPS25730 on the other hand, has an internal charge pump that can generate
a voltage above the source (source or drain will only matter during turn on
and turn off events, since the entire MOSFET is in series and meant to be
driven in its ohmic region). This means that it uses N-channel FETS.
The big advantage of N-channel FETS compared to P-channel FETS is that
generally N-channel FETS are smaller and have a lower R_ds(on) compared
to the P-channel FETS.
Looking at the reference design of the STUSB4500 and the TPS25730 really
shows the difference. The STUSB4500 design uses the STL6P3LLH6 P-channel
MOSFETS which have a max R_ds(on) of 30milliOhm per FET. The CSD87501L
Dual N-channel MOSFET used by the TPS25730 has a combined max R_ds(on) of 9.3
milliohms.
Comparing both FETS, the loss in the switch for each of the PD controllers
at 5A (12V) is equal to:
* 30 milliOhm * 2 = 60 milliOhm * 25(I squared) = 1.5 W
* 9.3 milliOhm = 9.3 milliOhm * 25(I squared) = 0.233 W
Although a loss of a quarter of a watt is awesomely low, I would be happy
with a total loss of around a watt, or half a watt per MOSFET.
To this end, the following specifications will be used to find a better
MOSFET for the Power Path:
1. Vds > 30V
2. Vgs > 20V (I really don't want to use a different FET if I decide to
make a 20V version).
3. R_ds(on) max < 20 milliOhm
4. Vgs(th) min = 1V
5. Smallest possible footprint.
### Sink Switch Gate Driver
The reference design of the STUSB4500 (the one with the MCU) uses a few
passives as a gatedriver before connecting to the *VBUS_EN_SNK* pin.
R10 is logical, since we want to make sure that when *VBUS_EN_SNK* is not
turned on the voltage between the gate and the source is 0. The size of
R10 is not. Looking at the reference design and assuming a 20 voltage drop,
the current flowing through *VBUS_EN_SNK* is only 160 micro A, significantly
lower than the 3 milli A used in the electrical characteristics. The resistor
R11 is likely used to limit the maximum Vgs, sice the STL6P3LLH6 has a limit
of around 20V, which would nearly be reached without it. The choice of
22 Kilo Ohm is likely to create a larger safety margin, since above a Vgs of
10 V, the R_ds(on) would be low enough.
The reasoning behind R13 and C10 is not yet known. I will test it out
with a simulator.
### Discharge circuits
The STUSB4500 has two discharge paths that are automatically triggered
in case of a disconnect or some voltage error. Although really useful,
both pins *VBUS_VS_Disch* and *Disch* are only triggered by the internal
logic of the STUSB4500. There is no way, except playing around with the
voltages, to trigger it yourself. On the *VBUS* side there is no problem
with that, the only reason I would want to discharge is a change in PD voltage
or a disconnect. However, at the system side, the rail needs to be discharged
if a LED strip is unplugged, since after an unplug event a plug event may
follow with a LED strip of a different voltage. Due to this, I will need to
add my own discharge path parallel to the one in the reference design.
A fun thing to notice is that on the VBUS side, the discharge path to
*VBUS_VS_Disch* has a bunch of passives. The pin can only handle up to
50 milli A. Which is why a 1 kiloOhm series resistance has been added.
However, D4 and C4 are a bit strange. It would make sense that in case
of discharging D4 "shorts out" the resistor R1, but wouldn't it be better
to make R4 the same value as R1 allowing up to 40 milli A of current to
flow (assuming a Vd of 0V). It may have something todo with the discharge
and charge timing but I need to simulate it to be sure.