From b28f97f3526859633fde603764b827389279d10f Mon Sep 17 00:00:00 2001 From: Denis Chevalier Date: Mon, 10 Aug 2026 22:32:38 +0200 Subject: extract figures in separate files --- tables/backplane-connector.typ | 22 +++++++++++++++ ...electric-absorption-noise-typical-magnitude.typ | 15 ++++++++++ tables/cassette-construction-parameters.typ | 12 ++++++++ tables/cassette-external-dimensions.typ | 32 +++++++++++++++++++++ tables/cassette-internal-dimensions.typ | 12 ++++++++ tables/cassette-ventilation.typ | 18 ++++++++++++ tables/chassis-capacity.typ | 14 +++++++++ tables/chassis-cassette-rails-geometry.typ | 18 ++++++++++++ tables/chassis-cassette-rails-retention.typ | 12 ++++++++ tables/chassis-compliance.typ | 10 +++++++ tables/chassis-cooling-method.typ | 10 +++++++ tables/chassis-emi-shielding.typ | 15 ++++++++++ tables/chassis-front-panel-elements.typ | 33 ++++++++++++++++++++++ tables/chassis-grounding.typ | 13 +++++++++ tables/chassis-mains-isolation.typ | 13 +++++++++ tables/chassis-material.typ | 13 +++++++++ tables/chassis-module-interface-dimensions.typ | 17 +++++++++++ tables/chassis-ventilation.typ | 14 +++++++++ tables/circuit-and-component-parameters.typ | 32 +++++++++++++++++++++ tables/crosstalk-typical-magnitude.typ | 16 +++++++++++ tables/db-25-connector-cutout.typ | 26 +++++++++++++++++ tables/drift-rate-derivation.typ | 14 +++++++++ tables/electrical-quantities.typ | 21 ++++++++++++++ tables/error-and-precision-quantities.typ | 28 ++++++++++++++++++ tables/error-budgeting-introduction.typ | 14 +++++++++ tables/examples-of-error-gates.typ | 12 ++++++++ tables/fundamental-constants.typ | 13 +++++++++ ...ses-and-parasitic-effects-typical-magnitude.typ | 30 ++++++++++++++++++++ tables/loading-error.typ | 13 +++++++++ tables/mathematical-operators-and-functions.typ | 22 +++++++++++++++ tables/noise-quantities.typ | 23 +++++++++++++++ tables/opamp-current-noise-typical-magnitude.typ | 14 +++++++++ tables/opamp-voltage-noise-typical-magnitudes.typ | 16 +++++++++++ tables/out-of-domain-handling-strategies.typ | 16 +++++++++++ tables/panels-geometry.typ | 15 ++++++++++ tables/panels-grid-component-placement-rules.typ | 14 +++++++++ tables/panels-grid-origin.typ | 15 ++++++++++ tables/panels-grid-positions.typ | 25 ++++++++++++++++ tables/panels-jacks-color-coding.typ | 16 +++++++++++ tables/panels-labbeling.typ | 17 +++++++++++ tables/panels-zones.typ | 14 +++++++++ tables/pcb-board-stackup.typ | 28 ++++++++++++++++++ tables/pcb-earth-ring-geometry.typ | 13 +++++++++ tables/pcb-electrical-testing-requirements.typ | 15 ++++++++++ tables/pcb-ground-planes-agnd-plane.typ | 13 +++++++++ tables/pcb-ground-planes-dgnd-zone.typ | 13 +++++++++ ...cb-interconnect-zones-zone-a-pin-assignment.typ | 21 ++++++++++++++ tables/pcb-interconnect-zones-zone-a.typ | 19 +++++++++++++ tables/pcb-interconnect-zones-zone-b.typ | 14 +++++++++ .../pcb-keep-out-zones-mounting-holes-keep-out.typ | 11 ++++++++ tables/pcb-keep-out-zones-perimeter-keep-out.typ | 13 +++++++++ ...cb-mounting-strategy-mounting-holes-pattern.typ | 14 +++++++++ ...-mounting-strategy-mounting-holes-positions.typ | 13 +++++++++ tables/pcb-mounting-strategy.typ | 13 +++++++++ tables/pcb-power-planes.typ | 16 +++++++++++ tables/pcb-silkscreen-requirements-l1.typ | 14 +++++++++ tables/pcb-silkscreen-requirements-l4.typ | 12 ++++++++ tables/pcb-standard-dimensions.typ | 16 +++++++++++ tables/pcb-surface-finish.typ | 18 ++++++++++++ ...eter-wiper-noise-and-wear-typical-magnitude.typ | 30 ++++++++++++++++++++ tables/power-distribution-board-functions.typ | 24 ++++++++++++++++ tables/power-distribution-board-power-entry.typ | 14 +++++++++ ...wer-supply-noise-coupling-typical-magnitude.typ | 12 ++++++++ .../precision-measurements-conditions-summary.typ | 30 ++++++++++++++++++++ tables/precision-tiers-summary.typ | 23 +++++++++++++++ tables/protective-earth.typ | 13 +++++++++ tables/selv-circuits.typ | 12 ++++++++ tables/snr-and-noise-floor-resolution.typ | 12 ++++++++ tables/thermal-quantities.typ | 22 +++++++++++++++ tables/time-domain-and-modulation-quantities.typ | 17 +++++++++++ tables/unit-prefixes.typ | 17 +++++++++++ .../voltage-and-current-subscript-conventions.typ | 22 +++++++++++++++ 72 files changed, 1243 insertions(+) create mode 100644 tables/backplane-connector.typ create mode 100644 tables/capacitor-dielectric-absorption-noise-typical-magnitude.typ create mode 100644 tables/cassette-construction-parameters.typ create mode 100644 tables/cassette-external-dimensions.typ create mode 100644 tables/cassette-internal-dimensions.typ create mode 100644 tables/cassette-ventilation.typ create mode 100644 tables/chassis-capacity.typ create mode 100644 tables/chassis-cassette-rails-geometry.typ create mode 100644 tables/chassis-cassette-rails-retention.typ create mode 100644 tables/chassis-compliance.typ create mode 100644 tables/chassis-cooling-method.typ create mode 100644 tables/chassis-emi-shielding.typ create mode 100644 tables/chassis-front-panel-elements.typ create mode 100644 tables/chassis-grounding.typ create mode 100644 tables/chassis-mains-isolation.typ create mode 100644 tables/chassis-material.typ create mode 100644 tables/chassis-module-interface-dimensions.typ create mode 100644 tables/chassis-ventilation.typ create mode 100644 tables/circuit-and-component-parameters.typ create mode 100644 tables/crosstalk-typical-magnitude.typ create mode 100644 tables/db-25-connector-cutout.typ create mode 100644 tables/drift-rate-derivation.typ create mode 100644 tables/electrical-quantities.typ create mode 100644 tables/error-and-precision-quantities.typ create mode 100644 tables/error-budgeting-introduction.typ create mode 100644 tables/examples-of-error-gates.typ create mode 100644 tables/fundamental-constants.typ create mode 100644 tables/inductor-losses-and-parasitic-effects-typical-magnitude.typ create mode 100644 tables/loading-error.typ create mode 100644 tables/mathematical-operators-and-functions.typ create mode 100644 tables/noise-quantities.typ create mode 100644 tables/opamp-current-noise-typical-magnitude.typ create mode 100644 tables/opamp-voltage-noise-typical-magnitudes.typ create mode 100644 tables/out-of-domain-handling-strategies.typ create mode 100644 tables/panels-geometry.typ create mode 100644 tables/panels-grid-component-placement-rules.typ create mode 100644 tables/panels-grid-origin.typ create mode 100644 tables/panels-grid-positions.typ create mode 100644 tables/panels-jacks-color-coding.typ create mode 100644 tables/panels-labbeling.typ create mode 100644 tables/panels-zones.typ create mode 100644 tables/pcb-board-stackup.typ create mode 100644 tables/pcb-earth-ring-geometry.typ create mode 100644 tables/pcb-electrical-testing-requirements.typ create mode 100644 tables/pcb-ground-planes-agnd-plane.typ create mode 100644 tables/pcb-ground-planes-dgnd-zone.typ create mode 100644 tables/pcb-interconnect-zones-zone-a-pin-assignment.typ create mode 100644 tables/pcb-interconnect-zones-zone-a.typ create mode 100644 tables/pcb-interconnect-zones-zone-b.typ create mode 100644 tables/pcb-keep-out-zones-mounting-holes-keep-out.typ create mode 100644 tables/pcb-keep-out-zones-perimeter-keep-out.typ create mode 100644 tables/pcb-mounting-strategy-mounting-holes-pattern.typ create mode 100644 tables/pcb-mounting-strategy-mounting-holes-positions.typ create mode 100644 tables/pcb-mounting-strategy.typ create mode 100644 tables/pcb-power-planes.typ create mode 100644 tables/pcb-silkscreen-requirements-l1.typ create mode 100644 tables/pcb-silkscreen-requirements-l4.typ create mode 100644 tables/pcb-standard-dimensions.typ create mode 100644 tables/pcb-surface-finish.typ create mode 100644 tables/potentiometer-wiper-noise-and-wear-typical-magnitude.typ create mode 100644 tables/power-distribution-board-functions.typ create mode 100644 tables/power-distribution-board-power-entry.typ create mode 100644 tables/power-supply-noise-coupling-typical-magnitude.typ create mode 100644 tables/precision-measurements-conditions-summary.typ create mode 100644 tables/precision-tiers-summary.typ create mode 100644 tables/protective-earth.typ create mode 100644 tables/selv-circuits.typ create mode 100644 tables/snr-and-noise-floor-resolution.typ create mode 100644 tables/thermal-quantities.typ create mode 100644 tables/time-domain-and-modulation-quantities.typ create mode 100644 tables/unit-prefixes.typ create mode 100644 tables/voltage-and-current-subscript-conventions.typ (limited to 'tables') diff --git a/tables/backplane-connector.typ b/tables/backplane-connector.typ new file mode 100644 index 0000000..13de504 --- /dev/null +++ b/tables/backplane-connector.typ @@ -0,0 +1,22 @@ +#import "../lib/unify.typ": qty + +#figure( + table( + columns: 4, + table.header([Pin], [Signal], [Pin], [Signal]), + [1], [$plus qty(15.00, "V")$], [14], [AGND], + [2], [$plus qty(15.00, "V")$], [15], [AGND], + [3], [$qty(-15.00, "V")$], [16], [AGND], + [4], [$qty(-15.00, "V")$], [17], [DGND], + [5], [AGND], [18], [DGND], + [6], [AGND], [19], [$plus qty(5.0, "VD")$], + [7], [AGND], [20], [$qty(-5.0, "VD")$], + [8], [$plus qty(10.0000, "V")$ Force], [21], [Stagger], + [9], [$plus qty(10.0000, "V")$ Sense], [22], [_Reserved_], + [10], [$qty(-10.0000, "V")$ Force], [23], [_Reserved_], + [11], [$qty(-10.0000, "V")$ Sense], [24], [_Reserved_], + [12], [AGND], [25], [Chassis Earth], + [13], [AGND], [Shell], [Chassis Earth], + ), + caption: "DB-25 backplane connector pin allocation", +) diff --git a/tables/capacitor-dielectric-absorption-noise-typical-magnitude.typ b/tables/capacitor-dielectric-absorption-noise-typical-magnitude.typ new file mode 100644 index 0000000..7eedc31 --- /dev/null +++ b/tables/capacitor-dielectric-absorption-noise-typical-magnitude.typ @@ -0,0 +1,15 @@ +#import "../lib/unify.typ": qty + +#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], +) diff --git a/tables/cassette-construction-parameters.typ b/tables/cassette-construction-parameters.typ new file mode 100644 index 0000000..e808355 --- /dev/null +++ b/tables/cassette-construction-parameters.typ @@ -0,0 +1,12 @@ +#import "../lib/unify.typ": qty + +#figure( + table( + columns: 2, + table.header([Parameter], [Value]), + [Material], [DC01 cold-rolled steel (EN 10130)], + [Thickness], [$qty(1.2, "mm")$], + [Finish], [Matte black powder coard (RAL 9005), all surfaces], + ), + caption: [Cassette construction parameters], +) diff --git a/tables/cassette-external-dimensions.typ b/tables/cassette-external-dimensions.typ new file mode 100644 index 0000000..982c9bc --- /dev/null +++ b/tables/cassette-external-dimensions.typ @@ -0,0 +1,32 @@ +#import "../lib/unify.typ": qty + +#figure( + table( + columns: 4, + table.header([Dimension], [Value], [Tolerance], [Note]), + [Panel height], + [$qty(177.8, "mm")$ ($qty(4, "U"), qty(7, "inch")$)], + [$plus.minus qty(0.1, "mm")$], + [Full rack unit height], + + [Grid pitch], + [$qty(38.1, "mm")$ ($qty(1.5, "inch")$)], + [N/A], + [Theoretical center to center spacing. Two columns of banana jacks + ($qty(0.75, "inch")$ grid)], + + [Panel Width], + [$qty(38.0, "mm")$ ($qty(1.5, "inch")$)], + [$+0.0 "/" -0.1 "mm"$], + [Undersized to accomodate paint thickness and thermal expansion], + + [Body height], [$qty(165.1, "mm")$, ($qty(6.5, "inch")$)], [$plus.minus qty(0.1, "mm")$], [Fits between rails], + + [Body width], [$qty(38.0, "mm")$ ($qty(1.5, "inch")$)], [$+0.0 "/" -0.1 "mm"$], [Same as panel], + + [Depth], [$qty(152.4, "mm")$ ($qty(6, "inch")$)], [$plus.minus qty(0.2, "mm")$], [Front to rear], + + [Lip height], [$qty(6.35, "mm")$ ($qty(0.25, "inch")$)], [N/A], [Top and bottom], + ), + caption: [Cassette external dimensions], +) diff --git a/tables/cassette-internal-dimensions.typ b/tables/cassette-internal-dimensions.typ new file mode 100644 index 0000000..400bed7 --- /dev/null +++ b/tables/cassette-internal-dimensions.typ @@ -0,0 +1,12 @@ +#import "../lib/unify.typ": qty + +#figure( + table( + columns: 2, + table.header([Dimension], [Value]), + [Height], [$qty(162.7, "mm")$], + [Width], [$qty(35.6, "mm")$], + [Depth], [$qty(150, "mm")$], + ), + caption: [Cassette internal dimensions], +) diff --git a/tables/cassette-ventilation.typ b/tables/cassette-ventilation.typ new file mode 100644 index 0000000..f05acbb --- /dev/null +++ b/tables/cassette-ventilation.typ @@ -0,0 +1,18 @@ +#import "../lib/unify.typ": qty + +#figure( + table( + columns: 2, + table.header([Parameter], [Value]), + [Slot size], [$qty(2.5, "mm") times qty(10, "mm")$], + [Slot orientation], [Length parallel to cassette depth], + [Rows], [$5$], + [Row pitch], [$qty(5, "mm")$], + [Columns], [$12$], + [Column pitch], [$qty(12, "mm")$], + [Slots per face], [$60$], + [Open area], [$approx qty(28, "percent")$], + [Shielding effectiveness], [$gt qty(20, "dB") "to" qty(1, "GHz")$], + ), + caption: [Cassette ventilation specifications], +) diff --git a/tables/chassis-capacity.typ b/tables/chassis-capacity.typ new file mode 100644 index 0000000..8fc8248 --- /dev/null +++ b/tables/chassis-capacity.typ @@ -0,0 +1,14 @@ +#import "../lib/unify.typ": qty + +#figure( + table( + columns: 3, + table.header([Capacity], [Power budget], [Notes]), + [Per module], [$qty(185, "mA") at plus.minus qty(15, "V")$], [Maximum per position], + + [Per module], [$qty(100, "mA") at plus.minus qty(5, "VD")$], [Maximum per position], + + [Total], [Scales with capacity], [Power distribution must support all positions], + ), + caption: [Chassis capacity power requirements], +) diff --git a/tables/chassis-cassette-rails-geometry.typ b/tables/chassis-cassette-rails-geometry.typ new file mode 100644 index 0000000..2e8c3a0 --- /dev/null +++ b/tables/chassis-cassette-rails-geometry.typ @@ -0,0 +1,18 @@ +#import "../lib/unify.typ": qty + +#figure( + table( + columns: 3, + table.header([Parameter], [Value], [Notes]), + [Rail height], [$qty(6.35, "mm")$ ($qty(0.25, "inch")$)], [Matches cassette lip height], + + [Channel width], + [$qty(38.1, "mm")$ ($qty(1.5, "inch")$) $plus 0.2 "/" minus qty(0.0, "mm")$], + [Accepts cassette body with clearance], + + [Channel depth], [$qty(5, "mm")$ minimum], [Guides cassette during insertion], + + [Rail length], [Full chassis depth], [Front to rear], + ), + caption: [Chassis cassette rails geometry], +) diff --git a/tables/chassis-cassette-rails-retention.typ b/tables/chassis-cassette-rails-retention.typ new file mode 100644 index 0000000..68d95cd --- /dev/null +++ b/tables/chassis-cassette-rails-retention.typ @@ -0,0 +1,12 @@ + +#figure( + table( + columns: 2, + table.header([Method], [Requirement]), + [Friction fit], [Acceptable for stationary installations], + [Positive retention], [Required for portable or vibration-prone environments], + + [Front panel screws], [Optional, into chassis front rail], + ), + caption: [Chassis cassette retention requirements], +) diff --git a/tables/chassis-compliance.typ b/tables/chassis-compliance.typ new file mode 100644 index 0000000..a869543 --- /dev/null +++ b/tables/chassis-compliance.typ @@ -0,0 +1,10 @@ +#figure( + table( + columns: 3, + table.header([Region], [Safety], [EMC]), + [EU], [IEC 62368-1], [EN 55032, EN 55035], + [USA], [UL 62368-1], [FCC Part 15], + [International], [IEC 62368-1], [CISPR 32, CISPR 35], + ), + caption: [Chassis compliance requirements], +) diff --git a/tables/chassis-cooling-method.typ b/tables/chassis-cooling-method.typ new file mode 100644 index 0000000..8497f7a --- /dev/null +++ b/tables/chassis-cooling-method.typ @@ -0,0 +1,10 @@ + +#figure( + table( + columns: 2, + table.header([Method], [Requirement]), + [Passive (convection)], [Minimum for all chassis], + [Active (forced air)], [Optional, for high-capacity or enclosed installations], + ), + caption: [Chassis cooling method requirements], +) diff --git a/tables/chassis-emi-shielding.typ b/tables/chassis-emi-shielding.typ new file mode 100644 index 0000000..0c41800 --- /dev/null +++ b/tables/chassis-emi-shielding.typ @@ -0,0 +1,15 @@ +#import "../lib/unify.typ": qty, qtyrange + +#figure( + table( + 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], + [Ventilation openings], [Maximum slot dimensions: $qty(10, "mm") times qty(2, "mm")$], + + [Cable entry], [Shield connectors or filtered feedthroughs], + ), + caption: [Chassis EMI shielding requirements], +) diff --git a/tables/chassis-front-panel-elements.typ b/tables/chassis-front-panel-elements.typ new file mode 100644 index 0000000..cbd9407 --- /dev/null +++ b/tables/chassis-front-panel-elements.typ @@ -0,0 +1,33 @@ +#import "../lib/unify.typ": qty + +#figure( + table( + columns: 3, + table.header([Element], [Type], [Function]), + [SAME logo], [Label], [N/A], + [SAME license], [Label], [Legal], + [Power switch], [Rocker or toggle], [Mains on/off], + [Standby switch], [Toggle], [Maintains reference ovens temperature], + [Power indicator], [LED], [Indicates power state], + [Standby indicator], [LED], [Indicates standby state], + [$plus qty(10.0000, "V")$ output jack], [4mm banana, yellow], [Reference voltage output], + + [$qty(-10.0000, "V")$ output jack], [4mm banana, blue], [Reference voltage output], + + [$plus qty(10.0000, "V")$ input jack], [4mm banana, white], [Reference voltage input], + + [$qty(-10.0000, "V")$ input jack], [4mm banana, white], [Reference voltage input], + + [AGND jack], [4mm banana, black], [Analog ground reference], + [Dual $qty(10, "MHz")$ sine oscillator output jacks $plus.minus qty(1, "V")$], + [4mm banana, light blue], + [Master oscillator output (independent paths, to allow verification - see @the-time-invariant)], + + [$qty(10, "MHz")$ sine oscillator input jack], [4mm banana, white], [Master oscillator input], + + [Calibration coarse], [Rotary or DIP switch], [Reference voltage coarse adjust], + + [Calibration fine], [Rotary or DIP switch], [Reference voltage fine adjust], + ), + caption: [Chassis front panel elements], +) diff --git a/tables/chassis-grounding.typ b/tables/chassis-grounding.typ new file mode 100644 index 0000000..5a85835 --- /dev/null +++ b/tables/chassis-grounding.typ @@ -0,0 +1,13 @@ +#import "../lib/unify.typ": qty + +#figure( + table( + 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], + [Safety earth], [Connected to mains earth via IEC inlet], + [Module earth path], [Via DB-25 shell and pin 25], + ), + caption: [Chassis grounding requirements], +) diff --git a/tables/chassis-mains-isolation.typ b/tables/chassis-mains-isolation.typ new file mode 100644 index 0000000..e8b07e3 --- /dev/null +++ b/tables/chassis-mains-isolation.typ @@ -0,0 +1,13 @@ +#import "../lib/unify.typ": qty + +#figure( + table( + 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], + [Fusing], [Primary slide, appropriately rated], + [Earth bonding], [Continuous, $lt qty(0.1, "ohm")$ to mains earth], + ), + caption: [Mains isolation requirements], +) diff --git a/tables/chassis-material.typ b/tables/chassis-material.typ new file mode 100644 index 0000000..5dabf65 --- /dev/null +++ b/tables/chassis-material.typ @@ -0,0 +1,13 @@ +#import "../lib/unify.typ": qty + +#figure( + table( + columns: 2, + table.header([Parameter], [Requirement]), + [Material], [Steel (recommended) or aluminum], + [Minimum thickness], [$qty(1.5, "mm")$ (steel) or $qty(2.0, "mm")$ (aluminum)], + + [Finish], [Black powder coat or anodization, conductive areas masked], + ), + caption: [Chassis material requirements], +) diff --git a/tables/chassis-module-interface-dimensions.typ b/tables/chassis-module-interface-dimensions.typ new file mode 100644 index 0000000..8bdcfa8 --- /dev/null +++ b/tables/chassis-module-interface-dimensions.typ @@ -0,0 +1,17 @@ +#import "../lib/unify.typ": qty + +#figure( + table( + columns: 3, + table.header([Parameter], [Value], [Notes]), + [Module pitch], [$qty(38.1, "mm")$ ($qty(1.5, "inch")$)], [Center-to-center spacing], + + [Module opening height], [$qty(177.8, "mm")$ ($qty(4, "U"), qty(7, "inch")$)], [Panel visible area], + + [Module body clearance], [$qty(165.2, "mm")$], [Between top and bottom rails], + + [Module depth], [$qty(152.5, "mm")$], [Front panel to rear connector], + [Rail-to-rail width], [$qty(38.1, "mm")$ ($qty(1.5, "inch")$)], [Center-to-center spacing], + ), + caption: [Module interface dimensions], +) diff --git a/tables/chassis-ventilation.typ b/tables/chassis-ventilation.typ new file mode 100644 index 0000000..767e902 --- /dev/null +++ b/tables/chassis-ventilation.typ @@ -0,0 +1,14 @@ +#import "../lib/unify.typ": qty + +#figure( + table( + columns: 2, + table.header([Parameter], [Requirement]), + [Bottom ventilation], [Required, aligned with cassette bottom vents], + [Top ventilation], [Required, aligned with cassette top vents], + [Slot dimensions], [$lt.eq qty(10, "mm") times qty(2, "mm")$ for EMI compliance], + + [Open area], [$gt.eq qty(20, "percent")$ of cassette footprint area], + ), + caption: [Chassis ventilation requirements], +) diff --git a/tables/circuit-and-component-parameters.typ b/tables/circuit-and-component-parameters.typ new file mode 100644 index 0000000..caa0756 --- /dev/null +++ b/tables/circuit-and-component-parameters.typ @@ -0,0 +1,32 @@ +#import "../lib/unify.typ": unit + +#figure( + table( + columns: 3, + table.header([Symbol], [Definition], [Typical unit]), + [$G$], [Gain (closed-loop)], [dimensionless or $unit("dB")$], + [$A$], [Gain (open-loop)], [dimensionless or $unit("dB")$], + [$A_"OL"$], [Open-loop gain (explicit)], [dimensionless], + [$beta$], [Feedback factor], [dimensionless], + [$A beta$], [Loop gain], [dimensionless], + [$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], +) diff --git a/tables/crosstalk-typical-magnitude.typ b/tables/crosstalk-typical-magnitude.typ new file mode 100644 index 0000000..89b840c --- /dev/null +++ b/tables/crosstalk-typical-magnitude.typ @@ -0,0 +1,16 @@ +#import "../lib/unify.typ": qty, qtyrange + +#figure( + table( + columns: 3, + table.header([Coupling mechanism], [Typical magnitude], [Frequency dependence]), + [Capacitive (PCB)], [$qtyrange(0.1, 1, "percent")$ at $qty(20, "kHz")$], [Increases with frequency], + + [Inductive (PCB)], [$qtyrange(0.01, 0.1, "percent")$ at $qty(20, "kHz")$], [Increases with frequency], + + [Ground bounce], [$qtyrange(1, 10, "mV")$], [Depends on transient speed], + [Supply coupling], [$qtyrange(0.1, 1, "mV")$], [Via PSRR], + [Module-to-module], [$lt qty(-60, "dB")$], [Protected by steel cassettes shielding], + ), + caption: [Crosstalk typical magnitudes], +) diff --git a/tables/db-25-connector-cutout.typ b/tables/db-25-connector-cutout.typ new file mode 100644 index 0000000..a866a1a --- /dev/null +++ b/tables/db-25-connector-cutout.typ @@ -0,0 +1,26 @@ +#import "../lib/unify.typ": qty + +#figure( + table( + columns: 2, + table.header([Parameter], [Value]), + [Shape], [D-shaped (standard DB-25 profile)], + + [D-opening width], [$qty(33.3, "mm")$], + + [D-opening height], [$qty(12.5, "mm")$], + + [Mounting hole spacing], [$qty(24.99, "mm")$], + + [Mounting hole size], [$diameter qty(3.2, "mm")$], + + [Center X], [$qty(17.85, "mm")$ from either edge], + + [Center Y], [$qty(82.5, "mm")$ from top/bottom (centered on $qty(165.1, "mm")$)], + + [Connector assembly], [Panel mount with solder cups], + + [Position], [Centered on rear closure], + ), + caption: [Cassette DB-25 connector cutout specifications], +) diff --git a/tables/drift-rate-derivation.typ b/tables/drift-rate-derivation.typ new file mode 100644 index 0000000..bad69cb --- /dev/null +++ b/tables/drift-rate-derivation.typ @@ -0,0 +1,14 @@ +#import "../lib/unify.typ": qty + +#figure( + table( + 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")$], + + [*Industrial*], [$qty(100, "ppm")$], [$qty(0.6, "ppm per hour")$], [$approx qty(7, "day")$], + + [*Metrologic*], [$qty(10, "ppm")$], [$qty(0.014, "ppm per hour")$], [$approx qty(30, "day")$], + ), + caption: [Drift rate derivations], +) diff --git a/tables/electrical-quantities.typ b/tables/electrical-quantities.typ new file mode 100644 index 0000000..dd66889 --- /dev/null +++ b/tables/electrical-quantities.typ @@ -0,0 +1,21 @@ +#import "../lib/unify.typ": unit + +#figure( + table( + columns: 3, + table.header([Symbol], [Definition], [Typical unit]), + [$V$], [Voltage (general)], [$unit(V)$], + [$I$], [Current (general)], [$unit(A)$], + [$R$], [Resistance], [$unit("ohm")$], + [$C$], [Capacitance], [$unit(F)$], + [$L$], [Inductance], [$unit(H)$], + [$P$], [Power], [$unit(W)$], + [$f$], [Frequency], [$unit("Hz")$], + [$omega$], [Angular frequency ($omega = 2 pi f$)], [$unit("radian per second")$], + + [$tau$], [Time constant ($tau = upright("RC") "or" upright("L/R")$)], [$unit(s)$], + + [$upright("BW")$], [Bandwidth], [$unit("Hz")$], + ), + caption: [Electrical quantities], +) diff --git a/tables/error-and-precision-quantities.typ b/tables/error-and-precision-quantities.typ new file mode 100644 index 0000000..34e2252 --- /dev/null +++ b/tables/error-and-precision-quantities.typ @@ -0,0 +1,28 @@ +#import "../lib/unify.typ": unit +#import "@preview/diverential:0.3.0": * + +#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("uVrms")$], + + [$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], +) diff --git a/tables/error-budgeting-introduction.typ b/tables/error-budgeting-introduction.typ new file mode 100644 index 0000000..f05a16e --- /dev/null +++ b/tables/error-budgeting-introduction.typ @@ -0,0 +1,14 @@ +#import "../lib/unify.typ": qty + +#figure( + table( + columns: 2, + table.header([Parameter], [Requirement]), + [Precision], [$qty(10, "ppm")$ ($qty(0.001, "percent")$)], + [Signal-to-noise ratio], [$qty(90, "dB")$], + [Drift rate], [$lt.eq qty(0.014, "ppm per hour")$], + [Bandwidth], [DC to $qty(20, "kHz")$], + [Drift-free operation], [$qty(30, "day")$], + ), + caption: [Summary of metrologic precision tier requirements], +) diff --git a/tables/examples-of-error-gates.typ b/tables/examples-of-error-gates.typ new file mode 100644 index 0000000..6548f0b --- /dev/null +++ b/tables/examples-of-error-gates.typ @@ -0,0 +1,12 @@ +#figure( + table( + columns: 2, + table.header([Source], [Category]), + [Clipping], [Internal], + [PWAM Soft Saturation], [Internal], + [Domain Violation], [Out-of-Domain], + [Passthrough Active], [Out-of-Domain], + [Servo Unlock], [Internal], + ), + caption: [Examples of error gates], +) diff --git a/tables/fundamental-constants.typ b/tables/fundamental-constants.typ new file mode 100644 index 0000000..f8bd599 --- /dev/null +++ b/tables/fundamental-constants.typ @@ -0,0 +1,13 @@ +#import "../lib/unify.typ": num, unit + +#figure( + table( + columns: 4, + table.header([Symbol], [Definition], [Value], [Unit]), + [$k_B$], [Boltzmann constant], [$num("1.381e-23")$], [$unit("joule per kelvin")$], + + [$T$], [Absolute temperature], [N/A], [$unit(K)$], + [$e$], [Elementary charge], [$num("1.603e-19")$], [$unit(C)$], + ), + caption: [Fundamental constants], +) diff --git a/tables/inductor-losses-and-parasitic-effects-typical-magnitude.typ b/tables/inductor-losses-and-parasitic-effects-typical-magnitude.typ new file mode 100644 index 0000000..5f37fb0 --- /dev/null +++ b/tables/inductor-losses-and-parasitic-effects-typical-magnitude.typ @@ -0,0 +1,30 @@ +#import "../lib/unify.typ": qty, qtyrange + +#figure( + table( + columns: 5, + table.header([Inductor type], [$upright("DCR")$], [Core loss ($qty(10, "kHz")$)], [Self-resonance], [Notes]), + [Air core], + [High ($qtyrange(1, 100, "ohm")$)], + [None], + [High ($gt qty(100, "MHz")$)], + [No saturation, no core noise], + + [Ferrite bead], + [$qtyrange(0.1, 1, "ohm")$], + [Very high], + [$qtyrange(10, 100, "MHz")$], + [Designed for loss (filtering)], + + [Ferrite inductor], [$qtyrange(0.1, 10, "ohm")$], [Moderate], [$qtyrange(1, 50, "MHz")$], [General purpose], + + [Powdered iron], [$qtyrange(0.5, 5, "ohm")$], [Low], [$qtyrange(1, 10, "MHz")$], [DC bias tolerant], + + [Laminated steel], + [$qtyrange(0.1, 1, "ohm")$], + [Low at audio rate], + [$qtyrange(0.01, 1, "MHz")$], + [Audio transformers], + ), + caption: [Inductor losses and parasitic effects typical magnitudes], +) diff --git a/tables/loading-error.typ b/tables/loading-error.typ new file mode 100644 index 0000000..fb5b08f --- /dev/null +++ b/tables/loading-error.typ @@ -0,0 +1,13 @@ +#import "../lib/unify.typ": qty + +#figure( + table( + 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")$], + [10], [$qty(100, "kilo ohm")$], [$qty(100, "ppm")$], + [40], [$qty(25, "kilo ohm")$], [$qty(400, "ppm")$], + ), + caption: [Loading error per inputs stacked], +) diff --git a/tables/mathematical-operators-and-functions.typ b/tables/mathematical-operators-and-functions.typ new file mode 100644 index 0000000..d0c93eb --- /dev/null +++ b/tables/mathematical-operators-and-functions.typ @@ -0,0 +1,22 @@ +#import "@preview/diverential:0.3.0": * + +#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], +) diff --git a/tables/noise-quantities.typ b/tables/noise-quantities.typ new file mode 100644 index 0000000..eee4e69 --- /dev/null +++ b/tables/noise-quantities.typ @@ -0,0 +1,23 @@ +#import "../lib/unify.typ": qty, unit + +#figure( + table( + columns: 3, + table.header([Symbol], [Definition], [Typical unit]), + [$e_n$], [Voltage noise spectral density], [$unit("nano volt per shertz")$], + + [$upright(i)_n$], + [Current noise spectral density], + [$unit("pico ampere per shertz")$ or $unit("femto ampere per shertz")$], + + [$e_(n,"white")$], [White noise component], [$unit("nano volt per shertz")$], + + [$e_(n,1/f)$], [$1/f$ noise component], [$unit("nano volt per shertz")$ at $qty(1, "Hz")$], + + [$f_c$], [Noise corner frequency ($1/f$ to white)], [$unit("Hz")$], + + [$V_n$], [Total noise voltage], [$unit("V") upright("RMS")$], + [$upright("CNI")$], [Current noise index (potentiometers)], [$unit("dB")$], + ), + caption: [Noise quantities], +) diff --git a/tables/opamp-current-noise-typical-magnitude.typ b/tables/opamp-current-noise-typical-magnitude.typ new file mode 100644 index 0000000..e317aad --- /dev/null +++ b/tables/opamp-current-noise-typical-magnitude.typ @@ -0,0 +1,14 @@ +#import "../lib/unify.typ": qty + +#figure( + table( + columns: 3, + table.header([Op-amp class], [$i_n$], [Notes]), + [Bipolar (LT1028)], [$qty(1, "pico ampere per shertz")$], [Low voltage noise, moderate current noise], + + [JFET (OPA627)], [$qty(2.5, "femto ampere per shertz")$], [Negligible], + + [CMOS (LMC6001)], [$qty(0.13, "femto ampere per shertz")$], [Negligible], + ), + caption: [Op-amp current noise typical magnitudes], +) diff --git a/tables/opamp-voltage-noise-typical-magnitudes.typ b/tables/opamp-voltage-noise-typical-magnitudes.typ new file mode 100644 index 0000000..f485a37 --- /dev/null +++ b/tables/opamp-voltage-noise-typical-magnitudes.typ @@ -0,0 +1,16 @@ +#import "../lib/unify.typ": qty, unit + +#figure( + table( + columns: 4, + table.header([Op-amp class], [$e_(n,"white")$], [$f_c$], [Notes]), + [General purpose (TL07x)], [$18 unit("nano volt per shertz")$], [$qty(200, "Hz")$], [JFET input], + + [Low noise (OPA211)], [$1.1 unit("nano volt per shertz")$], [$qty(10, "Hz")$], [Bipolar input], + + [Precision low noise (LT1028)], [$0.85 unit("nano volt per shertz")$], [$qty(3.5, "Hz")$], [Bipolar input], + + [Chopper stabilized (LTC2057)], [$7 unit("nano volt per shertz")$], [$lt qty(1, "Hz")$], [No $1/f$ corner], + ), + caption: [Op-amp voltage noise typical magnitudes], +) diff --git a/tables/out-of-domain-handling-strategies.typ b/tables/out-of-domain-handling-strategies.typ new file mode 100644 index 0000000..7294eb3 --- /dev/null +++ b/tables/out-of-domain-handling-strategies.typ @@ -0,0 +1,16 @@ +#import "../lib/unify.typ": qty + +#figure( + table( + columns: 3, + table.header([Strategy], [Description], [Example use cases]), + [Clamp], [Output held at boundary], [Logarithm], + [Hold], [Freeze last valid output], [Integrator], + [Fold], [Reflect at boundary], [Chaotic attractor], + [Wrap], [Wrap around range], [Phase accumulator], + [Oscillate], [Bounded, specified oscillation], [Implicit function solver], + [Zero], [Output $qty(0, "V")$], [Divider], + [Passthrough], [Input passes unchanged], [Signal conditioner], + ), + caption: [Out-of-domain handling stategies], +) diff --git a/tables/panels-geometry.typ b/tables/panels-geometry.typ new file mode 100644 index 0000000..a0e7533 --- /dev/null +++ b/tables/panels-geometry.typ @@ -0,0 +1,15 @@ +#import "../lib/unify.typ": qty + +#figure( + table( + columns: 3, + table.header([Parameter], [Value], [Tolerance]), + [Height], [$qty(177.8, "mm")$ ($qty(4, "U"), qty(7, "inch")$)], [$plus.minus qty(0.1, "mm")$], + + [Width], [$qty(38, "mm")$], [$plus 0.0 "/" qty(-0.1, "mm")$], + [Thickness], [$qty(1.2, "mm")$], [$plus.minus qty(0.1, "mm")$], + [Material], [DC01 cold-rolled steel], [N/A], + [Finish], [Matte black powder coat (RAL 9005)], [N/A], + ), + caption: [Panels geometry], +) diff --git a/tables/panels-grid-component-placement-rules.typ b/tables/panels-grid-component-placement-rules.typ new file mode 100644 index 0000000..39bfde2 --- /dev/null +++ b/tables/panels-grid-component-placement-rules.typ @@ -0,0 +1,14 @@ +#import "../lib/unify.typ": qty + +#figure( + table( + 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")$], + [$qty(3, "mm")$ LED], [Between grid positions], [$diameter qty(3.2, "mm")$], + [Toggle switch], [Any], [Per switch specification], + [Other components], [Centered on grid if possible], [Per component specification], + ), + caption: [Panels grid: component placement rules], +) diff --git a/tables/panels-grid-origin.typ b/tables/panels-grid-origin.typ new file mode 100644 index 0000000..612a075 --- /dev/null +++ b/tables/panels-grid-origin.typ @@ -0,0 +1,15 @@ +#import "../lib/unify.typ": qty + +#figure( + table( + 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)], + [Column pitch], [$qty(19.95, "mm")$ ($qty(0.75, "inch")$)], + [Row pitch], [$qty(19.95, "mm")$ ($qty(0.75, "inch")$)], + [Columns], [$2$], + [Rows], [$8$], + ), + caption: [Panels grid orign], +) diff --git a/tables/panels-grid-positions.typ b/tables/panels-grid-positions.typ new file mode 100644 index 0000000..ab94b87 --- /dev/null +++ b/tables/panels-grid-positions.typ @@ -0,0 +1,25 @@ +#import "../lib/unify.typ": qty + +#figure( + table( + 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")$], + [A2], [$1$], [$2$], [$qty(9.525, "mm")$], [$qty(41.275, "mm")$], + [B2], [$2$], [$2$], [$qty(28.575, "mm")$], [$qty(41.275, "mm")$], + [A3], [$1$], [$3$], [$qty(9.525, "mm")$], [$qty(60.325, "mm")$], + [B3], [$2$], [$3$], [$qty(28.575, "mm")$], [$qty(60.325, "mm")$], + [A4], [$1$], [$4$], [$qty(9.525, "mm")$], [$qty(79.375, "mm")$], + [B4], [$2$], [$4$], [$qty(28.575, "mm")$], [$qty(79.375, "mm")$], + [A5], [$1$], [$5$], [$qty(9.525, "mm")$], [$qty(98.425, "mm")$], + [B5], [$2$], [$5$], [$qty(28.575, "mm")$], [$qty(98.425, "mm")$], + [A6], [$1$], [$6$], [$qty(9.525, "mm")$], [$qty(117.475, "mm")$], + [B6], [$2$], [$6$], [$qty(28.575, "mm")$], [$qty(117.475, "mm")$], + [A7], [$1$], [$7$], [$qty(9.525, "mm")$], [$qty(136.525, "mm")$], + [B7], [$2$], [$7$], [$qty(28.575, "mm")$], [$qty(136.525, "mm")$], + [A8], [$1$], [$8$], [$qty(9.525, "mm")$], [$qty(155.575, "mm")$], + [B8], [$2$], [$8$], [$qty(28.575, "mm")$], [$qty(155.575, "mm")$], + ), + caption: [Panels grid positions], +) diff --git a/tables/panels-jacks-color-coding.typ b/tables/panels-jacks-color-coding.typ new file mode 100644 index 0000000..5bdc5ae --- /dev/null +++ b/tables/panels-jacks-color-coding.typ @@ -0,0 +1,16 @@ +#import "../lib/unify.typ": qty + +#figure( + table( + columns: 2, + table.header([Jack color], [Signal type]), + [White], [Input (bipolar)], + [Light blue], [Output (bipolar)], + [Light yellow], [Output (unipolar)], + [Red], [Output (gate)], + [Yellow], [Output (reference $plus qty(10, "V")$)], + [Blue], [Output (reference $qty(-10, "V")$)], + [Black], [Analog ground], + ), + caption: [Jacks color coding], +) diff --git a/tables/panels-labbeling.typ b/tables/panels-labbeling.typ new file mode 100644 index 0000000..10d7159 --- /dev/null +++ b/tables/panels-labbeling.typ @@ -0,0 +1,17 @@ +#figure( + table( + columns: 3, + table.header([Element], [Requirement], [Location]), + [Module name], [Mandatory], [Top lip], + [Module mathematical function], [Recommended, when applicable], [Above row $1$], + + [Jack function], [Mandatory], [Above or beside jack], + [Jack type], [Mandatory, color-coded jack], [At jack], + [Signal flow], [Recommended, arrows or grouping], [As needed], + [License], [Mandatory], [Below row $8$], + [Version and tier], [Mandatory], [Bottom lip], + [Module designer name or logo], [Optional], [Bottom lip], + [Module builder name or logo], [Optional], [Bottom lip], + ), + caption: [Panels labelling requirements], +) diff --git a/tables/panels-zones.typ b/tables/panels-zones.typ new file mode 100644 index 0000000..971ced2 --- /dev/null +++ b/tables/panels-zones.typ @@ -0,0 +1,14 @@ +#import "../lib/unify.typ": qtyrange + +#figure( + table( + 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], + + [Bottom lip], [$qtyrange(171.45, 177.8, "mm")$], [Extends below cassette body], + ), + caption: [Panels zones], +) diff --git a/tables/pcb-board-stackup.typ b/tables/pcb-board-stackup.typ new file mode 100644 index 0000000..c8cdc22 --- /dev/null +++ b/tables/pcb-board-stackup.typ @@ -0,0 +1,28 @@ +#import "../lib/unify.typ": qty + +#figure( + table( + columns: 4, + table.header([Layer], [Function], [Copper weight], [Notes]), + [L1 (top)], + [Signal + components], + [$qty(1, "oz")$ ($qty(35, "um")$)], + [Component side faces right (toward U-channel)], + + [L2 (inner 1)], + [Ground plane], + [$qty(1, "oz")$ ($qty(35, "um")$)], + [Continuous AGND plane, split for DGND if needed], + + [L3 (inner 2)], + [Power plane], + [$qty(1, "oz")$ ($qty(35, "um")$)], + [Split for $plus.minus qty(15, "V")$, $plus.minus qty(5, "V")$ rails], + + [L4 (bottom)], + [Signal + earth ring], + [$qty(1, "oz")$ ($qty(35, "um")$)], + [Faces left wall (mounting side), digital traces if needed], + ), + caption: [PCB board stackup], +) diff --git a/tables/pcb-earth-ring-geometry.typ b/tables/pcb-earth-ring-geometry.typ new file mode 100644 index 0000000..17138b9 --- /dev/null +++ b/tables/pcb-earth-ring-geometry.typ @@ -0,0 +1,13 @@ +#import "../lib/unify.typ": qty + +#figure( + table( + columns: 3, + table.header([Parameter], [Value], [Notes]), + [Width], [$qty(3.0, "mm")$], [Continuous copper pour], + [Clearance from edge], [$qty(0.5, "mm")$], [Manufacturing tolerance], + [Clearance to inner circuitry], [$qty(2.0, "mm")$], [Isolation gap], + [Layer], [L4 (bottom) only], [Faces mounting wall], + ), + caption: [PCB earth ring geometry], +) diff --git a/tables/pcb-electrical-testing-requirements.typ b/tables/pcb-electrical-testing-requirements.typ new file mode 100644 index 0000000..3c7a299 --- /dev/null +++ b/tables/pcb-electrical-testing-requirements.typ @@ -0,0 +1,15 @@ +#import "../lib/unify.typ": qty + +#figure( + table( + columns: 2, + table.header([Test], [Requirement]), + [Isolation], [$gt qty(100, "mega ohm")$ between unconnected nets], + [Continuity], [All nets per netlist], + [Earth ring isolation], [$gt qty(100, "mega ohm")$ between earth ring and AGND/DGND], + + [Earth ring continuity], + [$lt qty(1, "ohm")$ along entire earth ring perimeter (measure between opposite corners of the ring trace)], + ), + caption: [PCB electrical testing requirements], +) diff --git a/tables/pcb-ground-planes-agnd-plane.typ b/tables/pcb-ground-planes-agnd-plane.typ new file mode 100644 index 0000000..3399fdc --- /dev/null +++ b/tables/pcb-ground-planes-agnd-plane.typ @@ -0,0 +1,13 @@ +#import "../lib/unify.typ": qty + +#figure( + table( + columns: 2, + table.header([Parameter], [Value]), + [Layer], [L2 (inner 1)], + [Coverage], [Minimum $qty(85, "percent")$ of signal area], + [Splits], [Only if DGND zone required], + [Connection], [Via stitching to AGND traces & pads on L1 and L4], + ), + caption: [PCB AGND plane], +) diff --git a/tables/pcb-ground-planes-dgnd-zone.typ b/tables/pcb-ground-planes-dgnd-zone.typ new file mode 100644 index 0000000..e8081c8 --- /dev/null +++ b/tables/pcb-ground-planes-dgnd-zone.typ @@ -0,0 +1,13 @@ +#import "../lib/unify.typ": qty + +#figure( + table( + columns: 2, + table.header([Parameter], [Value]), + [Location], [Defined zone on L2], + [Separation], [$qty(2, "mm")$ gap from AGND plane], + [Connection], [To the DGND pins of the power distributor], + [Via stitching], [Only within DGND zone], + ), + caption: [PCB DGND zone], +) diff --git a/tables/pcb-interconnect-zones-zone-a-pin-assignment.typ b/tables/pcb-interconnect-zones-zone-a-pin-assignment.typ new file mode 100644 index 0000000..4ca7ce2 --- /dev/null +++ b/tables/pcb-interconnect-zones-zone-a-pin-assignment.typ @@ -0,0 +1,21 @@ +#import "../lib/unify.typ": qty + +#figure( + table( + columns: 3, + table.header([Position], [Signal], [Recommended wire color]), + [1], [$plus qty(15, "V")$], [Red], + [2], [$qty(-15, "V")$], [Orange], + [3], [AGND], [Black], + [4], [$plus qty(10, "V")$ force], [White], + [5], [$plus qty(10, "V")$ sense], [White / red stripe], + [6], [$qty(-10, "V")$ force], [Grey], + [7], [$qty(-10, "V")$ sense], [Gred / red stripe], + [8], [$plus qty(5, "VD")$], [Yellow], + [9], [$qty(-5, "VD")$], [Blue], + [10], [DGND], [Brown], + [11], [Stagger], [Purple], + [12], [Chassis Earth], [Green / yellow stripe], + ), + caption: [PCB interconnect zones: zone A pin assignment], +) diff --git a/tables/pcb-interconnect-zones-zone-a.typ b/tables/pcb-interconnect-zones-zone-a.typ new file mode 100644 index 0000000..041190f --- /dev/null +++ b/tables/pcb-interconnect-zones-zone-a.typ @@ -0,0 +1,19 @@ +#import "../lib/unify.typ": qty, qtyrange + +#figure( + table( + columns: 2, + table.header([Parameter], [Value]), + [Location], [Rear $qty(20, "mm")$ of PCB ($Y = qtyrange(0, 20, "mm")$)], + + [Function], [Connection to DB-25 backplane connector and rear BNC], + [Connector], + [ + / Power: pluggable terminal block (e.g. Phoenix Contact MSTB $qty(3.5, "mm")$ or latching header (e.g Molex KK $qty(3.96, "mm")$). + / Master oscillator (optional): The rear BNC connects to the PCB via a short ($lt qty(50, "mm")$) $qty(50, "ohm")$ coaxial pigtail (RG-174 or RG-316) soldered to dedicated RF pads or a u.FL/SMA connector on the PCB edge. + ], + + [Wire gauge], [$qtyrange(22, 24, "AWG")$ for power, $qty(26, "AWG")$ for signals], + ), + caption: [PCB interconnect zones: zone A], +) diff --git a/tables/pcb-interconnect-zones-zone-b.typ b/tables/pcb-interconnect-zones-zone-b.typ new file mode 100644 index 0000000..b57a8ff --- /dev/null +++ b/tables/pcb-interconnect-zones-zone-b.typ @@ -0,0 +1,14 @@ +#import "../lib/unify.typ": qty, qtyrange + +#figure( + table( + columns: 2, + table.header([Parameter], [Value]), + [Location], [Front $qty(20, "mm")$ of PCB ($Y = qtyrange(135, 155, "mm")$)], + + [Function], [Connection to banana jacks and controls], + [Connector], [Pin headers, terminal blocks, or direct solder pads], + [Wire gauge], [$qtyrange(24, 25, "AWG")$], + ), + caption: [PCB interconnect zones: zone B], +) diff --git a/tables/pcb-keep-out-zones-mounting-holes-keep-out.typ b/tables/pcb-keep-out-zones-mounting-holes-keep-out.typ new file mode 100644 index 0000000..057fe33 --- /dev/null +++ b/tables/pcb-keep-out-zones-mounting-holes-keep-out.typ @@ -0,0 +1,11 @@ +#import "../lib/unify.typ": qty + +#figure( + table( + columns: 2, + table.header([Parameter], [Value]), + [Radius], [$qty(0.5, "mm")$ from hole center], + [Applies to], [Components, traces, planes (except earth ring)], + ), + caption: [PCB keep-out zones: mounting holes keep-out], +) diff --git a/tables/pcb-keep-out-zones-perimeter-keep-out.typ b/tables/pcb-keep-out-zones-perimeter-keep-out.typ new file mode 100644 index 0000000..cd3b53e --- /dev/null +++ b/tables/pcb-keep-out-zones-perimeter-keep-out.typ @@ -0,0 +1,13 @@ +#import "../lib/unify.typ": qty + +#figure( + table( + 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], + + [Reason], [Clearance for cassette walls and earth ring], [], + ), + caption: [PCB keep-out zones: perimeter keep-out], +) diff --git a/tables/pcb-mounting-strategy-mounting-holes-pattern.typ b/tables/pcb-mounting-strategy-mounting-holes-pattern.typ new file mode 100644 index 0000000..32674ad --- /dev/null +++ b/tables/pcb-mounting-strategy-mounting-holes-pattern.typ @@ -0,0 +1,14 @@ +#import "../lib/unify.typ": qty + +#figure( + table( + columns: 2, + table.header([Parameter], [Value]), + [Pattern], [Rectangular, $4$ holes], + [Horizontal spacing (X)], [$qty(105.0, "mm")$], + [Vertical spacing (Y)], [$qty(155.0, "mm")$], + [Hole diameter], [$diameter qty(3.2, "mm")$ ($M 3$ clearance)], + [Hole plating], [Unplated, isolated], + ), + caption: [PCB mounting strategy: mounting holes], +) diff --git a/tables/pcb-mounting-strategy-mounting-holes-positions.typ b/tables/pcb-mounting-strategy-mounting-holes-positions.typ new file mode 100644 index 0000000..1d66183 --- /dev/null +++ b/tables/pcb-mounting-strategy-mounting-holes-positions.typ @@ -0,0 +1,13 @@ +#import "../lib/unify.typ": qty + +#figure( + table( + 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")$], + [3 (top-left)], [$qty(10.00, "mm")$], [$qty(145.00, "mm")$], + [4 (top-right)], [$qty(115.00, "mm")$], [$qty(145.00, "mm")$], + ), + caption: [PCB mounting strategy: mounting holes positions], +) diff --git a/tables/pcb-mounting-strategy.typ b/tables/pcb-mounting-strategy.typ new file mode 100644 index 0000000..7532b35 --- /dev/null +++ b/tables/pcb-mounting-strategy.typ @@ -0,0 +1,13 @@ +#import "../lib/unify.typ": qty + +#figure( + table( + columns: 2, + table.header([Parameter], [Value]), + [Standoff thread], [$M 3$], + [Standoff height], [$qty(6, "mm")$], + [Standoff type], [Female threaded, swaged or welded to L-channel], + [Mounting screw], [$M 3 times qty(8, "mm")$ pan head], + ), + caption: [PCB mounting strategy: standoffs], +) diff --git a/tables/pcb-power-planes.typ b/tables/pcb-power-planes.typ new file mode 100644 index 0000000..ebffac6 --- /dev/null +++ b/tables/pcb-power-planes.typ @@ -0,0 +1,16 @@ +#import "../lib/unify.typ": qty, qtyrange + +#figure( + table( + 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")$], + + [Zone 3], [$plus qty(5, "V")$ (if needed)], [$qtyrange(10, 15, "percent")$], + + [Zone 4], [$qty(-5, "V")$ (if needed)], [$qtyrange(10, 15, "percent")$], + ), + caption: [PCB power planes], +) diff --git a/tables/pcb-silkscreen-requirements-l1.typ b/tables/pcb-silkscreen-requirements-l1.typ new file mode 100644 index 0000000..cbf0741 --- /dev/null +++ b/tables/pcb-silkscreen-requirements-l1.typ @@ -0,0 +1,14 @@ +#figure( + table( + columns: 2, + table.header([Element], [Requirement]), + [Reference designators], [All components labeled($R_"bias"$, $C_"bulk"$, $U_"buf"$, etc.)], + + [Polarity marks], [All polarized components (diodes, electrolytics, ICs, etc.)], + + [Pin 1 indicators], [All ICs and connectors], + [Assembly notes], [Tier-specific component values (if applicable)], + [Test points], [Labeled with signal name], + ), + caption: [PCB silkscreen requirements: component side (L1 - top)], +) diff --git a/tables/pcb-silkscreen-requirements-l4.typ b/tables/pcb-silkscreen-requirements-l4.typ new file mode 100644 index 0000000..03aa77c --- /dev/null +++ b/tables/pcb-silkscreen-requirements-l4.typ @@ -0,0 +1,12 @@ +#figure( + table( + columns: 2, + table.header([Element], [Requirement]), + [Board identification], [Module name, version, date], + [SAME logo], [Mandatory], + [Precision tier], ["$"EDU"$", "$"IND"$", or "$"MET"$" marking area], + [Designer attribution], [Name, handle or logo], + [License], ["$"CERN-OHL-S-2.0+"$"], + ), + caption: [PCB silkscreen requirements: solder side (L4 - bottom)], +) diff --git a/tables/pcb-standard-dimensions.typ b/tables/pcb-standard-dimensions.typ new file mode 100644 index 0000000..54728a0 --- /dev/null +++ b/tables/pcb-standard-dimensions.typ @@ -0,0 +1,16 @@ +#import "../lib/unify.typ": qty + +#figure( + table( + columns: 4, + table.header([Parameter], [Value], [Tolerances], [Notes]), + [Height], [$qty(155.0, "mm")$], [$plus.minus qty(0.2, "mm")$], [Vertical dimension when mounted], + + [Depth], [$qty(125.0, "mm")$], [$plus.minus qty(0.2, "mm")$], [Front-to-rear dimension], + + [Thickness], [$qty(1.6, "mm")$], [$plus.minus qty(0.15, "mm")$], [Standard 4-layer stackup], + + [Corner radius], [$qty(3.0, "mm")$], [$plus.minus qty(0.5, "mm")$], [All four corners, for insertion clearance], + ), + caption: [PCB standard dimensions], +) diff --git a/tables/pcb-surface-finish.typ b/tables/pcb-surface-finish.typ new file mode 100644 index 0000000..0151555 --- /dev/null +++ b/tables/pcb-surface-finish.typ @@ -0,0 +1,18 @@ +#import "../lib/unify.typ": qtyrange + +#figure( + table( + columns: 2, + table.header([Parameter], [Specification]), + [Finish], [ENIG (Electroless Nickel Immersion Gold)], + + [Nickel thickness], [$qtyrange(3, 5, "um")$], + + [Gold thickness], [$qtyrange(0.05, 0.1, "um")$ ($qtyrange(1, 2, "micro inch")$)], + + [Solder mask], [Matte black (both sides)], + + [Silkscreen], [White (both sides)], + ), + caption: [PCB surface finish], +) diff --git a/tables/potentiometer-wiper-noise-and-wear-typical-magnitude.typ b/tables/potentiometer-wiper-noise-and-wear-typical-magnitude.typ new file mode 100644 index 0000000..17d8003 --- /dev/null +++ b/tables/potentiometer-wiper-noise-and-wear-typical-magnitude.typ @@ -0,0 +1,30 @@ +#import "../lib/unify.typ": qtyrange + +#figure( + table( + columns: 5, + table.header([Potentiometer type], [Contact resistance], [$upright("CNI")$], [Wear life], [Notes]), + [Carbon composition], + [$qtyrange(2, 50, "ohm")$], + [$qtyrange(0, 10, "dB")$], + [$10$k - $100$k cycles], + [Noisy, wear-prone], + + [Cermet], [$qtyrange(1, 10, "ohm")$], [$qtyrange(-10, 0, "dB")$], [$100$k - $1$M cycles], [Good compromise], + + [Conductive plastic], + [$qtyrange(0.5, 5, "ohm")$], + [$qtyrange(-20, -10, "dB")$], + [$1$M - $10$M cycles], + [Low noise, good wear], + + [Wirewound], [$qtyrange(0.1, 2, "ohm")$], [Very low], [$1$M+ cycles], [Quantized, best for DC], + + [Multi-turn (10T)], + [$qtyrange(0.5, 5, "ohm")$], + [$qtyrange(-15, -5, "dB")$], + [$100$k - $1$M cycles], + [High resolution], + ), + caption: [Potentiometer wiper noise and wear typical magnitudes], +) diff --git a/tables/power-distribution-board-functions.typ b/tables/power-distribution-board-functions.typ new file mode 100644 index 0000000..b1991e4 --- /dev/null +++ b/tables/power-distribution-board-functions.typ @@ -0,0 +1,24 @@ +#import "../lib/unify.typ": qty + +#figure( + table( + 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], + + [Reference generation], [$plus.minus qty(10.0000, "V")$ precision references], + + [Master oscillator generation], [Generation of the $qty(10, "MHz")$ sine wave reference], + + [Distribution], + [ + - One female DB-25 connector per module position, + - One female isolated BNC connector per module position + ], + + [Calibration], [Front-panel accessible switches], + [Protection], [Overcurrent, overvoltage, thermal shutdown], + ), + caption: [Power distribution board functional requirements], +) diff --git a/tables/power-distribution-board-power-entry.typ b/tables/power-distribution-board-power-entry.typ new file mode 100644 index 0000000..c44d72c --- /dev/null +++ b/tables/power-distribution-board-power-entry.typ @@ -0,0 +1,14 @@ +#import "../lib/unify.typ": qty, qtyrange + +#figure( + table( + columns: 2, + table.header([Parameter], [Requirement]), + [Mains connector], [IEC C14 (with integrated fuse) or regional equivalent], + [Voltage range], + [$qtyrange(100, 240, "VAC"), 50 "/" qty(60, "Hz")$ (universal) recommended. Factory setup accepted], + + [Safety], [Compliant with IEC 60950-1 or IEC 62368-1], + ), + caption: [Power entry requirements], +) diff --git a/tables/power-supply-noise-coupling-typical-magnitude.typ b/tables/power-supply-noise-coupling-typical-magnitude.typ new file mode 100644 index 0000000..d969254 --- /dev/null +++ b/tables/power-supply-noise-coupling-typical-magnitude.typ @@ -0,0 +1,12 @@ +#import "../lib/unify.typ": qty + +#figure( + table( + columns: 3, + 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")$], + ), + caption: [Power supply noise coupling typical magnitudes], +) diff --git a/tables/precision-measurements-conditions-summary.typ b/tables/precision-measurements-conditions-summary.typ new file mode 100644 index 0000000..cf2f7ce --- /dev/null +++ b/tables/precision-measurements-conditions-summary.typ @@ -0,0 +1,30 @@ +#import "../lib/unify.typ": qty, qtyrange + +#figure( + table( + columns: 3, + table.header([Parameter], [Range], [Variation]), + [Temperature], [$plus qty(15, "dC") "to" plus qty(30, "dC")$], [$plus.minus qty(2, "celsius per hour")$], + + [Relative humidity], [$qtyrange(30, 79, "percent") "RH"$], [$plus.minus qty(5, "percent") "RH"$], + + [Atmospheric pressure], [$qtyrange(800, 1100, "hPa")$], [$plus.minus qty(50, "hecto pascal per day")$], + + [RF immunity], [$qty(3, "volt per meter"), qtyrange(80, 1000, "MHz")$], [N/A], + + [Magnetic field (DC)], [$lt qty(1, "ampere per meter")$], [N/A], + + [Magnetic field (AC)], [$lt qty(0.3, "ampere per meter")$], [N/A], + + [Vibration], [$lt qty(0.5, "g"), qtyrange(5, 500, "Hz")$], [N/A], + + [Shock], [$lt qty(5, "g"), qty(11, "ms")$], [N/A], + + [Air quality], [Indoor, filtered], [N/A], + + [Lighting], [No direct sunlight], [N/A], + + [Background radiation], [$lt qty(1, "micro sievert per hour")$], [N/A], + ), + caption: [Summary of the precision measurements conditions], +) diff --git a/tables/precision-tiers-summary.typ b/tables/precision-tiers-summary.typ new file mode 100644 index 0000000..376321c --- /dev/null +++ b/tables/precision-tiers-summary.typ @@ -0,0 +1,23 @@ +#import "../lib/unify.typ": qty + +#figure( + table( + columns: 4, + table.header([Parameter], [Educational], [Industrial], [Metrologic]), + [Precision], + [$qty(0.1, "percent") (qty(1000, "ppm"))$], + [$qty(0.01, "percent") (qty(100, "ppm"))$], + [$qty(0.00, "percent")% (qty(10, "ppm"))$], + + [SNR], [$qty(70, "dB")$], [$qty(80, "dB")$], [$qty(90, "dB")$], + + [Result validity], [$plus.minus qty(0.1, "V")$], [$plus.minus qty(10, "mV")$], [$plus.minus qty(1, "mV")$], + + [Maximum drift rate], [$qty(60, "ppm per hour")$], [$qty(0.6, "ppm per hour")$], [$qty(0.014, "ppm per hour")$], + + [Drift-free computation], [$approx qty(16, "h")$], [$approx qty(7, "day")$], [$approx qty(30, "day")$], + + [Calibration verification], [Before each session], [Daily], [Daily], + ), + caption: [Precision tiers summary], +) diff --git a/tables/protective-earth.typ b/tables/protective-earth.typ new file mode 100644 index 0000000..2a255dd --- /dev/null +++ b/tables/protective-earth.typ @@ -0,0 +1,13 @@ +#import "../lib/unify.typ": qty + +#figure( + table( + columns: 2, + table.header([Para