KiCad PCB EDA Suite
Loading...
Searching...
No Matches
TRACK_WIDTH_CALCULATIONS Namespace Reference

Conductor current/temperature relationships based on the IPC-2152 data, fit to closed-form equations by Douglas Brooks and Johannes Adam. More...

Functions

double CurrentFromWidth (double aWidthMils, double aThicknessMils, double aDeltaT_C, bool aUseInternalLayer)
 Compute the maximum current a track can carry for a given temperature rise.
 
double WidthFromCurrent (double aCurrentA, double aThicknessMils, double aDeltaT_C, bool aUseInternalLayer)
 Compute the track width required to carry a given current for a given temperature rise.
 

Detailed Description

Conductor current/temperature relationships based on the IPC-2152 data, fit to closed-form equations by Douglas Brooks and Johannes Adam.

The historical IPC-2221 charts (originally derived from 1956 NBS measurements) were superseded by IPC-2152 in 2009. IPC-2152 publishes only charts, not equations, so the equations fit to that data by Brooks & Adam are used here. The fit has the form

dT = K * I^a * W^b * Th^c

where dT is the temperature rise in degrees C, I the current in amperes, W the track width in mils and Th the track thickness in mils. Solving for the current or the width gives the public helpers below.

The coefficients differ for external and internal layers. IPC-2152 found internal traces cool about as well as external ones, reversing the IPC-2221 assumption that internal traces run far hotter, so the historical "derate internal by a factor of two" rule is not used.

Source: D. G. Brooks and J. Adam, "Trace Currents and Temperatures Revisited," 2015 (fitting the IPC-2152 data, Table 3-1). The external coefficients apply to all copper weights; the internal fits vary by copper weight and are selected from the nearest nominal weight using the supplied thickness.

Function Documentation

◆ CurrentFromWidth()

double TRACK_WIDTH_CALCULATIONS::CurrentFromWidth ( double aWidthMils,
double aThicknessMils,
double aDeltaT_C,
bool aUseInternalLayer )

Compute the maximum current a track can carry for a given temperature rise.

Parameters
aWidthMilsTrack width in mils.
aThicknessMilsTrack (copper) thickness in mils.
aDeltaT_CAllowed temperature rise above ambient in degrees C.
aUseInternalLayerTrue for an internal layer, false for an external layer.
Returns
Maximum current in amperes.

Definition at line 77 of file track_width_calculations.cpp.

Referenced by BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), and PANEL_TRACK_WIDTH::TWCalculateCurrent().

◆ WidthFromCurrent()

double TRACK_WIDTH_CALCULATIONS::WidthFromCurrent ( double aCurrentA,
double aThicknessMils,
double aDeltaT_C,
bool aUseInternalLayer )

Compute the track width required to carry a given current for a given temperature rise.

Parameters
aCurrentATrack current in amperes.
aThicknessMilsTrack (copper) thickness in mils.
aDeltaT_CAllowed temperature rise above ambient in degrees C.
aUseInternalLayerTrue for an internal layer, false for an external layer.
Returns
Required track width in mils.

Definition at line 89 of file track_width_calculations.cpp.

Referenced by BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), and PANEL_TRACK_WIDTH::TWCalculateWidth().