// 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", y-mode: "linear", x-label: [Frequency $f$ ($unit("Hz")$)], y-label: [$upright("PSRR")(f)$ ($unit("dB")$)], x-min: 1, x-max: 1000000, y-min: 0, y-max: 140, x-grid: "minor", y-grid: "minor", { // 500 kHz PWAM Carrier vertical reference line plot.add( ((500000, 0), (500000, 140)), style: (stroke: (paint: luma(120), thickness: 0.8pt, dash: "dashed")), label: none, ) // General purpose (TL07x): PSRR_DC = 100 dB, fp1 = 1 kHz, fp2 = 100 kHz plot.add( style: (stroke: (dash: "solid")), label: [TL07x], domain: (1, 1000000), samples: 1000, f => ( 100 - 10 * calc.log(1 + calc.pow(f / 1000, 2), base: 10) - 10 * calc.log(1 + calc.pow(f / 100000, 2), base: 10) ), ) // Low noise (OPA211): PSRR_DC = 130 dB, fp1 = 300 Hz, fp2 = 50 kHz plot.add( style: (stroke: (dash: "dotted")), label: [OPA211], domain: (1, 1000000), samples: 1000, f => ( 130 - 10 * calc.log(1 + calc.pow(f / 300, 2), base: 10) - 10 * calc.log(1 + calc.pow(f / 50000, 2), base: 10) ), ) // Precision low noise (LT1028): PSRR_DC = 120 dB, fp1 = 300 Hz, fp2 = 100 kHz plot.add( style: (stroke: (dash: "dashed")), label: [LT1028], domain: (1, 1000000), samples: 1000, f => ( 120 - 10 * calc.log(1 + calc.pow(f / 300, 2), base: 10) - 10 * calc.log(1 + calc.pow(f / 100000, 2), base: 10) ), ) }, ) }), caption: [Power supply rejection ratio ($upright("PSRR")$) degradation across frequency, highlighting the reduced rejection at the $qty(500, "kHz")$ PWAM carrier frequency], )