aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--electrical-specifications.typ14
-rw-r--r--mechanical-specifications.typ86
-rw-r--r--module-design.typ873
3 files changed, 922 insertions, 51 deletions
diff --git a/electrical-specifications.typ b/electrical-specifications.typ
index 8384518..caf5c6f 100644
--- a/electrical-specifications.typ
+++ b/electrical-specifications.typ
@@ -61,7 +61,7 @@ must include an out-of-domain handling strategy, and document it:
#figure(
table(
- columns: (auto, auto, auto),
+ columns: 3,
table.header([Strategy], [Description], [Example use cases]),
[Clamp], [Output held at boundary], [Logarithm],
[Hold], [Freeze last valid output], [Integrator],
@@ -97,7 +97,7 @@ jacks, the parallel input impedance must be considered:
#figure(
table(
- columns: (auto, auto, auto),
+ columns: 3,
table.header([Inputs stacked], [Parallel $Z_"in"$], [Loading error]),
[1], [$qty(1, "mega ohm")$], [$qty(10, "ppm")$],
[4], [$qty(250, "kilo ohm")$], [$qty(40, "ppm")$],
@@ -127,7 +127,7 @@ internal errors must never be aggregated.
#figure(
table(
- columns: (auto, auto),
+ columns: 2,
table.header([Source], [Category]),
[Clipping], [Internal],
[PWAM Soft Saturation], [Internal],
@@ -295,7 +295,7 @@ are met.
#figure(
table(
- columns: (auto, auto, auto),
+ columns: 3,
table.header([Parameter], [Range], [Variation]),
[Temperature], [$plus qty(15, "dC") "to" plus qty(30, "dC")$], [$plus.minus qty(2, "celsius per hour")$],
@@ -366,7 +366,7 @@ $qty(0.014, "ppm per hour")$. We recommend daily calibration verification.
#figure(
table(
- columns: (auto, auto, auto, auto),
+ columns: 4,
table.header([Parameter], [Educational], [Industrial], [Metrologic]),
[Precision],
[$qty(0.1, "percent") (qty(1000, "ppm"))$],
@@ -394,7 +394,7 @@ the precision budget.
#figure(
table(
- columns: (auto, auto, auto, auto),
+ columns: 4,
table.header([Tier], [Precision], [Drift rate], [Time to drift $qty(100, "percent")$ of budget]),
[*Educational*], [$qty(1000, "ppm")$], [$qty(60, "ppm per hour")$], [$approx qty(16, "h")$],
@@ -581,7 +581,7 @@ sturdy and shielded.
#figure(
table(
- columns: (auto, auto, auto, auto),
+ columns: 4,
table.header([Pin], [Signal], [Pin], [Signal]),
[1], [$plus qty(15.00, "V")$], [14], [AGND],
[2], [$plus qty(15.00, "V")$], [15], [AGND],
diff --git a/mechanical-specifications.typ b/mechanical-specifications.typ
index ae5c04e..aceb4d1 100644
--- a/mechanical-specifications.typ
+++ b/mechanical-specifications.typ
@@ -24,7 +24,7 @@ especially in terms of magnetic shielding.
#figure(
table(
- columns: (auto, auto),
+ columns: 2,
table.header([Parameter], [Value]),
[Material], [DC01 cold-rolled steel (EN 10130)],
[Thickness], [$qty(1.2, "mm")$],
@@ -42,7 +42,7 @@ especially in terms of magnetic shielding.
#figure(
table(
- columns: (auto, auto, auto, auto),
+ columns: 4,
table.header([Dimension], [Value], [Tolerance], [Note]),
[Panel height],
[$qty(177.8, "mm")$ ($qty(4, "U"), qty(7, "inch")$)],
@@ -176,7 +176,7 @@ will fail, degrading the SNR below the $qty(90, "dB")$ target.
#figure(
table(
- columns: (auto, auto),
+ columns: 2,
table.header([Dimension], [Value]),
[Height], [$qty(162.7, "mm")$],
[Width], [$qty(35.6, "mm")$],
@@ -197,7 +197,7 @@ maintaining EMI shielding.
#figure(
table(
- columns: (auto, auto),
+ columns: 2,
table.header([Parameter], [Value]),
[Slot size], [$qty(2.5, "mm") times qty(10, "mm")$],
[Slot orientation], [Length parallel to cassette depth],
@@ -221,7 +221,7 @@ maintaining EMI shielding.
#figure(
table(
- columns: (auto, auto),
+ columns: 2,
table.header([Parameter], [Value]),
[Shape], [D-shaped (standard DB-25 profile)],
@@ -332,7 +332,7 @@ connector.
#figure(
table(
- columns: (auto, auto, auto, auto),
+ columns: 4,
table.header([Parameter], [Value], [Tolerances], [Notes]),
[Height], [$qty(155.0, "mm")$], [$plus.minus qty(0.2, "mm")$], [Vertical dimension when mounted],
@@ -352,7 +352,7 @@ management, while remaining easy to solder with standard equipment.
#figure(
table(
- columns: (auto, auto, auto, auto),
+ columns: 4,
table.header([Layer], [Function], [Copper weight], [Notes]),
[L1 (top)],
[Signal + components],
@@ -383,7 +383,7 @@ management, while remaining easy to solder with standard equipment.
#figure(
table(
- columns: (auto, auto),
+ columns: 2,
table.header([Parameter], [Specification]),
[Finish], [ENIG (Electroless Nickel Immersion Gold)],
@@ -417,7 +417,7 @@ to drain to chassis earth rather than coupling into signal traces.
#figure(
table(
- columns: (auto, auto, auto),
+ columns: 3,
table.header([Parameter], [Value], [Notes]),
[Width], [$qty(3.0, "mm")$], [Continuous copper pour],
[Clearance from edge], [$qty(0.5, "mm")$], [Manufacturing tolerance],
@@ -446,7 +446,7 @@ The four mounting holes shall be:
#figure(
table(
- columns: (auto, auto),
+ columns: 2,
table.header([Parameter], [Value]),
[Layer], [L2 (inner 1)],
[Coverage], [Minimum $qty(85, "percent")$ of signal area],
@@ -465,7 +465,7 @@ The AGND plane provides:
#figure(
table(
- columns: (auto, auto),
+ columns: 2,
table.header([Parameter], [Value]),
[Location], [Defined zone on L2],
[Separation], [$qty(2, "mm")$ gap from AGND plane],
@@ -481,7 +481,7 @@ Layer 3 is divided into power distribution zones:
#figure(
table(
- columns: (auto, auto, auto),
+ columns: 3,
table.header([Zone], [Rail], [Typical area]),
[Zone 1], [$plus qty(15, "V")$], [$qtyrange(30, 40, "percent")$],
[Zone 2], [$qty(-15, "V")$], [$qtyrange(30, 40, "percent")$],
@@ -503,7 +503,7 @@ The PCB mounts to the L-channel left wall via four standoffs.
#figure(
table(
- columns: (auto, auto),
+ columns: 2,
table.header([Parameter], [Value]),
[Standoff thread], [$M 3$],
[Standoff height], [$qty(6, "mm")$],
@@ -517,7 +517,7 @@ The PCB mounts to the L-channel left wall via four standoffs.
#figure(
table(
- columns: (auto, auto),
+ columns: 2,
table.header([Parameter], [Value]),
[Pattern], [Rectangular, $4$ holes],
[Horizontal spacing (X)], [$qty(105.0, "mm")$],
@@ -532,7 +532,7 @@ The PCB mounts to the L-channel left wall via four standoffs.
#figure(
table(
- columns: (auto, auto, auto),
+ columns: 3,
table.header([Hole], [X], [Y]),
[1 (bottom-left)], [$qty(10.00, "mm")$], [$qty(10.00, "mm")$],
[2 (bottom-right)], [$qty(115.00, "mm")$], [$qty(10.00, "mm")$],
@@ -548,7 +548,7 @@ The PCB mounts to the L-channel left wall via four standoffs.
#figure(
table(
- columns: (auto, auto, auto),
+ columns: 3,
table.header([Parameter], [Value], [Notes]),
[Width], [$qty(5.0, "mm")$], [All four edges],
[Applies to], [Components and tall traces], [Solder mask and silkscreen allowed],
@@ -562,7 +562,7 @@ The PCB mounts to the L-channel left wall via four standoffs.
#figure(
table(
- columns: (auto, auto),
+ columns: 2,
table.header([Parameter], [Value]),
[Radius], [$qty(0.5, "mm")$ from hole center],
[Applies to], [Components, traces, planes (except earth ring)],
@@ -576,7 +576,7 @@ The PCB mounts to the L-channel left wall via four standoffs.
#figure(
table(
- columns: (auto, auto),
+ columns: 2,
table.header([Parameter], [Value]),
[Location], [Rear $qty(20, "mm")$ of PCB ($Y = qtyrange(0, 20, "mm", delimiter: "\"to\"")$)],
@@ -598,7 +598,7 @@ The PCB connector shall provide access to all power rails in a logical grouping:
#figure(
table(
- columns: (auto, auto, auto),
+ columns: 3,
table.header([Position], [Signal], [Recommended wire color]),
[1], [$plus qty(15, "V")$], [Red],
[2], [$qty(-15, "V")$], [Orange],
@@ -623,7 +623,7 @@ harness.
#figure(
table(
- columns: (auto, auto),
+ columns: 2,
table.header([Parameter], [Value]),
[Location], [Front $qty(20, "mm")$ of PCB ($Y = qtyrange(135, 155, "mm", delimiter: "\"to\"")$)],
@@ -656,7 +656,7 @@ Without disconnecting the wire harnesses.
#figure(
table(
- columns: (auto, auto),
+ columns: 2,
table.header([Element], [Requirement]),
[Reference designators], [All components labeled($R_"bias"$, $C_"bulk"$, $U_"buf"$, etc.)],
@@ -676,7 +676,7 @@ if there are space constraints.
#figure(
table(
- columns: (auto, auto),
+ columns: 2,
table.header([Element], [Requirement]),
[Board identification], [Module name, version, date],
[SAME logo], [Mandatory],
@@ -693,7 +693,7 @@ All PCBs shall pass the following tests before assembly:
#figure(
table(
- columns: (auto, auto),
+ columns: 2,
table.header([Test], [Requirement]),
[Isolation], [$gt qty(100, "mega ohm")$ between unconnected nets],
[Continuity], [All nets per netlist],
@@ -713,7 +713,7 @@ The front panel is a separate piece that attaches to the L-channel via countersu
#figure(
table(
- columns: (auto, auto, auto),
+ columns: 3,
table.header([Parameter], [Value], [Tolerance]),
[Height], [$qty(177.8, "mm")$ ($qty(4, "U"), qty(7, "inch")$)], [$plus.minus qty(0.1, "mm")$],
@@ -729,7 +729,7 @@ The front panel is a separate piece that attaches to the L-channel via countersu
#figure(
table(
- columns: (auto, auto, auto),
+ columns: 3,
table.header([Zone], [Height range], [Function]),
[Top lip], [$qtyrange(0, 6.35, "mm")$], [Extends above cassette body],
[Body], [$qtyrange(6.35, 171.45, "mm")$], [Jack and control area],
@@ -752,7 +752,7 @@ grid for compatibility with standard banana jack spacing and shorting bars.
#figure(
table(
- columns: (auto, auto),
+ columns: 2,
table.header([Parameter], [Value]),
[Origin X], [$qty(9.525, "mm")$ from left edge (first column center)],
[Origin Y], [$qty(22.225, "mm")$ from top edge (first row center)],
@@ -768,7 +768,7 @@ grid for compatibility with standard banana jack spacing and shorting bars.
#figure(
table(
- columns: (auto, auto, auto, auto, auto),
+ columns: 5,
table.header([Position], [Column], [Row], [X (from left)], [Y (from top)]),
[A1], [$1$], [$1$], [$qty(9.525, "mm")$], [$qty(22.225, "mm")$],
[B1], [$2$], [$1$], [$qty(28.575, "mm")$], [$qty(22.225, "mm")$],
@@ -794,7 +794,7 @@ grid for compatibility with standard banana jack spacing and shorting bars.
#figure(
table(
- columns: (auto, auto, auto),
+ columns: 3,
table.header([Component], [Grid positions], [Hole size]),
[$qty(4, "mm")$ banana jack], [Any], [$diameter qty(8.0, "mm")$],
[$qty(6, "mm")$ potentiometer shaft], [Any], [$diameter qty(7.0, "mm")$],
@@ -819,7 +819,7 @@ All panels shall include clear, permanent labelling for user operation.
#figure(
table(
- columns: (auto, auto, auto),
+ columns: 3,
table.header([Element], [Requirement], [Location]),
[Module name], [Mandatory], [Top lip],
[Module mathematical function], [Recommended, when applicable], [Above row $1$],
@@ -839,7 +839,7 @@ All panels shall include clear, permanent labelling for user operation.
#figure(
table(
- columns: (auto, auto),
+ columns: 2,
table.header([Jack color], [Signal type]),
[White], [Input (bipolar)],
[Light blue], [Output (bipolar)],
@@ -917,7 +917,7 @@ are mandatory:
#figure(
table(
- columns: (auto, auto, auto),
+ columns: 3,
table.header([Parameter], [Value], [Notes]),
[Module pitch], [$qty(38.1, "mm")$ ($qty(1.5, "inch")$)], [Center-to-center spacing],
@@ -938,7 +938,7 @@ minimum or maximum, but the following constraints apply:
#figure(
table(
- columns: (auto, auto, auto),
+ columns: 3,
table.header([Capacity], [Power budget], [Notes]),
[Per module], [$qty(185, "mA") at plus.minus qty(15, "V")$], [Maximum per position],
@@ -962,7 +962,7 @@ account for the DB-25 connector and cable bend radius.
#figure(
table(
- columns: (auto, auto),
+ columns: 2,
table.header([Parameter], [Requirement]),
[Material], [Steel (recommended) or aluminum],
[Minimum thickness], [$qty(1.5, "mm")$ (steel) or $qty(2.0, "mm")$ (aluminum)],
@@ -981,7 +981,7 @@ A fully loaded chassis must form a continuous shielded enclosure:
#figure(
table(
- columns: (auto, auto),
+ columns: 2,
table.header([Parameter], [Requirement]),
[Shielding effectiveness], [$gt qty(20, "dB"), qtyrange(80, 1000, "MHz")$],
[Panel joints], [Metal-to-metal contact of conductive gasket],
@@ -996,7 +996,7 @@ A fully loaded chassis must form a continuous shielded enclosure:
#figure(
table(
- columns: (auto, auto),
+ columns: 2,
table.header([Parameter], [Requirement]),
[Chassis earth bonding], [All panels bonded to single earth point],
[Earth impedance], [$gt qty(0.1, "ohm")$ between any two chassis points],
@@ -1014,7 +1014,7 @@ The rail system guides cassette insertion and provides retention.
#figure(
table(
- columns: (auto, auto, auto),
+ columns: 3,
table.header([Parameter], [Value], [Notes]),
[Rail height], [$qty(6.35, "mm")$ ($qty(0.25, "inch")$)], [Matches cassette lip height],
@@ -1036,7 +1036,7 @@ transport.
#figure(
table(
- columns: (auto, auto),
+ columns: 2,
table.header([Method], [Requirement]),
[Friction fit], [Acceptable for stationary installations],
[Positive retention], [Required for portable or vibration-prone environments],
@@ -1067,7 +1067,7 @@ be added for high-density configurations.
#figure(
table(
- columns: (auto, auto),
+ columns: 2,
table.header([Method], [Requirement]),
[Passive (convection)], [Minimum for all chassis],
[Active (forced air)], [Optional, for high-capacity or enclosed installations],
@@ -1082,7 +1082,7 @@ chimney-effect airflow.
#figure(
table(
- columns: (auto, auto),
+ columns: 2,
table.header([Parameter], [Requirement]),
[Bottom ventilation], [Required, aligned with cassette bottom vents],
[Top ventilation], [Required, aligned with cassette top vents],
@@ -1108,7 +1108,7 @@ module positions.
#figure(
table(
- columns: (auto, auto),
+ columns: 2,
table.header([Function], [Requirement]),
[AC-DC conversion],
[Mains input to $plus.minus qty(15, "V")$, $plus.minus qty(5, "VD")$ rails. Can be external or internal],
@@ -1133,7 +1133,7 @@ module positions.
#figure(
table(
- columns: (auto, auto),
+ columns: 2,
table.header([Parameter], [Requirement]),
[Mains connector], [IEC C14 (with integrated fuse) or regional equivalent],
[Voltage range],
@@ -1173,7 +1173,7 @@ outputs.
#figure(
table(
- columns: (auto, auto, auto),
+ columns: 3,
table.header([Element], [Type], [Function]),
[SAME logo], [Label], [N/A],
[SAME license], [Label], [Legal],
@@ -1214,7 +1214,7 @@ outputs.
#figure(
table(
- columns: (auto, auto),
+ columns: 2,
table.header([Parameter], [Requirement]),
[Isolation voltage], [$gt.eq qty(3000, "VAC")$ mains to SELV],
[Creepage / Clearance], [Per IEC 60950-1 or IEC 62368-1],
diff --git a/module-design.typ b/module-design.typ
index d6e737b..b1d84d4 100644
--- a/module-design.typ
+++ b/module-design.typ
@@ -1,4 +1,5 @@
-#import "@preview/unify:0.8.1": numrange, qty, qtyrange
+#import "@preview/unify:0.8.1": numrange, qty, qtyrange, unit
+#import "@preview/diverential:0.3.0": *
= Module design <module-design>
@@ -86,8 +87,878 @@ deeply enough to make the physics work for you rather than against you.
== Terminology <module-design-terminology>
+This section defines the specialized terminology used throughout
+#ref(<module-design>). These definitions establish a consistent vocabulary for
+discussing precision analog circuit design within the SAME ecosystem. Terms are
+organized into logical categories for ease of reference. Terms defined here may
+have already appeared in earlier sections but are formally defined here for the
+Module Design context.
+
+=== Mathematical symbols <mathematical-symbols>
+
+This section defines the mathematical symbols and notational conventions used
+throughout #ref(<module-design>). Symbols are organized by category: fundamental
+constants, electrical quantities, circuit parameters, error quantities, and
+operators.
+
+==== Fundamental constants <fundamental-constants>
+
+#figure(
+ table(
+ columns: 4,
+ table.header([Symbol], [Definition], [Value], [Unit]),
+ [$k_B$], [Boltzmann constant], [$1.381 times 10^(-23)$], [$unit("joule per kelvin")$],
+
+ [$upright(T)$], [Absolute temperature], [N/A], [$unit(K)$],
+ [$upright(e)$], [Elementary charge], [$1.603 times 10^(-19)$], [$unit(C)$],
+ ),
+ caption: [Fundamental constants],
+) <table-fundamental-constants>
+
+==== Electrical quantities <electrical-quantities>
+
+#figure(
+ table(
+ columns: 3,
+ table.header([Symbol], [Definition], [Typical unit]),
+ [$upright(V)$], [Voltage (general)], [$unit(V)$],
+ [$upright(I)$], [Current (general)], [$unit(A)$],
+ [$upright(R)$], [Resistance], [$unit("ohm")$],
+ [$upright(C)$], [Capacitance], [$unit(F)$],
+ [$upright(L)$], [Inductance], [$unit(H)$],
+ [$upright(P)$], [Power], [$unit(W)$],
+ [$upright(f)$], [Frequency], [$unit("Hz")$],
+ [$omega$], [Angular frequency ($omega = 2 pi upright(f)$)], [$unit("radian per second")$],
+
+ [$tau$], [Time constant ($tau = upright("RC") "or" upright("L/R")$)], [$unit(s)$],
+
+ [$upright("BW")$], [Bandwidth], [$unit("Hz")$],
+ ),
+)
+
+==== Voltage and current subscript conventions
+<voltage-and-current-subscript-conventions>
+
+#figure(
+ table(
+ columns: 3,
+ table.header([Subscript], [Meaning], [Example]),
+ [in], [Input], [$V_"in", I_"in"$],
+ [out], [Output], [$V_"out", I_"out"$],
+ [ref], [Reference], [$V_"ref"$],
+ [pp], [Peak-to-peak], [$V_"pp"$],
+ [rms], [Root-mean-square], [$V_"rms"$],
+ [n, noise], [Noise], [$V_n, upright(e)_n, i_n$],
+ [OS], [Offset], [$V_"OS"$],
+ [leak], [Leakage], [$I_"leak"$],
+ [supply], [Power supply], [$V_"supply"$],
+ [$plus$, $minus$], [Positive / negative input or rail], [$V_plus, V_minus$],
+
+ [CM], [Common-mode], [$V_"CM"$],
+ [diff], [Differential], [$V_"diff"$],
+ [CR], [Coefficient of resistance], [$V_"CR"$],
+ [CC], [Coefficient of capacitance], [$V_"CC"$],
+ ),
+ caption: [Voltage and current subscript conventions],
+) <table-voltage-and-current-subscript-conventions>
+
+==== Circuit and component parameters <circuit-and-component-parameters>
+
+#figure(
+ table(
+ columns: 3,
+ table.header([Symbol], [Definition], [Typical unit]),
+ [$upright(G)$], [Gain (closed-loop)], [dimensionless or $unit("dB")$],
+ [$upright(A)$], [Gain (open-loop)], [dimensionless or $unit("dB")$],
+ [$upright(A)_"OL"$], [Open-loop gain (explicit)], [dimensionless],
+ [$beta$], [Feedback factor], [dimensionless],
+ [$upright(A) beta$], [Loop gain], [dimensionless],
+ [$upright(H)$], [Transfer function], [dimensionless],
+ [$R_f$], [Feedback resistor], [$unit("ohm")$],
+ [$R_"in"$], [Input resistor], [$unit("ohm")$],
+ [$Z_"in"$], [Input impedance], [$unit("ohm")$],
+ [$Z_"out"$], [Output impedance], [$unit("ohm")$],
+ [$upright("GBW")$], [Gain-bandwidth product], [$unit("Hz")$],
+ [$upright("SR")$], [Slew rate], [$unit("volt per micro second")$],
+ [$upright("CMRR")$], [Common-mode rejection ration], [$unit("dB")$],
+ [$upright("PSRR")$], [Power supply rejection ratio], [$unit("dB")$],
+ [$upright("TC")$], [Temperature coefficient], [$unit("ppm per celsius")$],
+ [$V_"CR"$], [Voltage coefficient of resistance], [$unit("ppm per volt")$],
+ [$V_"CC"$], [Voltage coefficient of capacitance], [$unit("ppm per volt")$],
+ [$upright("DA")$], [Dielectric absorption], [$unit("percent")$],
+ [$S$], [Seebeck coefficient], [$unit("micro volt per celsius")$],
+ [$theta$], [Thermal resistance], [$unit("celsius per watt")$],
+ ),
+ caption: [Circuit and component parameters],
+) <table-circuit-and-component-parameters>
+
+==== Error and precision quantities <error-and-precision-quantities>
+
+#figure(
+ table(
+ 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_"total"$], [Total combined error], [$unit("ppm")$ or $unit("uV")$],
+
+ [$epsilon_"systematic"$], [Systematic error component], [$unit("ppm")$],
+ [$epsilon_"random"$], [Random error component], [$unit("uV") upright("RMS")$],
+
+ [$epsilon_"offset"$], [Offset error], [$unit("uV")$],
+ [$epsilon_"gain"$], [Gain error], [$unit("ppm")$],
+ [$epsilon_"ratio"$], [Ratio error for matched components], [$unit("ppm")$],
+ [$epsilon_"thermal"$], [Thermally-induced error], [$unit("ppm")$],
+ [$dv(epsilon, t)$], [Drift rate], [$unit("ppm per hour")$],
+ [$S_y^p$], [Sensitivity of $y$ to parameter $p$], [dimensionless],
+ [$upright("SNR")$], [Signal-to-noise ratio], [$unit("dB")$],
+ [$upright("RTI")$], [Referred-to-input], [$unit("uV")$],
+ [$upright("RTO")$], [Referred-to-output], [$unit("uV")$],
+ [$upright("FS")$], [Full scale], [$unit("V")$],
+ ),
+ caption: [Error and precision quantities],
+) <table-error-and-precision-quantities>
+
+==== Noise quantities <noise-quantities>
+
+#figure(
+ table(
+ columns: 3,
+ table.header([Symbol], [Definition], [Typical unit]),
+ [$upright(e)_n$], [Voltage noise spectral density], [$unit("nV")/sqrt(unit("Hz"))$],
+
+ [$upright(i)_n$],
+ [Current noise spectral density],
+ [$unit("pA")/sqrt(unit("Hz"))$ or $unit("fA")/sqrt(unit("Hz"))$],
+
+ [$upright(e)_(n,"white")$], [White noise component], [$unit("nV")/sqrt(unit("Hz"))$],
+
+ [$upright(e)_(n,1/upright(f))$],
+ [$1/upright(f)$ noise component],
+ [$unit("nV")/sqrt(unit("Hz"))$ at $qty(1, "Hz")$],
+
+ [$upright(f)_c$], [Noise corner frequency ($1/upright(f)$ to white)], [$unit("Hz")$],
+
+ [$upright(V)_n$], [Total noise voltage], [$unit("V") upright("RMS")$],
+ [$upright("CNI")$], [Current noise index (potentiometers)], [$unit("dB")$],
+ ),
+ caption: [Noise quantities],
+) <table-noise-quantities>
+
+==== Time domain and modulation quantities
+<time-domain-and-modulation-quantities>
+
+#figure(
+ table(
+ columns: 3,
+ table.header([Symbol], [Definition], [Typical unit]),
+ [$upright(D)$], [Duty cycle], [$unit("percent")$ or dimensionless],
+ [$upright(f)_"carrier"$], [Carrier frequency], [$unit("Hz")$],
+ [$upright(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")$],
+
+ [$upright(t)_"settle"$], [Settling time], [$unit("s")$],
+ [$upright(t)_h$], [Timing jitter], [$unit("ps")$ or $unit("ns")$],
+ ),
+ caption: [Time domain and modulation quantities],
+) <table-time-domain-and-modulation-quantities>
+
+==== Thermal quantities <thermal-quantites>
+
+#figure(
+ table(
+ columns: 3,
+ table.header([Symbol], [Definition], [Typical unit]),
+ [$upright(T)$], [Temperature (absolute)], [$unit("K")$],
+ [$delta upright(T)$], [Temperature difference], [$unit("celsius")$ or $unit("K")$],
+
+ [$(Delta upright(T))/(upright(d) y)$], [Vertical temperature gradient], [$unit("celsius per centimeter")$],
+
+ [$theta_"conv"$], [Convective thermal resistance], [$unit("celsius per watt")$],
+
+ [$theta_"cond"$], [Conductive thermal resistance], [$unit("celsius per watt")$],
+
+ [$accent(Q, dot)$], [Heat flux], [$unit("W")$],
+ [$accent(upright(m), dot)$], [Mass flow rate], [$unit("kilo gram per second")$],
+
+ [$upright(c)_p$], [Specific heat capacity], [$unit("J")/(unit("kg") unit("K"))$],
+ ),
+ caption: [Thermal quantities],
+) <table-thermal-quantities>
+
+==== Mathematical operators and functions <mathematical-operators-and-functions>
+
+#figure(
+ table(
+ columns: 2,
+ table.header([Notation], [Meaning]),
+ [$sum$], [Summation],
+ [$product$], [Product],
+ [$sqrt("")$], [Square root],
+ [$dvp(y, x)$], [Partial derivative of $y$ with respect to $x$],
+ [$dv(y, x)$], [Total derivative of $y$ with respect to $x$],
+ [$integral$], [Integral],
+ [$log_10$], [Common logarithm (base $10$)],
+ [$ln$], [Natural logarithm (base $e$)],
+ [$exp$], [Exponential function],
+ [$abs(x)$], [Absolute value of $x$],
+ [$x mod y$], [Modulo operation (remainder of $x$ divided by $y$)],
+ [$in$], [Element of a set],
+ [$upright("RSS")$], [Root-sum-square: $sqrt(x_1^2 + x_2^2 + ... + x_n^2)$],
+ ),
+ caption: [Mathematical operators and functions],
+) <table-mathematical-operators-and-functions>
+
+==== Unit prefixes <unit-prefixes>
+
+Standard SI prefixes are used throughout:
+
+#figure(
+ table(
+ columns: 3,
+ table.header([Prefix], [Symbol], [Factor]),
+ [tera], [$upright(T)$], [$10^12$],
+ [giga], [$upright(G)$], [$10^9$],
+ [mega], [$upright(M)$], [$10^6$],
+ [kilo], [$upright(k)$], [$10^3$],
+ [], [], [$10^0$],
+ [milli], [$upright(m)$], [$10^(-3)$],
+ [micro], [$upright(mu)$], [$10^(-6)$],
+ [nano], [$upright(n)$], [$10^(-9)$],
+ [pico], [$upright(p)$], [$10^(-12)$],
+ [femto], [$upright(f)$], [$10^(-15)$],
+ ),
+ caption: [Unit prefixes],
+) <table-unit-prefixes>
+
+==== Special notation conventions <special-notation-conventions>
+
+/ Parts per million ($unit("ppm")$): Dimensionless ratio equal to $10^(-6)$.
+ Used for expressing small fractional errors.
+ / Example: $qty(10, "ppm") "of" qty(20, "V") = qty(200, "uV")$.
+/ Parts per billion ($unit("ppb")$): Dimensionless ratio equal to $10^(-9)$.
+ Used for expressing frequency stability of precision oscillators.
+/ Decibels ($unit("dB")$): Logarithmic ratio.
+ / For voltage or amplitude ratios:
+ $unit("dB") = 20 log_10(upright(V)_1/upright(V)_2)$.
+ / For power ratios: $unit("dB") = 10 log_10(upright(P)_1/upright(P)_2)$.
+/ $unit("dBc")/unit("Hz")$: Phase noise specification. Power spectral density of
+ phase fluctuations relative to carrier power, per hertz of bandwidth.
+/ Subscript conventions for matched pairs: When two components are matched,
+ subscripts 1 and 2 (or A and B) denote individual components, while the ratio
+ $upright(R)_1/upright(R)_2$ denotes the matched ratio whose tolerance is
+ tighter than either individual tolerance.
+/ Temperature in calculations: Noise calculations use absolute temperature
+ (Kelvin). Temperature coefficients use Celsius ($unit("celsius")$), since only
+ temperature differences matter and $Delta upright(T)$ in Kelvin equals
+ $Delta upright(T)$ in Celsius.
+/ Frequency-domain notation: Transfer functions are expressed in the Laplace
+ domain with the complex frequency variable $s = sigma + j omega$, where
+ $j = sqrt(−1)$. For sinusoidal steady-state analysis, $s = j omega$.
+
+=== Error and precision terminology <error-and-precision-terminology>
+
+/ Error: Any deviation of an actual output from its ideal mathematical value.
+ Errors are classified by their time dependence (static vs. drift), signal
+ dependence (offset, gain, nonlinearity), and statistical character (systematic
+ vs. random).
+/ Systematic Error: A deterministic deviation that could, in principle, be
+ predicted and corrected if all influence quantities were known. Systematic
+ errors contribute to the precision budget. Examples include resistor
+ temperature coefficients and op-amp offset voltage.
+/ Random Error: A fundamentally unpredictable deviation arising from thermal
+ agitation, quantum fluctuations, or chaotic dynamics. Random errors contribute
+ to the noise budget. Examples include thermal noise and shot noise.
+/ Offset Error: A constant additive error independent of signal amplitude. An
+ offset error adds a fixed voltage to the output regardless of input level.
+/ Gain Error: An error proportional to signal amplitude. A gain error multiplies
+ the output by a factor deviating from the ideal unity or specified gain.
+/ Nonlinearity Error: An error that depends on signal amplitude in a complex,
+ non-proportional way. Nonlinearity errors introduce harmonic distortion and
+ intermodulation products.
+/ Static Error: An error that is constant over the timescale of a measurement or
+ computation. Static errors can be calibrated out at a single point in time.
+/ Drift: A time-varying systematic error that changes either deterministically
+ (as with temperature-driven parameter changes) or stochastically (as with
+ flicker noise). Drift errors require continuous compensation or periodic
+ recalibration.
+/ Drift Rate: The rate at which a parameter changes over time, typically
+ specified in $unit("ppm per hour")$. The SAME Metrologic tier specifies a
+ maximum drift rate of $qty(0.014, "ppm per hour")$.
+/ Precision: A measure of how closely repeated measurements or computations
+ agree with each other, expressed as the maximum acceptable deviation from the
+ ideal value. The SAME Metrologic tier specifies $qty(10, "ppm")$
+ ($qty(0.001, "percent")$) precision.
+/ Accuracy: A measure of how closely a measurement or computation agrees with
+ the true value. In SAME, accuracy is defined relative to the
+ $plus.minus qty(10.0000, "V")$ system reference.
+/ Signal-to-Noise Ratio ($upright("SNR")$): The ratio of signal power to noise
+ power, typically expressed in decibels. The SAME Metrologic tier specifies
+ $qty(90, "dB") upright("SNR")$, corresponding to approximately
+ $qty(632, "uV") upright("RMS")$ noise referred to the $qty(20, "Vpp")$ signal
+ range.
+/ Referred-to-Input ($upright("RTI")$): An error specification expressed as an
+ equivalent error at the circuit input. $upright("RTI")$ allows comparison of
+ errors across stages with different gains.
+/ Referred-to-Output ($upright("RTO")$): An error specification expressed at the
+ circuit output. $upright("RTO")$ is the natural choice for specifications that
+ must be met at the output.
+/ Noise Gain: The gain seen by error sources at the amplifier input, which
+ differs from signal gain in inverting configurations. For an inverting
+ amplifier with feedback resistor $upright(R)_upright(f)$ and input resistor
+ $upright(R)_"in"$, noise gain equals
+ $1 + upright(R)_upright(f)/upright(R)_"in"$.
+/ Error Budget: A systematic accounting of all error sources and their
+ contributions to total system error. Errors are typically combined by
+ root-sum-square ($upright("RSS")$) for independent sources or algebraic sum
+ for correlated sources.
+
+=== Component terminology <component-terminology>
+
+/ Temperature Coefficient (Tempco): The rate at which a component parameter
+ changes with temperature, typically specified in $unit("ppm per celsius")$.
+ Lower tempco indicates greater temperature stability.
+/ Voltage Coefficient of Resistance ($upright(V)_"CR"$): The rate at which
+ resistance changes with applied voltage, specified in $unit("ppm")/unit("V")$
+ or $unit("ppm")/unit("V")_2$. $upright(V)_"CR"$ creates nonlinearity in
+ circuits with signal-dependent voltage across resistors.
+/ Voltage Coefficient of Capacitance ($upright(V)_"CC"$): The rate at which
+ capacitance changes with applied voltage. Class 2 ceramic capacitors (X7R,
+ X5R) can exhibit $upright(V)_"CC"$ of
+ $qtyrange(-30, -80, "percent", delimiter: "\"to\"")$ at rated voltage, making
+ them unsuitable for signal paths.
+/ Dielectric Absorption ($upright("DA")$): A memory effect in capacitors where
+ rapid charge/discharge cycles leave residual polarization that manifests as
+ unpredictable voltage contributions. Film capacitors (polypropylene,
+ polystyrene) have $upright("DA")$ below $qty(0.05, "percent")$.
+/ Seebeck Effect: The thermoelectric effect where a temperature difference
+ across a junction of dissimilar metals produces a voltage. Seebeck voltages at
+ solder joints can contribute significant offset errors if thermal gradients
+ exist.
+/ Seebeck Coefficient: The voltage generated per degree of temperature
+ difference at a thermocouple junction, specified in
+ $unit("micro volt per celsius")$. Copper-to-Kovar junctions have coefficients
+ around $qty(40, "micro volt per celsius")$.
+/ Matched Components: Components fabricated together on a common substrate or
+ selected to have closely tracking parameter values. Matching reduces ratio
+ errors even when absolute tolerances are significant.
+/ Ratio Tolerance: The tolerance on the ratio of two matched component values,
+ which is typically much tighter than individual absolute tolerances. Thin-film
+ resistor networks achieve ratio tolerances of $qty(0.01, "percent")$
+ ($qty(100, "ppm")$) or better.
+/ Tracking Temperature Coefficient: The difference in temperature coefficients
+ between matched components. Well-matched components have tracking tempcos
+ below $qty(2, "ppm per celsius")$ even when individual tempcos are
+ $qty(25, "ppm per celsius")$.
+
+=== Amplifier and circuit terminology <amplifier-and-circuit-terminology>
+
+/ Input Offset Voltage ($upright(V)_"OS"$): The DC voltage that must be applied
+ between an op-amp's inputs to force the output to zero. $upright(V)_"OS"$
+ appears as an error at the input that is multiplied by the noise gain.
+/ Input Bias Current ($upright(I)_upright(B)$): The DC current flowing into or
+ out of an op-amp's input terminals required to bias the input stage. Bias
+ current through source impedances creates voltage errors.
+/ Input Offset Current ($upright(I)_"OS"$): The difference between the bias
+ currents at an op-amp's two input terminals. Balancing source impedances can
+ reduce bias current error to offset current error.
+/ Common-Mode Rejection Ratio ($upright("CMRR")$): The ratio of differential
+ gain to common-mode gain, expressing an amplifier's ability to reject signals
+ that appear equally on both inputs. High $upright("CMRR")$
+ ($gt qty(120, "dB")$) is essential for precision differential measurements.
+/ Power Supply Rejection Ratio ($upright("PSRR")$): The ratio of differential
+ gain to power supply gain, expressing an amplifier's immunity to supply
+ voltage variations. $upright("PSRR")$ degrades with frequency, making
+ high-frequency supply noise more problematic.
+/ Open-Loop Gain ($upright(A)_"OL"$): The gain of an amplifier without feedback,
+ typically $106$ to $108$ ($qtyrange(120, 160, "dB")$) for precision op-amps.
+ Finite open-loop gain creates closed-loop gain error proportional to
+ $upright(G)_"ideal"/upright(A)_"OL"$.
+/ Gain-Bandwidth Product ($upright("GBW")$): The product of an op-amp's DC
+ open-loop gain and the frequency at which open-loop gain falls to unity. For a
+ single-pole op-amp, $upright("GBW")$ is constant and determines gain error at
+ frequency.
+/ Slew Rate: The maximum rate of change of an op-amp's output voltage, typically
+ specified in $unit("volt per micro second")$. Insufficient slew rate causes
+ distortion for large, fast signals.
+/ Settling Time: The time required for an amplifier output to settle within a
+ specified error band after a step input. Settling to $qty(10, "ppm")$
+ typically requires $10$-$20$ time constants.
+/ Chopper Stabilization: A technique that eliminates low-frequency errors by
+ periodically reversing signal polarity and correcting for the resulting
+ offset. Chopper-stabilized amplifiers achieve offset drifts below
+ $qty(0.05, "micro volt per celsius")$.
+/ Loop Gain: The product of forward gain $upright(A)$ and feedback factor $beta$ in a
+ feedback system. Loop gain determines error suppression: errors in the forward
+ path are divided by $(1 + upright(A) beta)$.
+
+=== Computation terminology <computation-terminology>
+
+/ Ratiometric Design: A design methodology where computations depend on
+ component ratios rather than absolute values. Ratiometric designs achieve
+ precision far exceeding individual component tolerances.
+/ Implicit Computation: A design methodology where results emerge from the
+ equilibrium condition of a feedback system rather than from explicit
+ calculation. Implicit computation exploits high loop gain to achieve precision
+ exceeding that of explicit approaches.
+/ Explicit Computation: A design methodology where results are calculated by
+ applying known operations sequentially. Errors accumulate through the
+ computation chain.
+/ Summing Divider: An implicit computation topology that computes the ratio of
+ two current sums, implementing division through feedback equilibrium rather
+ than explicit divider circuitry.
+/ Virtual Ground: A circuit node maintained at ground potential by op-amp
+ feedback, despite signal currents flowing through it. The accuracy of a
+ virtual ground depends on the op-amp's open-loop gain.
+/ Summing Junction: The node at an op-amp's inverting input in a summing
+ amplifier configuration, where input currents sum to zero (Kirchhoff's current
+ law). Also called a summing node.
+
+=== Time-domain and modulation terminology
+<time-domain-and-modulation-terminology>
+
+/ Pulse-Width Amplitude Modulation (PWAM): A modulation technique where one
+ multiplicand is encoded as the duty cycle of a pulse train, enabling
+ multiplication through time-domain encoding rather than amplitude-domain
+ multiplication.
+/ Duty Cycle: The fraction of a period during which a pulse signal is high. In
+ PWAM, the duty cycle encodes signal amplitude: $qty(50, "percent")$
+ corresponds to zero, $qty(0, "percent")$ to $minus upright(V)_"ref"$, and
+ $qty(100, "percent")$ to $plus upright(V)_"ref"$.
+/ Carrier Frequency: The frequency of the triangle wave or pulse train used in
+ PWAM modulation. The SAME specification uses a $qty(500, "kHz")$ carrier
+ derived from the $qty(10, "MHz")$ Master Oscillator.
+/ Master Oscillator: The system-wide $qty(10, "MHz")$ sine wave reference
+ distributed to all modules for time-domain computations. The Master Oscillator
+ provides frequency stability of $plus.minus qty(10, "ppb")$ using an
+ oven-controlled crystal oscillator (OCXO).
+/ Stagger: The phase offset applied to PWAM carriers in adjacent modules to
+ prevent intermodulation between neighboring switching frequencies. The Stagger
+ rail indicates whether a module should operate at $qty(0, "degree")$ or
+ $qty(90, "degree")$ phase relative to the Master Oscillator.
+/ Phase Noise: Random fluctuations in the phase of an oscillator signal, which
+ manifest as timing jitter. Low phase noise ($lt.eq qty(-140, "dBc per hertz")$
+ at $qty(1, "kHz")$ offset) is essential for high-precision PWAM.
+/ Jitter: Random variations in the timing of signal transitions. Clock jitter
+ converts directly to amplitude noise in PWAM systems.
+
+=== Thermal terminology <thermal-terminology>