Finding the right switches for your DCDC-Converter might be not as straight forward as it looks on first sight. Both switches operate in rather different conditions and especially the reverse recovery loss appears to be often overlooked. This program tries to help you with the selection.
What it does:
It builds a parts table with additional fields to those you will usually find in parametric search:
Qgs
, Qgd
, Qgs2
, Qg_th
, Q_sw
V_pl
(miller plateau voltage)C_oss
Qrr
git clone --recurse-submodules https://github.com/fl4p/fetlib
cd fetlib
pip install -r requirements.txt
git clone https://github.com/open-pe/fet-datasheets # fetch set of data-sheets (80,100,150V power mosfets)
acquire a parts list from Digikey. go to digikey.com
narrow down the search filters so your have 500 or less results.
download the CSV file (click Download Table / First 500 Results)
save the CSV file under digikey-results/
folder
Open main.py
and adjust adjust the DCDC operating point:
# buck converter
dcdc = DcDcSpecs(vi=62, vo=27, pin=800, f=40e3, Vgs=12, ripple_factor=0.3, tDead=500e-9)
vi input voltage
vo output voltage
pin input power, alternatively you can set `io` (I_out) or `ii` (I_in).
f switching frequency
Vgs gate drive voltage for both HS and LS
ripple_factor peak-to-peak coil current divided by mean coil current (assuming CCM)
tDead gate driver dead-time (happens 2 times per period)
Run python3 main.py
and it will download all datasheets (if not already found), extract values and compose a CSV
file with loss estimations for the given DC-DC converter.
The process will finish with an output like this:
written fets-buck-62V-27V-30A-40kHz.csv
stored 1259 parts
The CSV file includes these power loss values:
P_on HS conduction loss ~ (D * I² * Rds)
P_on_ls LS conduction loss ~ ((1 - D) * I² * Rds)
P_sw HS switching loss ~ max(tRise + tOff, 2 * Qsw / (Vgs / rg) )
P_rr reverse recovery loss when used as LS (sync fet) ~ Qrr
P_dt_ls LS dead time loss ~ (tDead * Vsd)
And these aggregated power values for the 2 slots HS, LS and for the 2p case each:
P_hs total loss caused by HS switch
P_2hs total HS loss with 2 parallel switches
P_ls total loss in LS switch
P_2ls total LS loss with 2 parallel switches
If a input value for power computation is missing the power values will be float('nan')
(empty CSV cell).
Vsd (body diode forward voltage) defaults to 1 V if not available.
See the equations in powerloss.py.
The program collects part specification values from different sources:
dslib/manual_fields.py
Values for Rds_on and Qgd are usually shown in the search results (Digikey, LCSC). Nexar API doesn't show the Qrr, and (tRise+tFall) only for some parts (especially values for newer chips are missing here). So I found the only way is to extract Qrr from the Datasheet. We use 3 techniques:
Downloads for some datasheet are protected by anti-robot mechanism. To avoid this, we use pyppeteer (Python port of puppeteer) with Chromium to simulate human user interaction. This will handle JS challenges, redirects and if the link points to a PDF-Preview page, we look for a download button and click it.
Chromiums PDF must be disabled, because we cannot access it through pupeteer.
chromiumUserDataPath/Default/Preferences
:
"plugins": {"always_open_pdf_externally": true},
The power loss model for a DC-DC buck is based on this rOHM AN. We assume CCM mode, coil current never touches zero.
Note that loss from LS reverse recovery P_rr
is dissipated in HS.
In other words, poor performance of LS heats up the HS.
The generated CSV file includes the estimated losses caused by a transistor when placed in the HS or LS slot (not their
power dissipation).
Good Mosfet Properties:
HS:
LS:
The LS low Vsd problem can be tackled with a short dead time or by placing a Schottky diode parallel to the LS. Take care about parasitic inductances between the LS and the Schottky diode. This might even lower reverse recovery loss, because the LS body diode never powers up. See Toshiba Product Guide 2009 on page 18.
Qrr is often defined by design and values from the data-sheet are not subject to production test. Qrr depends on temperature, reverse voltage V_R, forward current I_F and forward current transient dif/dt. Most datasheets only specify a single value under some given conditions. DS of IQD016N08NM5 includes one for dif/dt=100A/us and dif/dt=1000A/us
ocrmypdf
can recover the text, but doesn't recognize
symbols
correctly.https://octopart.com/ (Ciss, rise&fall times, )
https://www.discoveree.io/collateral/continental/PCIM2020_DiscoverEE_PowerLossModeling_AudioVisual.mp4 https://www.discoveree.io/collateral/PCIM_Europe_2020/PCIM2020_DiscoverEE_PowerLossModeling_Slides.pdf https://pcimasia-expo.cn.messefrankfurt.com/content/dam/messefrankfurt-redaktion/pcim_asia/download/pac2020/speakers-ppt/1/Shishir%20Rai.pdf https://ww1.microchip.com/downloads/en/Appnotes/01471A.pdf https://www.st.com/resource/en/application_note/dm00380483-calculation-of-turnoff-power-losses-generated-by-a-ultrafast-diode-stmicroelectronics.pdf https://www.vishay.com/docs/73217/an608a.pdf https://www.eetimes.com/how-fet-selection-can-optimize-synchronous-buck-converter-efficiency/
fetlib mosfetlib fetfinder findfet mosdb