3 min readByAleksandr SidunAleksandr Sidun
Suggest Edit

RLC-calculator for a PCB trace

This article contains MATLAB script for the calculation of the parasitic parameters of the PCB trace.

Script limitations:

  • Valid under 1GHz
  • Skin effect is omitted
  • Copper roughness is omitted
  • Loss tangent is omitted
  • Geometry limitations:
  • W/H < 7.475 - 1.25*(T/H) - for a microstrip
  • W/B < 2.375 - 1.25*(T/B) - for a stripline

LDO Feedback Resistance Calculator

First coefficient in equation - conversion from inches to m.

H - height

W - width

Microstrip Equations:

R=1000ρ0(1+α(temp25))TW[mΩ/m]R = 1000 \frac{\rho_0(1 + \alpha (temp-25))}{TW} [m\Omega/m] C=26.378(ϵr+1.41)ln5.98H0.8W+T[pF/m]C = 26.378 \frac{ (\epsilon_r + 1.41)}{\ln{ \frac{5.98H}{0.8W + T} } } [pF/m] L=199.65ln5.98H0.8W+T[nH/m]L = 199.65 \ln \frac{ 5.98 H} {0.8W + T} [nH/m] Z=87ln5.98H0.8W+Tϵr+1.41Z = 87 \frac{\ln{\frac{5.98 H}{0.8W+ T}} }{ \sqrt{\epsilon_r + 1.41}}

Stripline Equations:

R=1000ρ0(1+α(temp25))TW[mΩ/m]R = 1000 \frac{\rho_0(1 + \alpha (temp-25))}{TW} [m\Omega/m] C=39.37ϵr2ln1.9B0.8W+T[pF/m]C = 39.37 \frac{ \epsilon_r \sqrt{2} }{\ln{ \frac{1.9 B}{0.8W + T} } } [pF/m] L=199.8425ln1.9B0.8W+T[nH/m]L = 199.8425 \ln \frac{ 1.9 B} {0.8W + T} [nH/m] Z=60ln1.9B0.8W+TϵrZ = 60 \frac{\ln{\frac{1.9 B}{0.8W+ T}} }{ \sqrt{\epsilon_r}}
matlab
1%% PCB lumped parameters calculator (microstrip/stripline) 2% Author: A.Sidun 3% Source: AnalogHub.ie 4% Limitations: 5% - Valid under 1GHz 6% - Skin effect is omitted 7% - Copper roughness is omitted 8% - Loss tangent is omitted 9% - Geometry limitations: 10% W/H < 7.475 - 1.25*(T/H) - for a microstrip 11% W/B < 2.375 - 1.25*(T/B) - for a stripline 12% Source: https://resources.system-analysis.cadence.com/blog/msa2021-is-there-a-pcb-trace-inductance-rule-of-thumb 13 14%% Input parameters 15type = "microstrip"; % can be microstrip or stripline 16temp = 25; % temperature [C] 17length = 1e-3; % trace length [m] 18width = 0.5e-3; % trace width [m] 19thickness = 35e-6; % trace thickness [m] 20height = 0.4e-3; % height over a plane [m] 21 22%% Constants 23ro = 1.724e-8; % resistivity of copper [Ohm/m] 24alpha = 3.9e-3; % temperature coefficient of copper 25eps_r = 4.46; % relative permittivity of copper 26 27%% Calculations 28B = 2*height+thickness; % plane-to-plane distance [m] 29switch type 30 case "microstrip" 31 if ( width/height < 7.475 - 1.25*(thickness/height) ) 32 R_lumped = 1e3*ro*(1 + alpha*(temp-25))/(thickness*width); % mOhms/meter 33 C_lumped = 26.378*(eps_r+1.41)/( log( 5.98*height/(0.8*width+thickness) ) ); % pF/meter 34 L_lumped = 199.65*log( 5.98*height/(0.8*width + thickness) ); % nH/meter 35 Z = 87*log(5.98*height/(0.8*width + thickness)) / sqrt(eps_r + 1.41); 36 37 R = R_lumped*length; % mOhm 38 L = L_lumped*length; % nH 39 C = C_lumped*length; % pF 40 41 disp("PCB " + type + " parameters:") 42 disp("R = " + R + " mOhms") 43 disp("C = " + C + " pF") 44 disp("L = " + L + " nH") 45 disp("Z = " + Z + " Ohm") 46 else 47 disp("Please check geometry of the trace.") 48 end 49 case "stripline" 50 if ( width/B < 2.375 - 1.25*(thickness/B) ) 51 R_lumped = 1e3*ro*(1 + alpha*(temp-25))/(thickness*width); % mOhms/meter 52 C_lumped = 39.37*eps_r*sqrt(2) / ( log(1.9*B/(0.8*width + thickness)) ); % pF/meter 53 L_lumped = 199.8425*log( 1.9*B/(0.8*width + thickness) ); % nH/meter 54 Z = 60*log(1.9*B/(0.8*width + thickness)) / sqrt(eps_r); 55 56 R = R_lumped*length; % mOhm 57 L = L_lumped*length; % nH 58 C = C_lumped*length; % pF 59 60 disp("PCB " + type + " parameters:") 61 disp("R = " + R + " mOhms") 62 disp("C = " + C + " pF") 63 disp("L = " + L + " nH") 64 disp("Z = " + Z + " Ohm") 65 else 66 disp("Please check geometry of the trace.") 67 end 68end