My project padne needs a better via model.
At the moment, it simply punches a hole in the copper layer and stitches the
layers with a bunch of discrete resistors in the vertical direction.
This severely overestimates the "across" resistance of the via presented to the
layer.
With this model, current flowing on the top layer "across" the via,
would have to take a detour all the way down to the bottom layer and then back up
again. In reality, the current of course flows "around" the via barrel.
Let's first investigate a continuous version of the problem: consider a conductive
plane in the xy plane of sheet conductivity σp with a circular hole of radius r
centered at the origin. A finite cylindrical barrel of length h is attached at the
edge of the hole, with a sheet conductivity of σb. The conductive
plane is subject to a uniform current density J0 oriented along the x
at infinity.
This is a fairly standard field scattering type problem, so let's work through
it*Years after graduation, I still sometimes need to prove to myself that I have not gotten significantly dumber.. First, we split the domain into two regions: the plane and the barrel.
In the plane, we use polar coordinates (ρ,φ)
and on the barrel we use cylindrical coordinates (z,φ). This is
conveniently just a restriction of cylindrical coordinates to our domain, meaning
we can just use standard textbook differential operators without any exotic transformations.
In the following, I am going to abuse notation as is tradition in physics:
I will suppress the arguments of the functions and implicitly merge the two
regions into one domain. It will be clear from context which region is being
referred to based on the variable names.
First, let's write down Ohm's law and charge conservation (remember that the
current source is "at infinity"):
J=−σ∇Vand∇⋅J=0.
As the conductivity σ is constant except on the boundary where we
don't require full differentiability anyway, we can push Laplace's equation as expected
ΔV=0
on the interior of both the barrel and the plane. In coordinates, for the plane:
ρ∂ρ(ρ∂ρV)+∂φ2V=0
and for the barrel
∂φ2V+r2∂z2V=0.
This screams separation of variables, so let's start on the plane by
V=R(ρ)P(φ)
and plopping this into the corresponding PDE gets us
ρPR′+ρ2PR′′+P′′R=0,
meaning we have
ρRR′+ρ2RR′′=−PP′′.
As usual, the left hand side depends only on ρ, the right hand
side depends only on φ, therefore they are constant and equal
to some λ∈R. Proceeding to solve the easier
RHS first:
−PP′′=λthusP′′=−λP.
Now, this is an ODE with some solution space depending on sign of λ.
We remember that due to our setup, we have these things going for us:
the solution has to be 2π-periodic in φ, otherwise we lose continuity at the "seam" of the polar coordinate,
the entire setup is mirror-symmetric around x axis, forcing P(φ)=P(−φ),
the potential V can be shifted by any additive constant, so we pick 0,
if P was pure constant, then this would produce an outward/inward radial current that is not sourced anywhere.
With these constraints, we get an λ=m2 for m∈N+ and
Am∈R
Pm(φ)=Amcos(mφ).
So we have learned that our modes are quantized. The other ODE
then drops out as
ρ2R′′+ρR′−m2R=0,
which is somewhat more annoying but can be resolved to
Rm(ρ)=Bm+ρm+Bm−ρ−m.
And together we have, on the interior of the plane,
Vm=RmPm=Amcos(mφ)(Bm+ρm+Bm−ρ−m).
At this point, it is convenient to drop out some solutions by our boundary condition
on the current at infinity J. We know that we desire
ρ→∞limJ=J0x0=J0(ρ0cosφ−φ0sin(φ)).
Doing some staring, this effectively forces Bm+=0 for m≥2
as otherwise the limit would not even exist.*It is also going to constrain the coefficients, but we are going to look at that later at a general stitching-the-solutions and boundary conditions phase This means we get the
general solution for the plane part (with some yet another coefficient renaming) as
V=Aρcos(φ)+m=1∑∞am(rρ)−mcos(mφ).
It's also worth plotting the integral curves of ∇V. This reveals
a clean split between the "forced" term coming from the uniform current excitation
and "corrective" terms that are going to serve to match the barrel boundary conditions.
yields to the same argument as the P case before, giving us μ=m2
Wm(φ)=Cmcos(mφ).
For Z we get
Z′′=(rm)2Z
The solution space is spanned*A similar argument as before can be used to remove m = 0 here: no net current entering or exiting the barrel. by
cosh(rmz)andsinh(rmz).
Leaving out the details, we now want to force the top end of the barrel boundary
condition. That is, no current crosses out or in, meaning we require Z′(h)=0. Shuffling
this around gives us
Zm=Dmcosh(rmh)cosh(rm(h−z)).
Putting this together with some parameter renaming grants us
V=m=1∑∞bmcos(mφ)cosh(rmh)cosh(rm(h−z)).
Once again it pays to look at the integral curves of ∇V. The barrel is
a cylinder, so we can cut it along the xz plane and unroll one half of it flat,
putting φ on the horizontal axis and z on the vertical one.
Now we need to ensure continuity on the boundary between the plane and the
barrel. We evaluate at z=0 and ρ=r and any φ.
Arcos(φ)+m=1∑∞amcos(mφ)=m=1∑∞bmcos(mφ).
So we have b1=Ar+a1 and for m>1 we just get am=bm.
But, that is not all. We also need to ensure charge conservation, that is,
total current entering the seam should equal current leaving the seam.
We remind ourselves that J=−σ∇V, where σ
is σp on the plane and σb on the barrel. The current
flow entering the barrel edge from the plane is
σp∂ρVρ=r=σpAcos(φ)−σpm=1∑∞amrmcos(mφ).
And the flow entering the barrel is
−σb∂zVz=0=σbm=1∑∞bmcos(mφ)rmtanh(rmh).
Meaning we want to match
σp∂ρVρ=r=−σb∂zVz=0.
Let's bundle our mess of coefficients into a single dimensionless parameter per
angular mode. This is effectively the barrel/plane conductance ratio as seen by
that particular mode:
κm=σpσbtanh(rmh).
For m≥2 we get
am=−κmbm.
Now since from the continuity condition we have am=bm for m≥2
and κm>0, this immediately kills the higher order modes by
requiring am=bm=0 for m≥2.
On the barrel, this is just the m=1 mode we have already plotted.
Let's set some reasonable parameters and explore how the plane integral
curves look like with the combined forced term and the first mode:
This should help interpreting the physical meaning of
κ1=σpσbtanh(rh).
If the barrel happens to be conductive a lot more than the plane*Not very common, since vias are usually plated in addition to the copper foil already present on the premade PCB material sheet.,
we get κ1>1 and thus current preferentially being forced into
the barrel. The converse happens when the barrel is less conductive.
For σb=σp, we always get κ1<1 so the current
flow is always disrupted in some fashion. Sending h→∞,
that is, increasing the length of the barrel sends κ1→1 asymptotically,
meaning the via becomes closer and closer to being unobstructive.
Now all of this was quite fun, but how does it become a via model? Let's
step back and think about how the conductive barrel hole presents to the
plane electrically and then model something that is easy to model inside of padne.
Grab the potential at the boundary:
V(r,φ,0)=b1cos(φ)
and the current inflow is
Jz(r,φ,0)=σpκ1b1r1cos(φ).
Notice that we can match the points φ and φ+π,
computing conductance-per-arc-length as
Convenient. Now we can integrate the conductances and get a sort of
"effective total conductance of the first mode" as
Σ1=0∫πψ(φ)rdφ=2πσpκ1.
The idea is in the picture below:
And we are done: padne can model discrete resistors easily, meaning the
via model is just "stitching" the top with appropriate number of resistors,
splitting the effective total conductance between them. With N
equally spaced antipodal pairs around the rim, each pair gets conductance
Gi=NΣ1=2Nπσpκ1=2Nπσbtanh(rh)
in between them. This adds the missing lateral current flow that was not captured
by the previous model, leaving the vertical model untouched.
As a practical implementation note it's worth stating that this models
in effect only a "half-via", with a dead end barrel. A practical implementation
will use h/2 as the effective height and replicate this structure
both on top and on the bottom of the barrel.