aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenis Chevalier <perso@denischevalier.fr>2026-08-09 23:18:14 +0200
committerDenis Chevalier <perso@denischevalier.fr>2026-08-09 23:18:14 +0200
commitcd177dec4aba0a46d45f013bc2a863f8f6792eaa (patch)
treed8e61220c9e9151b0344ea5c99aa3dbee6fec5ba
parentec4cfee9fe31477df9428c19fddfca13b139a590 (diff)
downloadsame-cd177dec4aba0a46d45f013bc2a863f8f6792eaa.tar.gz
same-cd177dec4aba0a46d45f013bc2a863f8f6792eaa.tar.bz2
same-cd177dec4aba0a46d45f013bc2a863f8f6792eaa.zip
capacitor dielectric absorption noise, triboelectric and piezoelectric effects, and pcb leakage currents
-rw-r--r--module-design.typ365
1 files changed, 282 insertions, 83 deletions
diff --git a/module-design.typ b/module-design.typ
index bcef89d..2e21425 100644
--- a/module-design.typ
+++ b/module-design.typ
@@ -107,10 +107,7 @@ operators.
table(
columns: 4,
table.header([Symbol], [Definition], [Value], [Unit]),
- [$k_B$],
- [Boltzmann constant],
- [$num("1.381e-23")$],
- [$unit("joule per kelvin", per: "/")$],
+ [$k_B$], [Boltzmann constant], [$num("1.381e-23")$], [$unit("joule per kelvin", per: "/")$],
[$T$], [Absolute temperature], [N/A], [$unit(K)$],
[$e$], [Elementary charge], [$num("1.603e-19")$], [$unit(C)$],
@@ -131,13 +128,9 @@ operators.
[$L$], [Inductance], [$unit(H)$],
[$P$], [Power], [$unit(W)$],
[$f$], [Frequency], [$unit("Hz")$],
- [$omega$],
- [Angular frequency ($omega = 2 pi f$)],
- [$unit("radian per second", per: "/")$],
+ [$omega$], [Angular frequency ($omega = 2 pi f$)], [$unit("radian per second", per: "/")$],
- [$tau$],
- [Time constant ($tau = upright("RC") "or" upright("L/R")$)],
- [$unit(s)$],
+ [$tau$], [Time constant ($tau = upright("RC") "or" upright("L/R")$)], [$unit(s)$],
[$upright("BW")$], [Bandwidth], [$unit("Hz")$],
),
@@ -190,17 +183,11 @@ operators.
[$upright("SR")$], [Slew rate], [$unit("volt per micro second", per: "/")$],
[$upright("CMRR")$], [Common-mode rejection ration], [$unit("dB")$],
[$upright("PSRR")$], [Power supply rejection ratio], [$unit("dB")$],
- [$upright("TC")$],
- [Temperature coefficient],
- [$unit("ppm per celsius", per: "/")$],
+ [$upright("TC")$], [Temperature coefficient], [$unit("ppm per celsius", per: "/")$],
- [$V_"CR"$],
- [Voltage coefficient of resistance],
- [$unit("ppm per volt", per: "/")$],
+ [$V_"CR"$], [Voltage coefficient of resistance], [$unit("ppm per volt", per: "/")$],
- [$V_"CC"$],
- [Voltage coefficient of capacitance],
- [$unit("ppm per volt", per: "/")$],
+ [$V_"CC"$], [Voltage coefficient of capacitance], [$unit("ppm per volt", per: "/")$],
[$upright("DA")$], [Dielectric absorption], [$unit("percent")$],
[$S$], [Seebeck coefficient], [$unit("micro volt per celsius", per: "/")$],
@@ -216,13 +203,9 @@ operators.
columns: 3,
table.header([Symbol], [Definition], [Typical unit]),
[$epsilon$], [Error (general)], [$unit("ppm")$ or $unit("uV")$],
- [$epsilon_"max"$],
- [Maximum allowable error],
- [$unit("ppm")$ or $unit("uV")$],
+ [$epsilon_"max"$], [Maximum allowable error], [$unit("ppm")$ or $unit("uV")$],
- [$epsilon_"total"$],
- [Total combined error],
- [$unit("ppm")$ or $unit("uV")$],
+ [$epsilon_"total"$], [Total combined error], [$unit("ppm")$ or $unit("uV")$],
[$epsilon_"systematic"$], [Systematic error component], [$unit("ppm")$],
[$epsilon_"random"$], [Random error component], [$unit("uVrms")$],
@@ -247,21 +230,15 @@ operators.
table(
columns: 3,
table.header([Symbol], [Definition], [Typical unit]),
- [$e_n$],
- [Voltage noise spectral density],
- [$unit("nano volt per shertz", per: "/")$],
+ [$e_n$], [Voltage noise spectral density], [$unit("nano volt per shertz", per: "/")$],
[$upright(i)_n$],
[Current noise spectral density],
[$unit("pico ampere per shertz", per: "/")$ or $unit("femto ampere per shertz", per: "/")$],
- [$e_(n,"white")$],
- [White noise component],
- [$unit("nano volt per shertz", per: "/")$],
+ [$e_(n,"white")$], [White noise component], [$unit("nano volt per shertz", per: "/")$],
- [$e_(n,1/f)$],
- [$1/f$ noise component],
- [$unit("nano volt per shertz", per: "/")$ at $qty(1, "Hz")$],
+ [$e_(n,1/f)$], [$1/f$ noise component], [$unit("nano volt per shertz", per: "/")$ at $qty(1, "Hz")$],
[$f_c$], [Noise corner frequency ($1/f$ to white)], [$unit("Hz")$],
@@ -282,9 +259,7 @@ operators.
[$f_"carrier"$], [Carrier frequency], [$unit("Hz")$],
[$f_0$], [Resonant or center frequency], [$unit("Hz")$],
[$phi$], [Phase], [$unit("radian")$ or $unit("degree")$],
- [$Delta phi$],
- [Phase error or shift],
- [$unit("radian")$ or $unit("degree")$],
+ [$Delta phi$], [Phase error or shift], [$unit("radian")$ or $unit("degree")$],
[$t_"settle"$], [Settling time], [$unit("s")$],
[$t_h$], [Timing jitter], [$unit("ps")$ or $unit("ns")$],
@@ -299,26 +274,16 @@ operators.
columns: 3,
table.header([Symbol], [Definition], [Typical unit]),
[$T$], [Temperature (absolute)], [$unit("K")$],
- [$delta upright(T)$],
- [Temperature difference],
- [$unit("celsius")$ or $unit("K")$],
+ [$delta upright(T)$], [Temperature difference], [$unit("celsius")$ or $unit("K")$],
- [$(Delta T)/(upright(d) y)$],
- [Vertical temperature gradient],
- [$unit("celsius per centi meter", per: "/")$],
+ [$(Delta T)/(upright(d) y)$], [Vertical temperature gradient], [$unit("celsius per centi meter", per: "/")$],
- [$theta_"conv"$],
- [Convective thermal resistance],
- [$unit("celsius per watt", per: "/")$],
+ [$theta_"conv"$], [Convective thermal resistance], [$unit("celsius per watt", per: "/")$],
- [$theta_"cond"$],
- [Conductive thermal resistance],
- [$unit("celsius per watt", per: "/")$],
+ [$theta_"cond"$], [Conductive thermal resistance], [$unit("celsius per watt", per: "/")$],
[$accent(Q, dot)$], [Heat flux], [$unit("W")$],
- [$accent(m, dot)$],
- [Mass flow rate],
- [$unit("kilo gram per second", per: "/")$],
+ [$accent(m, dot)$], [Mass flow rate], [$unit("kilo gram per second", per: "/")$],
[$c_p$], [Specific heat capacity], [$unit("J")/(unit("kg") dot unit("K"))$],
),
@@ -778,7 +743,7 @@ thermal variation over the module's service life.
Interface modules necessarily deviate from the standard SAME I/O format on their
external-facing side. The external connector type is determined by the format
being interfaced (BNC, XLR, DB-25, optical, etc.). However, the SAME-facing side
-of an interface module must use standard 4mm banana jacks conforming to
+of an interface module must use standard $qty(4, "mm")$ banana jacks conforming to
@signal-standards.
Interface modules must provide clear panel markings indicating which jacks
@@ -796,7 +761,7 @@ specifications that enable meaningful analog computation.
==== Interface requirements <compute-modules-interface-requirements>
-Compute modules must use exclusively 4mm banana jacks for all signal input and
+Compute modules must use exclusively $qty(4, "mm")$ banana jacks for all signal input and
output. No physical controls (potentiometers, switches, or other manual
adjustment mechanisms) are permitted on compute modules.
@@ -1105,13 +1070,9 @@ errors. Both must be met, but they are separate budgets:
table(
columns: 3,
table.header([Budget], [Allocation], [Expressed as]),
- [Systematic error budget],
- [$qty(200, "uV")$ ($qty(10, "ppm")$)],
- [Offset, drift, gain error, nonlinearity],
+ [Systematic error budget], [$qty(200, "uV")$ ($qty(10, "ppm")$)], [Offset, drift, gain error, nonlinearity],
- [Random error budget],
- [$qty(632.455, "uVrms")$ ($qty(90, "dB")$)],
- [Thermal noise, $1/f$ noise, interference],
+ [Random error budget], [$qty(632.455, "uVrms")$ ($qty(90, "dB")$)], [Thermal noise, $1/f$ noise, interference],
),
caption: [Error budgets allocation],
) <table-snr-and-noise-floor-resolution>
@@ -1329,15 +1290,9 @@ servo loop.
table(
columns: 4,
table.header([Op-amp class], [$e_(n,"white")$], [$f_c$], [Notes]),
- [General purpose (TL07x)],
- [$18 unit("nano volt per shertz", per: "/")$],
- [$qty(200, "Hz")$],
- [JFET input],
-
- [Low noise (OPA211)],
- [$1.1 unit("nano volt per shertz", per: "/")$],
- [$qty(10, "Hz")$],
- [Bipolar input],
+ [General purpose (TL07x)], [$18 unit("nano volt per shertz", per: "/")$], [$qty(200, "Hz")$], [JFET input],
+
+ [Low noise (OPA211)], [$1.1 unit("nano volt per shertz", per: "/")$], [$qty(10, "Hz")$], [Bipolar input],
[Precision low noise (LT1028)],
[$0.85 unit("nano volt per shertz", per: "/")$],
@@ -1407,17 +1362,11 @@ $ V_(n,i,"rms") = i_n times Z_"source" times sqrt(upright("BW")) $
table(
columns: 3,
table.header([Op-amp class], [$i_n$], [Notes]),
- [Bipolar (LT1028)],
- [$1 unit("pico ampere per shertz", per: "/")$],
- [Low voltage noise, moderate current noise],
+ [Bipolar (LT1028)], [$1 unit("pico ampere per shertz", per: "/")$], [Low voltage noise, moderate current noise],
- [JFET (OPA627)],
- [$2.5 unit("femto ampere per shertz", per: "/")$],
- [Negligible],
+ [JFET (OPA627)], [$2.5 unit("femto ampere per shertz", per: "/")$], [Negligible],
- [CMOS (LMC6001)],
- [$0.13 unit("femto ampere per shertz", per: "/")$],
- [Negligible],
+ [CMOS (LMC6001)], [$0.13 unit("femto ampere per shertz", per: "/")$], [Negligible],
),
caption: [Op-amp current noise typical magnitudes],
) <table-opamp-current-noise-typical-magnitude>
@@ -1485,9 +1434,7 @@ $
#figure(
table(
columns: 3,
- table.header(
- [Op-amp], [$upright("PSRR")$ (DC)], [$upright("PSRR")$ ($qty(10, "kHz")$)]
- ),
+ table.header([Op-amp], [$upright("PSRR")$ (DC)], [$upright("PSRR")$ ($qty(10, "kHz")$)]),
[TL072], [$qty(100, "dB")$], [$qty(80, "dB")$],
[OPA211], [$qty(130, "dB")$], [$qty(90, "dB")$],
[LT1028], [$qty(120, "dB")$], [$qty(90, "dB")$],
@@ -1535,7 +1482,7 @@ $
<radiated-and-conducted-rf-interference-physical-mechanism>
External electromagnetic fields induce high-frequency RF currents in unshielded
-conductors (such as 4mm banana patch cables), which act as receiving antennas.
+conductors (such as $qty(4, "mm")$ banana patch cables), which act as receiving antennas.
When high-frequency RF energy reaches an op-amp's input terminals, non-linear
semiconductor junctions (ESD diodes and input transistor B-E junctions)
rectify the carrier wave. This process, known as RFI demodulation, generates an
@@ -1588,7 +1535,7 @@ budget.
====== Where it enters <radiated-and-conducted-rf-interference-where-it-enters>
-- Unshielded front-panel 4mm banana patch cables,
+- Unshielded front-panel $qty(4, "mm")$ banana patch cables,
- Unshielded PCB traces acting as slot antennas,
- Power distribution wiring and DB-25 backplane harness,
- High-impedance op-amp input nodes lacking local bypass capacitors.
@@ -1695,6 +1642,258 @@ includes DC components. Mitigation relies on structural topology:
inputs or galvanic isolation on all external-facing interface modules per
@module-category-interface-modules.
+===== Capacitor dielectric absorption noise
+<capacitor-dielectric-absorption-noise>
+
+====== Physical mechanism
+<capacitor-dielectric-absorption-noise-physical-mechanism>
+
+Dielectric absorption ($upright("DA")$, or capacitor "soakage") arises from
+residual dipole polarization within the capacitor's dielectric material. When a
+capacitor is rapidly charged and discharged, bound dipoles relax slowly, causing
+charge to bleed back onto the plates over time. In analog integrators and
+sample-and-hold circuits, this manifests as a dynamic memory effect that
+corrupts initial conditions and signal history.
+
+====== Mathematical model
+<capacitor-dielectric-absorption-noise-mathematical-model>
+
+$upright("DA")$ is modeled as a voltage source in series with the ideal
+capacitance, decaying as a sum of exponential time constants:
+
+$
+ V_(upright("DA")) = V_("peak") dot upright("DA")% dot sum_i A_i e^(-t/(tau_i))
+$
+
+Where $upright("DA")%$ is the dielectric absorption coefficient and $tau_i$
+represents the dielectric material relaxation time constants.
+
+===== Typical magnitude <capacitor-dielectric-absorption-noise-typical-magnitude>
+
+#figure(
+ table(
+ columns: 2,
+ table.header([Dielectric class], [DA coefficient]),
+ [Ceramic (X7R / Class 2)], [$qty(2.5, "percent")$],
+ [Polyester (Mylar)], [$qty(0.2, "percent")$],
+ [Polypropylene (PP)], [$qty(0.05, "percent")$],
+ [Polystyrene (PS)], [$qty(0.02, "percent")$],
+ [Teflon (PTFE)], [$qty(0.01, "percent")$],
+ [Class 1 ceramic (C0G / NP0)], [$lt qty(0.01, "percent")$],
+ ),
+ caption: [Capacitor dielectric absorption coefficients],
+) <table-capacitor-dielectric-absorption-noise-typical-magnitude>
+
+For a standard polypropylene capacitor ($qty(0.05, "percent") upright("DA")$)
+step-charged charged at $qty(10, "V")$:
+
+$
+ V_(upright("DA")) = qty(10, "V") times 0.0005 = qty(5, "mV") (qty(250, "ppm"))
+$
+
+This single residual term exceeds our $qty(200, "uV")$ systematic error budget
+y a factor of $25$.
+
+====== Where it enters <capacitor-dielectric-absorption-noise-where-it-enters>
+
+- Feedback integration capacitors in time-domain and continuous compute cores,
+- Hold capacitors in track-and-hold / sample-and-hold circuits,
+- AC coupling capacitors in dynamic processing stages,
+- Active filter feedback networks.
+
+====== Scaling law <capacitor-dielectric-absorption-noise-scaling-law>
+
+Dielectric absorption error scales linearly with peak applied step voltage
+$V_("peak")$ and the dielectric material coefficient $upright("DA")$. It decays
+logarithmically over time, making rapid reset/re-integration cycles particularly
+vulnerable.
+
+====== Compensation strategy
+<capacitor-dielectric-absorption-noise-compensation-strategy>
+
+Dielectric absorption cannot be cancelled electronically after charge has soaked
+into the dielectric. Mitigation relies strictly on component selection and
+circuit topology:
+- Mandating Class 1 C0G/NP0 ceramic or PTFE/polysyrene capacitors for all
+ integrator feedback and sample-hold storage paths,
+- Prohibiting Class 2 ceramic (X7R, X5R, Y5V) capacitors anywhere in the
+ precision analog signal path,
+- Implementing active reset topologies that maintain zero voltage across
+ integrator capacitors during hold phases to allow dipole discharge.
+
+===== Triboelectric and piezoelectric effects
+<triboelectric-and-piezoelectric-effects>
+
+====== Physical mechanism
+<triboelectric-and-piezoelectric-effects-physical-mechanism>
+
+Mechanical stress on cables and components generates unwanted voltage transients
+through two primary physical mechanisms:
+/ Triboelectric effect: Friction and physical separation between a conductor and
+ its insulating dielectric strips electrons, generating parasitic charge
+ accumulation during cable flexing or vibration.
+/ Piezoelectric effect (microphonics): Mechanical strain applied to
+ non-symmetrical crystalline dielectrics (particularly Class 2/3 ceramic
+ capacitors) generates proportional electrical charge across terminal plates.
+
+====== Mathematical model
+<triboelectric-and-piezoelectric-effects-mathematical-model>
+
+Triboelectric induced noise voltage in a flexible cable is modeled as:
+
+$ V_("tribo") = k_("tribo") dv(L, t) $
+
+Where $k_("tribo")$ is the cable's triboelectric coupling constant in
+$unit("mV") / unit("meter per second", per: "/")$ and $dv(L, t)$ is the rate of mechanical
+deformation.
+
+Piezoelectric microphonic voltage generated across a capacitor of capacitance
+$C$ subjected to vibrational force $F_("vib")$ is:
+
+$ V_("piezo") = (d_33 dot F_("vib")) / C $
+
+Where $d_33$ is the longitudinal piezoelectric charge coefficient of the
+dielectric material.
+
+====== Typical magnitude
+<triboelectric-and-piezoelectric-effects-typical-magnitude>
+
+For a standard PVC-insulated patch cable,
+$k_("tribo") approx qty(50, "milli volt per meter per second", per: "/")$
+experiencing mild flexing ($dv(L, t) = qty(1, "milli meter per second", per: "/")$):
+
+$
+ V_("tribo") = num("50e-3") times num ("1e-3") = qty(50, "uV") (qty(2.5, "ppm"))
+$
+
+Using a low-noise graphite-coated cable
+($k_("tribo") approx qty(1, "milli volt per meter per second", per: "/")$):
+
+$
+ V_("tribo") = num("1e-3") times num("1e-3") = qty(1, "uV") (qty(0.05, "ppm"))
+$
+
+For an X7R ceramic capacitor
+($d_33 approx qty(200, "pico coulomb per newton", per: "/")$) subjected to a
+$qty(1, "g")$ ($qty(0.1, "N")$) acoustic/mechanical vibration spike on a
+$qty(100, "nF")$ node:
+
+$
+ V_("piezo") = (num("200e-12") times 0.1) / num("100e-9") = qty(200, "uV") (qty(10, "ppm"))
+$
+
+====== Where it enters
+<triboelectric-and-piezoelectric-effects-where-it-enters>
+
+- Front-panel $qty(4, "mm")$ banana patch cables during physical patching or
+ operator contact,
+- Class 2/3 ceramic decoupling and coupling capacitors mounted on module PCBs,
+- High-impedance amplifier nodes where tiny triboelectric charge injections $Q$
+ creates large voltage offsets ($V = Q / C$).
+
+====== Scaling law <triboelectric-and-piezoelectric-effects-scaling-law>
+
+Triboelectric noise scales linearly with cable flexing velocity $dv(L, t)$ and
+inversely with node capacitance. Piezoelectric microphonic voltage scales
+linearly with mechanical vibration acceleration $a$ and piezoelectric
+coefficient $d_33$, and inversely with total node capacitance $C$.
+
+====== Compensation strategy
+<triboelectric-and-piezoelectric-effects-compensation-strategy>
+
+Triboelectric and piezoelectric noise transients are mechanical in origin and
+cannot be filtered by active DC feedback loop. Mitigation requires physical
+prevention:
+- Mandating low-noise silicone or graphite-shielded banana patch cables per
+ @banana-format,
+- Strictly prohibiting Class 2/3 ceramic capacitors (X7R, X5R, Y5V) in precision
+ signal paths, restricting selection to non-piezoelectric C0G/NP0 ceramics or
+ film dielectrics,
+- Enforcing structural rigidity of steel cassette enclosures and PCB mounting
+ standoffs to damp mechanical vibration per @cassette and
+ @mechanical-environment.
+
+===== PCB leakage currents <pcb-leakage-currents>
+
+====== Physical mechanism <pcb-leakage-currents-physical-mechanism>
+
+Surface contamination (no-clean flux residue, ionic salts, airbone dust and
+condensed moisture) creates parasitic resistive conduction paths across FR-4
+dielectric substrate surfaces. At high-impedance signal nodes, these parasitic
+paths bleed microamperes to picoamperes of stray current from adjacent power or
+signal traces into the signal path.
+
+====== Mathematical model <pcb-leakage-currents-mathematical-model>
+
+Surface leakage current $I_("leak")$ flowing from a neighboring trace at
+potential $V_("trace")$ across surface insulation resistance $R_("leak")$ is:
+
+$ I_("leak") = V_("trace") / R_("leak") $
+
+This stray current flows into the high-impedance node's equivalent source
+impedance $Z_("source")$, developing a systematic error voltage:
+
+$
+ V_("error") = I_("leak") times Z_("source") = V_("trace") dot Z_("source")/R_("leak")
+$
+
+====== Typical magnitude <pcb-leakage-currents-typical-magnitude>
+
+For a clean, dry FR-4 PCB at $qty(50, "percent") upright("RH")$, surface
+resistance between adjacent traces is typically
+$R_("leak") approx qty("1e12", "ohm")$. Under high ambient humidity
+($qty(70, "percent") upright("RH")$) or with uncleaned flux residue, surface
+resistance drops sharply to $R_("leak") approx qty("1e9", "ohm")$.
+
+For a $V_("trace") = qty(10, "V")$ potential adjacent to a
+$Z_("source") = qty(1, "mega ohm")$ input node (white banana jack boundary):
+
+- On a clean PCB ($R_("leak") = qty("1e12", "ohm")$):
+$
+ I_("leak") & = qty(10, "V") / qty("1e12", "ohm") = qty(10, "pA") \
+ V_("error") & = qty(10, "pA") times qty(1, "mega ohm") = qty(10, "uV") (qty(0.5, "ppm"))
+$
+- On a contaminated PCB ($R_("leak") = qty("1e9", "ohm")$):
+$
+ I_("leak") & = qty(10, "V") / qty("1e9", "ohm") = qty(10, "nA") \
+ V_("error") & = qty(10, "nA") times qty(1, "mega ohm") = qty(10, "mV") (qty(500, "ppm"))
+$
+
+Contamination increases systematic DC error by $500 times$, exceeding the total
+$qty(200, "uV")$ Metrologic tier budget by a factor of $50$.
+
+====== Where it enters <pcb-leakage-currents-where-it-enters>
+
+- High-impedance front-panel input buffer nodes
+ ($Z_"in" gt.eq qty(1, "mega ohm")$),
+- Integrator summing junctions and hold-capacitor nodes,
+- Feedback resistor networks with high resistance values
+ ($gt.eq qty(100, "kilo ohm")$),
+- Unshielded op-amp non-inverting input traces routed adjacent to power supply
+ rails ($plus.minus qty(15.00, "V")$).
+
+====== Scaling law <pcb-leakage-currents-scaling-law>
+
+Leakage error voltage scales linearly with source impedance $Z_"source"$ and
+adjacent voltage differential $V_"trace"$, and inversely with surface
+insulation resistance $R_"leak"$. $R_"leak"$ decreases exponentially with
+relative humidity above $qty(60, "percent") upright("RH")$.
+
+====== Compensation strategy <pcb-leakage-currents-compensation-strategy>
+
+PCB surface leakage cannot be compensated by active servo or offset trimming
+because $R_"leak"$ varies dynamically with humidity and ambient contamination.
+Mitigation requires strict physical layout controls:
+- Implementing driven guard rings surrounding high-impedance nodes; driving the
+ guard trace with a unity-gain buffer to potential $V_"guard" approx V_"node"$
+ reduces voltage differential $Delta V arrow 0$, forcing $I_"leak" arrow 0$,
+- Mandating ultrasonic solvent cleaning and ionic contamination testing
+ post-assembly,
+- Applying acrylic or silicone conformal coating (per IPC-CC-830) over sensitive
+ analog sections to seal dielectrics against ambient humidity,
+- Enforcing minimum trace clearance constraints between low-level signal traces
+ and high-voltage/power rails.
+
== Error compensation strategies <error-compensation-strategies>
== Advanced compensation topologies <advanced-compensation-topologies>