Document that via capping is deliberately not modeled, with error bound
Layer-to-layer the cap (>=15 um plating per fab spec) is parallel to the annular-ring contact, so it cannot change the DC path. In-plane the model treats every via mouth as solid layer-thickness copper; the error is bounded by the dilute-hole correction (~ +2x mouth-area-fraction locally), partially offset by the unmodeled annular-ring copper, and typically well under a few percent of total R. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -70,9 +70,18 @@ SWIG API. Requires KiCad **10.0.1+**.
|
|||||||
barrel lengths.
|
barrel lengths.
|
||||||
- Via/pad barrels: thin-wall annulus, R = ρ·L/(π·d·t_plating),
|
- Via/pad barrels: thin-wall annulus, R = ρ·L/(π·d·t_plating),
|
||||||
`VIA_PLATING_UM = 18` in `fill_resistance/config.py`. Vias are always
|
`VIA_PLATING_UM = 18` in `fill_resistance/config.py`. Vias are always
|
||||||
plated; capped vs uncapped does not change the layer-to-layer DC path
|
plated. **Via capping is not modeled.** Layer-to-layer it cannot
|
||||||
(the ≥5 µm cap sits over the hole mouth in parallel with the
|
matter at DC: the cap (≥15 µm plating per fab spec, thinner than the
|
||||||
annular-ring contact, not in series). Per layer a barrel attaches to
|
foil) sits over the hole mouth in parallel with the annular-ring
|
||||||
|
contact, not in series. In-plane, the model treats every via mouth as
|
||||||
|
solid layer-thickness copper (KiCad fills do not subtract the drill),
|
||||||
|
where reality is a hole (uncapped) or the thin cap. The error is
|
||||||
|
bounded by the dilute-hole correction ρ_eff ≈ ρ·(1 + 2f) inside via
|
||||||
|
fields (f = mouth area fraction; 0.3 mm drills on a 1 mm grid give
|
||||||
|
f ≈ 7 % → ≈ +14 % locally), is partially offset by the unmodeled
|
||||||
|
annular-ring copper, and largely vanishes where the current descends
|
||||||
|
into the barrels anyway — typically ≪ a few % of the total R.
|
||||||
|
Per layer a barrel attaches to
|
||||||
the fill cell under it, or to the nearest copper cell within the pad
|
the fill cell under it, or to the nearest copper cell within the pad
|
||||||
footprint plus one grid cell — fills joined by **thermal-relief
|
footprint plus one grid cell — fills joined by **thermal-relief
|
||||||
spokes** still connect; wider antipads do not, and the barrel bridges
|
spokes** still connect; wider antipads do not, and the barrel bridges
|
||||||
|
|||||||
@@ -21,10 +21,12 @@ COPPER_THICKNESS_UM: float | None = None # None -> stackup, fallback 35.0 with
|
|||||||
FALLBACK_THICKNESS_UM = 35.0
|
FALLBACK_THICKNESS_UM = 35.0
|
||||||
TEST_CURRENT_A = 1.0 # default injected current (dialog/CLI-selectable)
|
TEST_CURRENT_A = 1.0 # default injected current (dialog/CLI-selectable)
|
||||||
VIA_PLATING_UM = 18.0 # barrel plating thickness (always plated).
|
VIA_PLATING_UM = 18.0 # barrel plating thickness (always plated).
|
||||||
# Capped vs uncapped vias do not change the
|
# Via capping is NOT modeled: layer-to-layer
|
||||||
# layer-to-layer DC path: the >=5um cap sits
|
# the cap (>=15um per fab spec, thinner than
|
||||||
# over the hole mouth in parallel with the
|
# the foil) is parallel to the annular-ring
|
||||||
# annular-ring contact, not in series.
|
# contact, not in series; in-plane every via
|
||||||
|
# mouth is treated as solid layer-thickness
|
||||||
|
# copper (error bound: see README).
|
||||||
INCLUDE_TH_PADS = True # plated through-hole pads stitch layers too
|
INCLUDE_TH_PADS = True # plated through-hole pads stitch layers too
|
||||||
SKIN_SIDES = 1 # skin-effect field config: 1 = plane facing a
|
SKIN_SIDES = 1 # skin-effect field config: 1 = plane facing a
|
||||||
# return plane (conservative), 2 = isolated foil
|
# return plane (conservative), 2 = isolated foil
|
||||||
|
|||||||
Reference in New Issue
Block a user