diff options
| author | Denis Chevalier <perso@denischevalier.fr> | 2026-08-08 21:23:49 +0200 |
|---|---|---|
| committer | Denis Chevalier <perso@denischevalier.fr> | 2026-08-08 21:23:49 +0200 |
| commit | b05bbf41c829353a70accfdad0c8006ccef11b3a (patch) | |
| tree | 43e69f6b4092a0d1c1ca7eba7a6201e980405302 | |
| parent | a84b093b1b6af76ede248acf3b4d4f0b0bfee417 (diff) | |
| download | same-b05bbf41c829353a70accfdad0c8006ccef11b3a.tar.gz same-b05bbf41c829353a70accfdad0c8006ccef11b3a.tar.bz2 same-b05bbf41c829353a70accfdad0c8006ccef11b3a.zip | |
write 4.1 and 4.2
| -rw-r--r-- | electrical-specifications.typ | 14 | ||||
| -rw-r--r-- | mechanical-specifications.typ | 86 | ||||
| -rw-r--r-- | module-design.typ | 873 |
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, "pe |
