// SAME Analog Modular Ecosystem // // / SPDX-FileCopyrightText: 2026 Denis Chevalier // / SPDX-License-Identifier: CC-BY-SA-4.0 // / SPDX-License-Identifier: CERN-OHL-S-2.0+ // / SPDX-License-Identifier: GPL-3.0-or-later // // The prose, explanatory text, rendered figures, tables, and mathematical // content of this specification are licensed under CC BY-SA 4.0. If a later // version of CC BY-SA is published, the author grants permission to distribute // this work under that later version as well. // // Hardware designs contained herein (schematics, PCB layouts, mechanical // drawings, and CAD models) are licensed under CERN-OHL-S-2.0+. // // All executable code, helper libraries (`lib/*`), metrology assertions, and // embedded verification scripts throughout the source documents are licensed // under the GNU General Public License v3.0 or later (GPL-3.0-or-later). #import "../lib/unify.typ": qty, unit #import "@preview/cetz:0.5.2" #import "@preview/cetz-plot:0.1.4": plot #figure( cetz.canvas({ import cetz.draw: * plot.plot( size: (12, 6), x-mode: "log", x-label: [Frequency $f$ ($unit("Hz")$)], y-label: [Coupled Voltage $V_"coupled"$ ($unit("mV")$)], x-min: 10, x-max: 100000, y-min: 0.001, y-max: 65, x-grid: "minor", y-grid: "minor", { // 20 kHz System Bandwidth limit vertical reference line plot.add( ((20000, 0.001), (20000, 100)), style: ( stroke: (paint: luma(120), thickness: 0.8pt, dash: "dashed"), ), label: none, ) // Unshielded PCB trace: C_mutual = 1 pF, Z_victim = 10 kOhm plot.add( style: (stroke: (dash: "solid")), label: [Unshielded trace \ ($qty(1, "pF"), qty(10, "kilo ohm")$)], domain: (10, 100000), samples: 1000, f => 2 * calc.pi * f * 1e-12 * 10000 * 10 * 1000, // in mV ) // Low-impedance node: C_mutual = 1 pF, Z_victim = 1 kOhm plot.add( style: (stroke: (dash: "dashed")), label: [Low-impedance node \ ($qty(1, "pF"), qty(1, "kilo ohm")$)], domain: (10, 100000), samples: 1000, f => 2 * calc.pi * f * 1e-12 * 1000 * 10 * 1000, // in mV ) // Guard trace shielding: C_mutual = 0.05 pF, Z_victim = 10 kOhm plot.add( style: (stroke: (dash: "dotted")), label: [Guard trace shielded \ ($qty(0.05, "pF"), qty(10, "kilo ohm")$)], domain: (10, 100000), samples: 1000, f => 2 * calc.pi * f * 0.05e-12 * 10000 * 10 * 1000, // in mV ) }, ) }), caption: [Capacitive crosstalk coupled voltage ($V_"coupled"$) vs. frequency across different PCB layout conditions, demonstrating the $qty(20, "decibel per decade")$ slope up to the $qty(20, "kHz")$ system bandwidth boundary], )