From 00c00b7504d604bb0b28f74619911a1db1ca14c0 Mon Sep 17 00:00:00 2001 From: Richard Lin Date: Sun, 11 Jan 2026 14:29:54 -0800 Subject: [PATCH 01/19] wip --- .../UsbSourceMeasure/SourceMeasureControl.kicad_sch | 12 +++++++++++- examples/UsbSourceMeasure/UsbSourceMeasure.net | 4 ++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/examples/UsbSourceMeasure/SourceMeasureControl.kicad_sch b/examples/UsbSourceMeasure/SourceMeasureControl.kicad_sch index b3a67537e..4ad9755b6 100644 --- a/examples/UsbSourceMeasure/SourceMeasureControl.kicad_sch +++ b/examples/UsbSourceMeasure/SourceMeasureControl.kicad_sch @@ -4913,6 +4913,16 @@ ) (uuid "795eb628-568e-4a61-92d3-90e6ce6efd62") ) + (text "only for a bit of CMRR" + (exclude_from_sim no) + (at 197.358 116.078 0) + (effects + (font + (size 1.27 1.27) + ) + ) + (uuid "9ecdc2c4-d5c2-42d2-a9ce-5963b3cba77e") + ) (text "Low-leakage TVS diodes\nto minimize interference\nwith current measurement" (exclude_from_sim no) (at 266.7 76.2 0) @@ -7220,7 +7230,7 @@ ) ) ) - (property "Value3" "cutoff_freq=(47, 470)*kHertz)" + (property "Value3" "cutoff_freq=(1, 10)*MHertz)" (at 214.884 124.206 0) (effects (font diff --git a/examples/UsbSourceMeasure/UsbSourceMeasure.net b/examples/UsbSourceMeasure/UsbSourceMeasure.net index f9ae6d627..910de525b 100644 --- a/examples/UsbSourceMeasure/UsbSourceMeasure.net +++ b/examples/UsbSourceMeasure/UsbSourceMeasure.net @@ -2108,8 +2108,8 @@ (property (name "edg_path") (value "control.ifilt.c")) (property (name "edg_short_path") (value "control.ifilt.c")) (property (name "edg_refdes") (value "C62")) - (property (name "edg_part") (value "0603B103K500NT (FH(Guangdong Fenghua Advanced Tech))")) - (property (name "edg_value") (value "50V 10nF X7R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) + (property (name "edg_part") (value "0603B471K500NT (FH(Guangdong Fenghua Advanced Tech))")) + (property (name "edg_value") (value "50V 470pF X7R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/control/ifilt/") (tstamps "/0bec0302/06310219/")) (tstamps "00640064")) (comp (ref "U23") From 0ae745f8871778f16cd85dd161f50ca9e68572ea Mon Sep 17 00:00:00 2001 From: Richard Lin Date: Mon, 12 Jan 2026 01:47:57 -0800 Subject: [PATCH 02/19] wip tuning sim --- .../UsbSourceMeasure/analysis/power_stage.asc | 173 ++++++++---------- 1 file changed, 73 insertions(+), 100 deletions(-) diff --git a/examples/UsbSourceMeasure/analysis/power_stage.asc b/examples/UsbSourceMeasure/analysis/power_stage.asc index 88e66786b..458f55470 100644 --- a/examples/UsbSourceMeasure/analysis/power_stage.asc +++ b/examples/UsbSourceMeasure/analysis/power_stage.asc @@ -1,5 +1,5 @@ -Version 4 -SHEET 1 1920 1408 +Version 4.1 +SHEET 1 2092 1408 WIRE -208 -160 -240 -160 WIRE -96 -160 -128 -160 WIRE 48 -144 16 -144 @@ -13,43 +13,28 @@ WIRE -96 -48 -144 -48 WIRE -64 -48 -96 -48 WIRE 48 -48 48 -144 WIRE 48 -48 16 -48 -WIRE 1248 -48 1216 -48 -WIRE 1360 -48 1328 -48 WIRE -208 -32 -240 -32 WIRE -352 0 -384 0 WIRE -240 0 -240 -32 WIRE -240 0 -272 0 WIRE 880 0 832 0 -WIRE 1216 16 1216 -48 -WIRE 1216 16 1184 16 WIRE 832 32 832 0 WIRE 832 32 784 32 WIRE 864 32 832 32 WIRE -240 48 -240 0 WIRE -208 48 -240 48 WIRE -96 48 -128 48 -WIRE 1216 48 1216 16 -WIRE 1248 48 1216 48 WIRE 832 64 832 32 WIRE 880 64 832 64 -WIRE 1360 64 1360 -48 -WIRE 1360 64 1312 64 -WIRE 1392 64 1360 64 -WIRE 1456 64 1392 64 -WIRE 1248 80 1216 80 WIRE 96 112 64 112 WIRE 192 112 160 112 WIRE 400 112 368 112 WIRE 432 112 400 112 WIRE 544 112 512 112 WIRE 928 112 928 80 -WIRE 1104 112 1072 112 -WIRE 1216 112 1216 80 -WIRE 1216 112 1184 112 WIRE -96 160 -400 160 -WIRE 1216 160 1216 112 -WIRE 1248 160 1216 160 -WIRE 1360 160 1328 160 +WIRE 1312 160 1280 160 +WIRE 1424 160 1392 160 WIRE -1056 192 -1056 160 WIRE -960 192 -960 160 WIRE -960 192 -1056 192 @@ -73,8 +58,9 @@ WIRE 784 224 784 32 WIRE 784 224 752 224 WIRE 800 224 784 224 WIRE 928 224 928 192 -WIRE 1072 224 1072 112 WIRE 1072 224 928 224 +WIRE 1280 224 1280 160 +WIRE 1280 224 1248 224 WIRE -208 240 -304 240 WIRE -96 240 -96 160 WIRE -96 240 -128 240 @@ -90,99 +76,100 @@ WIRE 192 256 160 256 WIRE 400 256 400 240 WIRE 400 256 192 256 WIRE 928 256 928 224 +WIRE 1280 256 1280 224 +WIRE 1312 256 1280 256 WIRE 96 272 64 272 +WIRE 1424 272 1424 160 +WIRE 1424 272 1376 272 +WIRE 1456 272 1424 272 +WIRE 1520 272 1456 272 WIRE -432 288 -432 256 WIRE -432 288 -464 288 -WIRE 1312 304 1280 304 -WIRE 1424 304 1392 304 +WIRE 1312 288 1280 288 +WIRE 1072 320 1168 224 +WIRE 1072 320 1072 304 +WIRE 1168 320 1072 224 +WIRE 1280 320 1280 288 +WIRE 1280 320 1248 320 WIRE 928 368 928 336 -WIRE 1072 368 1072 224 -WIRE 1280 368 1280 304 -WIRE 1280 368 1248 368 +WIRE 1280 368 1280 320 +WIRE 1312 368 1280 368 +WIRE 1424 368 1392 368 WIRE 880 384 832 384 WIRE -96 400 -96 240 WIRE -96 400 -400 400 -WIRE 1280 400 1280 368 -WIRE 1312 400 1280 400 WIRE 784 416 784 224 WIRE 832 416 832 384 WIRE 832 416 784 416 WIRE 864 416 832 416 -WIRE 1424 416 1424 304 -WIRE 1424 416 1376 416 -WIRE 1456 416 1424 416 -WIRE 1520 416 1456 416 WIRE -656 432 -688 432 WIRE -560 432 -576 432 WIRE -544 432 -560 432 WIRE -432 432 -464 432 -WIRE 1312 432 1280 432 WIRE 832 448 832 416 WIRE 880 448 832 448 WIRE -400 464 -400 400 WIRE -368 464 -400 464 -WIRE 1072 464 1168 368 -WIRE 1072 464 1072 448 -WIRE 1168 464 1072 368 -WIRE 1280 464 1280 432 -WIRE 1280 464 1248 464 WIRE -272 480 -304 480 WIRE -96 480 -96 400 WIRE -96 480 -128 480 WIRE -432 496 -432 432 WIRE -368 496 -432 496 -WIRE 1280 512 1280 464 -WIRE 1312 512 1280 512 -WIRE 1424 512 1392 512 +WIRE 1312 496 1280 496 +WIRE 1424 496 1392 496 WIRE -432 528 -432 496 WIRE -432 528 -464 528 -WIRE 1072 560 1072 464 +WIRE 1280 560 1280 496 +WIRE 1280 560 1248 560 +WIRE 1280 592 1280 560 +WIRE 1312 592 1280 592 +WIRE 1424 608 1424 496 +WIRE 1424 608 1376 608 +WIRE 1456 608 1424 608 +WIRE 1520 608 1456 608 WIRE -96 624 -96 480 WIRE -96 624 -400 624 +WIRE 1312 624 1280 624 WIRE -656 656 -688 656 WIRE -560 656 -576 656 WIRE -544 656 -560 656 WIRE -432 656 -464 656 +WIRE 1072 656 1072 320 +WIRE 1168 656 1072 656 +WIRE 1280 656 1280 624 +WIRE 1280 656 1248 656 WIRE -400 688 -400 624 WIRE -368 688 -400 688 WIRE -272 704 -304 704 WIRE -96 704 -96 624 WIRE -96 704 -128 704 +WIRE 1280 704 1280 656 +WIRE 1312 704 1280 704 +WIRE 1424 704 1392 704 WIRE -432 720 -432 656 WIRE -368 720 -432 720 -WIRE 112 720 64 720 -WIRE 288 720 240 720 -WIRE 240 736 240 720 +WIRE 1072 736 1072 656 WIRE -432 752 -432 720 WIRE -432 752 -464 752 -WIRE 64 800 64 720 -WIRE 656 816 656 784 -WIRE 64 832 64 800 -WIRE 240 896 240 736 -WIRE 64 912 64 832 -WIRE 112 912 64 912 -WIRE 240 912 240 896 -WIRE 288 912 240 912 FLAG 928 -16 +V -FLAG 656 784 -V FLAG -864 304 -V FLAG -864 80 +V FLAG -1056 224 0 -FLAG 1344 448 -V +FLAG 1344 304 -V FLAG 464 192 +V -FLAG 1072 464 out +FLAG 1072 320 out FLAG -560 192 vsig -FLAG 1072 720 0 +FLAG 1072 816 0 FLAG -960 80 +Vdd FLAG -336 208 +Vdd FLAG -1056 80 +Vref -FLAG 1392 64 vsen +FLAG 1456 608 vsen FLAG -960 304 -Vdd FLAG 128 224 +Vdd -FLAG 1104 16 0 +FLAG 1168 560 0 FLAG -544 288 vsen FLAG 64 272 +Vref -FLAG 1360 160 +Vref +FLAG 1424 704 +Vref FLAG 288 112 +Vref FLAG -336 448 +Vdd FLAG -544 528 isen @@ -199,15 +186,13 @@ FLAG -336 736 -Vdd FLAG -560 656 i-sig FLAG -96 160 verr FLAG 192 112 vint -FLAG 1456 416 isen -FLAG 1424 512 +Vref -FLAG 1280 96 -V -FLAG 1280 32 +V -FLAG 1344 384 +V +FLAG 1456 272 isen +FLAG 1424 368 +Vref +FLAG 1344 640 -V +FLAG 1344 576 +V +FLAG 1344 240 +V FLAG 464 256 -V FLAG 928 464 -V -FLAG 112 912 -V -FLAG 288 912 -V FLAG -96 48 +Vref FLAG -176 -16 -V FLAG -176 -80 +V @@ -216,19 +201,13 @@ FLAG -384 0 drive FLAG 544 224 drive FLAG 784 32 gate FLAG -64 -144 +Vref -SYMBOL pnp 864 464 M180 -SYMATTR InstName Q1 -SYMATTR Value D45H11 -SYMBOL npn 864 -16 R0 -SYMATTR InstName Q2 -SYMATTR Value FZT849 SYMBOL voltage -864 64 R0 SYMATTR InstName V1 SYMATTR Value 20 SYMBOL voltage -864 208 R0 SYMATTR InstName V2 SYMATTR Value 0 -SYMBOL res 1056 352 R0 +SYMBOL res 1056 208 R0 SYMATTR InstName Rsen SYMATTR Value .1 SYMBOL res 912 240 R0 @@ -265,22 +244,22 @@ SYMATTR InstName C4 SYMATTR Value 1n SYMBOL Opamps\\AD8691 464 160 R0 SYMATTR InstName U7 -SYMBOL res 1344 -64 R90 +SYMBOL res 1408 480 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R15 SYMATTR Value 10k -SYMBOL res 1200 0 R90 +SYMBOL res 1264 544 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R16 SYMATTR Value 200k -SYMBOL res 1200 96 R90 +SYMBOL res 1264 640 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R17 SYMATTR Value 200k -SYMBOL res 1344 144 R90 +SYMBOL res 1408 688 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R18 @@ -314,7 +293,7 @@ SYMBOL res -112 464 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R22 -SYMATTR Value 1 +SYMATTR Value 0 SYMBOL res -112 224 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 @@ -361,7 +340,7 @@ SYMBOL res -112 688 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R6 -SYMATTR Value 1 +SYMATTR Value 0 SYMBOL voltage -560 656 R90 WINDOW 0 -32 56 VBottom 2 WINDOW 3 32 56 VTop 2 @@ -375,44 +354,38 @@ SYMBOL Opamps\\AD8628 -336 176 R0 SYMATTR InstName U5 SYMBOL Opamps\\AD8628 128 192 R0 SYMATTR InstName U6 -SYMBOL res 1408 288 R90 +SYMBOL res 1408 144 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R11 SYMATTR Value 10k -SYMBOL res 1264 352 R90 +SYMBOL res 1264 208 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R13 SYMATTR Value 10k -SYMBOL res 1264 448 R90 +SYMBOL res 1264 304 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R14 SYMATTR Value 10k -SYMBOL res 1408 496 R90 +SYMBOL res 1408 352 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R19 SYMATTR Value 10k -SYMBOL res 1056 544 R0 +SYMBOL res 1056 720 R0 SYMATTR InstName Rload2 SYMATTR Value .9 -SYMBOL Opamps\\AD8691 1280 0 R0 +SYMBOL Opamps\\AD8691 1344 544 R0 SYMATTR InstName U2 -SYMBOL Opamps\\AD8691 1344 352 R0 +SYMBOL Opamps\\AD8691 1344 208 R0 SYMATTR InstName U8 SYMBOL voltage 928 640 R0 WINDOW 123 0 0 Left 0 WINDOW 39 0 0 Left 0 SYMATTR InstName V9 SYMATTR Value 10 -SYMBOL nmos 240 816 R0 -SYMATTR InstName M1 -SYMATTR Value BSC010NE2LS -SYMBOL pmos 240 816 M180 -SYMATTR InstName M2 -SYMATTR Value Si7461DP SYMBOL voltage 752 624 R0 WINDOW 0 -32 56 VBottom 2 WINDOW 3 32 56 VTop 2 @@ -420,12 +393,12 @@ WINDOW 123 0 0 Left 0 WINDOW 39 0 0 Left 0 SYMATTR InstName V8 SYMATTR Value SINE(10 10 500) -SYMBOL pmos 64 912 M180 +SYMBOL pmos 880 464 M180 SYMATTR InstName M3 -SYMATTR Value Si7461DP -SYMBOL nmos 64 720 R0 +SYMATTR Value RSJ250P10 +SYMBOL nmos 880 -16 R0 SYMATTR InstName M4 -SYMATTR Value BSC010NE2LS +SYMATTR Value IRFZ44N SYMBOL res -112 -176 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 @@ -478,11 +451,11 @@ TEXT -376 128 Left 2 ;Voltage Control TEXT 80 16 Left 2 ;Error\nIntegrator TEXT -376 368 Left 2 ;Source Control TEXT -936 16 Left 2 !.tran 3ms uic -TEXT 1392 -104 Left 2 ;1/20 V/V differential voltage sense\n(re-centering 0V -> +Vref, HV opamp) +TEXT 1456 440 Left 2 ;1/20 V/V differential voltage sense\n(re-centering 0V -> +Vref, HV opamp) TEXT -1056 -8 Left 2 ;Voltage Rails -TEXT 1208 -104 Left 2 ;Voltage Sense -TEXT 1448 240 Left 2 ;1/10 V/A current sense\n(HV opamp) -TEXT 1272 248 Left 2 ;Current Sense +TEXT 1272 440 Left 2 ;Voltage Sense +TEXT 1448 96 Left 2 ;1/10 V/A current sense\n(HV opamp) +TEXT 1272 104 Left 2 ;Current Sense TEXT 240 952 Left 2 ;Inverting AB\npush-pull TEXT 64 952 Left 2 ;FET option TEXT -248 -216 Left 2 ;Voltage Sense From 468edf2c927119b292773746578485950b30b47a Mon Sep 17 00:00:00 2001 From: Richard Lin Date: Mon, 12 Jan 2026 23:33:58 -0800 Subject: [PATCH 03/19] universal opamp model --- .../UsbSourceMeasure/analysis/power_stage.asc | 133 +++++++++--------- 1 file changed, 67 insertions(+), 66 deletions(-) diff --git a/examples/UsbSourceMeasure/analysis/power_stage.asc b/examples/UsbSourceMeasure/analysis/power_stage.asc index 458f55470..cfebed527 100644 --- a/examples/UsbSourceMeasure/analysis/power_stage.asc +++ b/examples/UsbSourceMeasure/analysis/power_stage.asc @@ -33,8 +33,8 @@ WIRE 432 112 400 112 WIRE 544 112 512 112 WIRE 928 112 928 80 WIRE -96 160 -400 160 -WIRE 1312 160 1280 160 -WIRE 1424 160 1392 160 +WIRE 1520 160 1488 160 +WIRE 1632 160 1600 160 WIRE -1056 192 -1056 160 WIRE -960 192 -960 160 WIRE -960 192 -1056 192 @@ -59,8 +59,9 @@ WIRE 784 224 752 224 WIRE 800 224 784 224 WIRE 928 224 928 192 WIRE 1072 224 928 224 -WIRE 1280 224 1280 160 -WIRE 1280 224 1248 224 +WIRE 1280 224 1072 224 +WIRE 1488 224 1488 160 +WIRE 1488 224 1456 224 WIRE -208 240 -304 240 WIRE -96 240 -96 160 WIRE -96 240 -128 240 @@ -76,25 +77,26 @@ WIRE 192 256 160 256 WIRE 400 256 400 240 WIRE 400 256 192 256 WIRE 928 256 928 224 -WIRE 1280 256 1280 224 -WIRE 1312 256 1280 256 +WIRE 1488 256 1488 224 +WIRE 1520 256 1488 256 WIRE 96 272 64 272 -WIRE 1424 272 1424 160 -WIRE 1424 272 1376 272 -WIRE 1456 272 1424 272 -WIRE 1520 272 1456 272 +WIRE 1632 272 1632 160 +WIRE 1632 272 1584 272 +WIRE 1664 272 1632 272 +WIRE 1728 272 1664 272 WIRE -432 288 -432 256 WIRE -432 288 -464 288 -WIRE 1312 288 1280 288 -WIRE 1072 320 1168 224 +WIRE 1520 288 1488 288 WIRE 1072 320 1072 304 -WIRE 1168 320 1072 224 -WIRE 1280 320 1280 288 -WIRE 1280 320 1248 320 +WIRE 1280 320 1376 224 +WIRE 1280 320 1072 320 +WIRE 1376 320 1280 224 +WIRE 1488 320 1488 288 +WIRE 1488 320 1456 320 WIRE 928 368 928 336 -WIRE 1280 368 1280 320 -WIRE 1312 368 1280 368 -WIRE 1424 368 1392 368 +WIRE 1488 368 1488 320 +WIRE 1520 368 1488 368 +WIRE 1632 368 1600 368 WIRE 880 384 832 384 WIRE -96 400 -96 240 WIRE -96 400 -400 400 @@ -155,9 +157,9 @@ FLAG 928 -16 +V FLAG -864 304 -V FLAG -864 80 +V FLAG -1056 224 0 -FLAG 1344 304 -V +FLAG 1552 304 -V FLAG 464 192 +V -FLAG 1072 320 out +FLAG 1072 656 out FLAG -560 192 vsig FLAG 1072 816 0 FLAG -960 80 +Vdd @@ -186,11 +188,11 @@ FLAG -336 736 -Vdd FLAG -560 656 i-sig FLAG -96 160 verr FLAG 192 112 vint -FLAG 1456 272 isen -FLAG 1424 368 +Vref +FLAG 1664 272 isen +FLAG 1632 368 +Vref FLAG 1344 640 -V FLAG 1344 576 +V -FLAG 1344 240 +V +FLAG 1552 240 +V FLAG 464 256 -V FLAG 928 464 -V FLAG -96 48 +Vref @@ -220,10 +222,10 @@ SYMBOL voltage -960 64 R0 WINDOW 123 0 0 Left 0 WINDOW 39 0 0 Left 0 SYMATTR InstName V4 -SYMATTR Value 2.5 +SYMATTR Value 3.3 SYMBOL voltage -1056 64 R0 SYMATTR InstName V5 -SYMATTR Value 1.25 +SYMATTR Value 1.65 SYMBOL res 528 96 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 @@ -242,8 +244,6 @@ WINDOW 0 0 32 VBottom 2 WINDOW 3 32 32 VTop 2 SYMATTR InstName C4 SYMATTR Value 1n -SYMBOL Opamps\\AD8691 464 160 R0 -SYMATTR InstName U7 SYMBOL res 1408 480 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 @@ -303,7 +303,7 @@ SYMBOL voltage -560 432 R90 WINDOW 0 -32 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName V10 -SYMATTR Value -.5 +SYMATTR Value -1 SYMBOL res 32 224 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 @@ -313,14 +313,14 @@ SYMBOL res 768 208 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R1 -SYMATTR Value 4.7k +SYMATTR Value 150 SYMBOL voltage -560 192 R90 WINDOW 0 -32 56 VBottom 2 WINDOW 3 32 56 VTop 2 WINDOW 123 0 0 Left 0 WINDOW 39 0 0 Left 0 SYMATTR InstName V6 -SYMATTR Value SINE(-.5 .3 500) +SYMATTR Value SINE(-0.3 .15 500) SYMBOL res -448 736 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 @@ -345,31 +345,23 @@ SYMBOL voltage -560 656 R90 WINDOW 0 -32 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName V3 -SYMATTR Value .5 -SYMBOL Opamps\\AD8628 -336 640 R0 -SYMATTR InstName U1 -SYMBOL Opamps\\AD8628 -336 416 R0 -SYMATTR InstName U4 -SYMBOL Opamps\\AD8628 -336 176 R0 -SYMATTR InstName U5 -SYMBOL Opamps\\AD8628 128 192 R0 -SYMATTR InstName U6 -SYMBOL res 1408 144 R90 +SYMATTR Value 1 +SYMBOL res 1616 144 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R11 SYMATTR Value 10k -SYMBOL res 1264 208 R90 +SYMBOL res 1472 208 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R13 SYMATTR Value 10k -SYMBOL res 1264 304 R90 +SYMBOL res 1472 304 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R14 SYMATTR Value 10k -SYMBOL res 1408 352 R90 +SYMBOL res 1616 352 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R19 @@ -377,28 +369,12 @@ SYMATTR Value 10k SYMBOL res 1056 720 R0 SYMATTR InstName Rload2 SYMATTR Value .9 -SYMBOL Opamps\\AD8691 1344 544 R0 -SYMATTR InstName U2 -SYMBOL Opamps\\AD8691 1344 208 R0 -SYMATTR InstName U8 -SYMBOL voltage 928 640 R0 -WINDOW 123 0 0 Left 0 -WINDOW 39 0 0 Left 0 -SYMATTR InstName V9 -SYMATTR Value 10 -SYMBOL voltage 752 624 R0 -WINDOW 0 -32 56 VBottom 2 -WINDOW 3 32 56 VTop 2 -WINDOW 123 0 0 Left 0 -WINDOW 39 0 0 Left 0 -SYMATTR InstName V8 -SYMATTR Value SINE(10 10 500) SYMBOL pmos 880 464 M180 SYMATTR InstName M3 SYMATTR Value RSJ250P10 SYMBOL nmos 880 -16 R0 SYMATTR InstName M4 -SYMATTR Value IRFZ44N +SYMATTR Value IRLH5030 SYMBOL res -112 -176 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 @@ -419,8 +395,6 @@ WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R27 SYMATTR Value 10k -SYMBOL Opamps\\AD8691 -176 -112 R0 -SYMATTR InstName U3 SYMBOL schottky 928 208 R90 WINDOW 0 -4 32 VBottom 2 WINDOW 3 36 32 VTop 2 @@ -445,6 +419,35 @@ WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R29 SYMATTR Value 10k +SYMBOL OpAmps\\UniversalOpAmp2 -336 704 R0 +SYMATTR InstName U1 +SYMATTR Value2 Avol=1Meg GBW=4.5Meg Slew=20Meg +SYMATTR SpiceLine Ilimit=75m Rail=0 Vos=0 +SYMBOL OpAmps\\UniversalOpAmp2 -336 480 R0 +SYMATTR InstName U3 +SYMATTR Value2 Avol=1Meg GBW=4.5Meg Slew=20Meg +SYMATTR SpiceLine Ilimit=75m Rail=0 Vos=0 +SYMBOL OpAmps\\UniversalOpAmp2 -336 240 R0 +SYMATTR InstName U4 +SYMATTR Value2 Avol=1Meg GBW=4.5Meg Slew=20Meg +SYMATTR SpiceLine Ilimit=75m Rail=0 Vos=0 +SYMBOL OpAmps\\UniversalOpAmp2 128 256 R0 +SYMATTR InstName U5 +SYMATTR Value2 Avol=1Meg GBW=4.5Meg Slew=20Meg +SYMATTR SpiceLine Ilimit=75m Rail=0 Vos=0 +SYMBOL OpAmps\\UniversalOpAmp2 -176 -48 R0 +SYMATTR InstName U6 +SYMATTR Value2 Avol=1Meg GBW=4.5Meg Slew=20Meg +SYMATTR SpiceLine Ilimit=75m Rail=0 Vos=0 +SYMBOL OpAmps\\UniversalOpAmp2 464 224 R0 +SYMATTR InstName U2 +SYMATTR Value2 Avol=300Meg GBW=14Meg Slew=20Meg +SYMBOL OpAmps\\UniversalOpAmp2 1552 272 R0 +SYMATTR InstName U7 +SYMATTR Value2 Avol=300Meg GBW=14Meg Slew=20Meg +SYMBOL OpAmps\\UniversalOpAmp2 1344 608 R0 +SYMATTR InstName U8 +SYMATTR Value2 Avol=300Meg GBW=14Meg Slew=20Meg TEXT 424 16 Left 2 ;Driver Amplifier\n(HV opamp) TEXT 880 -80 Left 2 ;Driver TEXT -376 128 Left 2 ;Voltage Control @@ -454,8 +457,6 @@ TEXT -936 16 Left 2 !.tran 3ms uic TEXT 1456 440 Left 2 ;1/20 V/V differential voltage sense\n(re-centering 0V -> +Vref, HV opamp) TEXT -1056 -8 Left 2 ;Voltage Rails TEXT 1272 440 Left 2 ;Voltage Sense -TEXT 1448 96 Left 2 ;1/10 V/A current sense\n(HV opamp) -TEXT 1272 104 Left 2 ;Current Sense -TEXT 240 952 Left 2 ;Inverting AB\npush-pull -TEXT 64 952 Left 2 ;FET option +TEXT 1656 96 Left 2 ;1/10 V/A current sense\n(HV opamp) +TEXT 1480 104 Left 2 ;Current Sense TEXT -248 -216 Left 2 ;Voltage Sense From c99cd9146e23ee092fccbcb54615128693534dbd Mon Sep 17 00:00:00 2001 From: Richard Lin Date: Tue, 13 Jan 2026 00:00:26 -0800 Subject: [PATCH 04/19] refuses. to. oscillate --- .../UsbSourceMeasure/analysis/power_stage.asc | 86 +++++++++++++------ 1 file changed, 61 insertions(+), 25 deletions(-) diff --git a/examples/UsbSourceMeasure/analysis/power_stage.asc b/examples/UsbSourceMeasure/analysis/power_stage.asc index cfebed527..eabadeb44 100644 --- a/examples/UsbSourceMeasure/analysis/power_stage.asc +++ b/examples/UsbSourceMeasure/analysis/power_stage.asc @@ -26,6 +26,8 @@ WIRE -208 48 -240 48 WIRE -96 48 -128 48 WIRE 832 64 832 32 WIRE 880 64 832 64 +WIRE 784 96 784 32 +WIRE 832 96 784 96 WIRE 96 112 64 112 WIRE 192 112 160 112 WIRE 400 112 368 112 @@ -33,6 +35,7 @@ WIRE 432 112 400 112 WIRE 544 112 512 112 WIRE 928 112 928 80 WIRE -96 160 -400 160 +WIRE 992 160 832 160 WIRE 1520 160 1488 160 WIRE 1632 160 1600 160 WIRE -1056 192 -1056 160 @@ -54,12 +57,15 @@ WIRE -368 224 -400 224 WIRE 544 224 544 112 WIRE 544 224 496 224 WIRE 672 224 544 224 -WIRE 784 224 784 32 +WIRE 784 224 784 96 WIRE 784 224 752 224 WIRE 800 224 784 224 WIRE 928 224 928 192 -WIRE 1072 224 928 224 -WIRE 1280 224 1072 224 +WIRE 992 224 992 160 +WIRE 992 224 928 224 +WIRE 1072 224 992 224 +WIRE 1136 224 1072 224 +WIRE 1280 224 1216 224 WIRE 1488 224 1488 160 WIRE 1488 224 1456 224 WIRE -208 240 -304 240 @@ -70,6 +76,7 @@ WIRE 64 240 64 112 WIRE 64 240 16 240 WIRE 96 240 64 240 WIRE 432 240 400 240 +WIRE 1216 240 1216 224 WIRE -432 256 -432 192 WIRE -368 256 -432 256 WIRE 192 256 192 112 @@ -88,8 +95,10 @@ WIRE -432 288 -432 256 WIRE -432 288 -464 288 WIRE 1520 288 1488 288 WIRE 1072 320 1072 304 +WIRE 1136 320 1072 320 +WIRE 1216 320 1216 304 WIRE 1280 320 1376 224 -WIRE 1280 320 1072 320 +WIRE 1280 320 1216 320 WIRE 1376 320 1280 224 WIRE 1488 320 1488 288 WIRE 1488 320 1456 320 @@ -211,7 +220,7 @@ SYMATTR InstName V2 SYMATTR Value 0 SYMBOL res 1056 208 R0 SYMATTR InstName Rsen -SYMATTR Value .1 +SYMATTR Value 10 SYMBOL res 912 240 R0 SYMATTR InstName R2 SYMATTR Value 0 @@ -303,7 +312,7 @@ SYMBOL voltage -560 432 R90 WINDOW 0 -32 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName V10 -SYMATTR Value -1 +SYMATTR Value -0.5 SYMBOL res 32 224 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 @@ -313,14 +322,14 @@ SYMBOL res 768 208 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R1 -SYMATTR Value 150 +SYMATTR Value 4.7k SYMBOL voltage -560 192 R90 WINDOW 0 -32 56 VBottom 2 WINDOW 3 32 56 VTop 2 WINDOW 123 0 0 Left 0 WINDOW 39 0 0 Left 0 SYMATTR InstName V6 -SYMATTR Value SINE(-0.3 .15 500) +SYMATTR Value PULSE(0 -1 1m 1u 1u 1m 2m 10) SYMBOL res -448 736 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 @@ -368,7 +377,7 @@ SYMATTR InstName R19 SYMATTR Value 10k SYMBOL res 1056 720 R0 SYMATTR InstName Rload2 -SYMATTR Value .9 +SYMATTR Value 100 SYMBOL pmos 880 464 M180 SYMATTR InstName M3 SYMATTR Value RSJ250P10 @@ -419,35 +428,62 @@ WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R29 SYMATTR Value 10k -SYMBOL OpAmps\\UniversalOpAmp2 -336 704 R0 +SYMBOL res 1232 208 R90 +WINDOW 0 0 56 VBottom 2 +WINDOW 3 32 56 VTop 2 +SYMATTR InstName R30 +SYMATTR Value 100 +SYMBOL res 1232 304 R90 +WINDOW 0 0 56 VBottom 2 +WINDOW 3 32 56 VTop 2 +SYMATTR InstName R31 +SYMATTR Value 100 +SYMBOL cap 1200 240 R0 +SYMATTR InstName C1 +SYMATTR Value 10n +SYMBOL cap 816 96 R0 +SYMATTR InstName C2 +SYMATTR Value 1220p +SYMBOL OpAmps\\UniversalOpAmp3a -336 704 R0 SYMATTR InstName U1 SYMATTR Value2 Avol=1Meg GBW=4.5Meg Slew=20Meg -SYMATTR SpiceLine Ilimit=75m Rail=0 Vos=0 -SYMBOL OpAmps\\UniversalOpAmp2 -336 480 R0 +SYMATTR SpiceLine Ilimit=75m Rail=0 Vos=0 Phimargin=60 +SYMATTR SpiceLine2 En=10.8 Enk=0 In=0 Ink=0 Rin=500Meg +SYMBOL OpAmps\\UniversalOpAmp3a -336 480 R0 SYMATTR InstName U3 SYMATTR Value2 Avol=1Meg GBW=4.5Meg Slew=20Meg -SYMATTR SpiceLine Ilimit=75m Rail=0 Vos=0 -SYMBOL OpAmps\\UniversalOpAmp2 -336 240 R0 +SYMATTR SpiceLine Ilimit=75m Rail=0 Vos=0 Phimargin=60 +SYMATTR SpiceLine2 En=10.8 Enk=0 In=0 Ink=0 Rin=500Meg +SYMBOL OpAmps\\UniversalOpAmp3a -336 240 R0 SYMATTR InstName U4 SYMATTR Value2 Avol=1Meg GBW=4.5Meg Slew=20Meg -SYMATTR SpiceLine Ilimit=75m Rail=0 Vos=0 -SYMBOL OpAmps\\UniversalOpAmp2 128 256 R0 +SYMATTR SpiceLine Ilimit=75m Rail=0 Vos=0 Phimargin=60 +SYMATTR SpiceLine2 En=10.8 Enk=0 In=0 Ink=0 Rin=500Meg +SYMBOL OpAmps\\UniversalOpAmp3a -176 -48 R0 SYMATTR InstName U5 SYMATTR Value2 Avol=1Meg GBW=4.5Meg Slew=20Meg -SYMATTR SpiceLine Ilimit=75m Rail=0 Vos=0 -SYMBOL OpAmps\\UniversalOpAmp2 -176 -48 R0 +SYMATTR SpiceLine Ilimit=75m Rail=0 Vos=0 Phimargin=60 +SYMATTR SpiceLine2 En=10.8 Enk=0 In=0 Ink=0 Rin=500Meg +SYMBOL OpAmps\\UniversalOpAmp3a 128 256 R0 SYMATTR InstName U6 SYMATTR Value2 Avol=1Meg GBW=4.5Meg Slew=20Meg -SYMATTR SpiceLine Ilimit=75m Rail=0 Vos=0 -SYMBOL OpAmps\\UniversalOpAmp2 464 224 R0 -SYMATTR InstName U2 +SYMATTR SpiceLine Ilimit=75m Rail=0 Vos=0 Phimargin=60 +SYMATTR SpiceLine2 En=10.8 Enk=0 In=0 Ink=0 Rin=500Meg +SYMBOL OpAmps\\UniversalOpAmp3a 464 224 R0 +SYMATTR InstName U9 SYMATTR Value2 Avol=300Meg GBW=14Meg Slew=20Meg -SYMBOL OpAmps\\UniversalOpAmp2 1552 272 R0 +SYMATTR SpiceLine Ilimit=25m Rail=0 Vos=0 Phimargin=60 +SYMATTR SpiceLine2 En=5.2 Enk=0 In=0 Ink=0 Rin=500Meg +SYMBOL OpAmps\\UniversalOpAmp3a 1552 272 R0 SYMATTR InstName U7 -SYMATTR Value2 Avol=300Meg GBW=14Meg Slew=20Meg -SYMBOL OpAmps\\UniversalOpAmp2 1344 608 R0 +SYMATTR Value2 Avol=1Meg GBW=500k Slew=1Meg +SYMATTR SpiceLine Ilimit=25m Rail=0 Vos=0 Phimargin=60 +SYMATTR SpiceLine2 En=110n Enk=0 In=0 Ink=0 Rin=500Meg +SYMBOL OpAmps\\UniversalOpAmp3a 1344 608 R0 SYMATTR InstName U8 -SYMATTR Value2 Avol=300Meg GBW=14Meg Slew=20Meg +SYMATTR Value2 Avol=1Meg GBW=500k Slew=1Meg +SYMATTR SpiceLine Ilimit=25m Rail=0 Vos=0 Phimargin=60 +SYMATTR SpiceLine2 En=110n Enk=0 In=0 Ink=0 Rin=500Meg TEXT 424 16 Left 2 ;Driver Amplifier\n(HV opamp) TEXT 880 -80 Left 2 ;Driver TEXT -376 128 Left 2 ;Voltage Control From 08bbf7f994a4ec388047996c68c46433d5bce19a Mon Sep 17 00:00:00 2001 From: Richard Lin Date: Tue, 13 Jan 2026 00:05:43 -0800 Subject: [PATCH 05/19] wip --- .../UsbSourceMeasure/analysis/power_stage.asc | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/examples/UsbSourceMeasure/analysis/power_stage.asc b/examples/UsbSourceMeasure/analysis/power_stage.asc index eabadeb44..81c1fd227 100644 --- a/examples/UsbSourceMeasure/analysis/power_stage.asc +++ b/examples/UsbSourceMeasure/analysis/power_stage.asc @@ -26,18 +26,18 @@ WIRE -208 48 -240 48 WIRE -96 48 -128 48 WIRE 832 64 832 32 WIRE 880 64 832 64 -WIRE 784 96 784 32 -WIRE 832 96 784 96 WIRE 96 112 64 112 WIRE 192 112 160 112 WIRE 400 112 368 112 WIRE 432 112 400 112 WIRE 544 112 512 112 +WIRE 784 112 784 32 +WIRE 832 112 784 112 WIRE 928 112 928 80 WIRE -96 160 -400 160 -WIRE 992 160 832 160 WIRE 1520 160 1488 160 WIRE 1632 160 1600 160 +WIRE 1008 176 832 176 WIRE -1056 192 -1056 160 WIRE -960 192 -960 160 WIRE -960 192 -1056 192 @@ -57,13 +57,13 @@ WIRE -368 224 -400 224 WIRE 544 224 544 112 WIRE 544 224 496 224 WIRE 672 224 544 224 -WIRE 784 224 784 96 +WIRE 784 224 784 112 WIRE 784 224 752 224 WIRE 800 224 784 224 WIRE 928 224 928 192 -WIRE 992 224 992 160 -WIRE 992 224 928 224 -WIRE 1072 224 992 224 +WIRE 1008 224 1008 176 +WIRE 1008 224 928 224 +WIRE 1072 224 1008 224 WIRE 1136 224 1072 224 WIRE 1280 224 1216 224 WIRE 1488 224 1488 160 @@ -441,9 +441,6 @@ SYMATTR Value 100 SYMBOL cap 1200 240 R0 SYMATTR InstName C1 SYMATTR Value 10n -SYMBOL cap 816 96 R0 -SYMATTR InstName C2 -SYMATTR Value 1220p SYMBOL OpAmps\\UniversalOpAmp3a -336 704 R0 SYMATTR InstName U1 SYMATTR Value2 Avol=1Meg GBW=4.5Meg Slew=20Meg @@ -484,6 +481,9 @@ SYMATTR InstName U8 SYMATTR Value2 Avol=1Meg GBW=500k Slew=1Meg SYMATTR SpiceLine Ilimit=25m Rail=0 Vos=0 Phimargin=60 SYMATTR SpiceLine2 En=110n Enk=0 In=0 Ink=0 Rin=500Meg +SYMBOL cap 816 112 R0 +SYMATTR InstName C2 +SYMATTR Value 3000p TEXT 424 16 Left 2 ;Driver Amplifier\n(HV opamp) TEXT 880 -80 Left 2 ;Driver TEXT -376 128 Left 2 ;Voltage Control From 1f44a0d36ba07b2977672e7025433c0aaf3ef038 Mon Sep 17 00:00:00 2001 From: Richard Lin Date: Tue, 13 Jan 2026 00:15:52 -0800 Subject: [PATCH 06/19] keep iliim amps out of saturation --- .../UsbSourceMeasure/analysis/power_stage.asc | 40 ++++++++++++++++--- 1 file changed, 35 insertions(+), 5 deletions(-) diff --git a/examples/UsbSourceMeasure/analysis/power_stage.asc b/examples/UsbSourceMeasure/analysis/power_stage.asc index 81c1fd227..505bff9e1 100644 --- a/examples/UsbSourceMeasure/analysis/power_stage.asc +++ b/examples/UsbSourceMeasure/analysis/power_stage.asc @@ -34,7 +34,8 @@ WIRE 544 112 512 112 WIRE 784 112 784 32 WIRE 832 112 784 112 WIRE 928 112 928 80 -WIRE -96 160 -400 160 +WIRE -208 160 -400 160 +WIRE -96 160 -128 160 WIRE 1520 160 1488 160 WIRE 1632 160 1600 160 WIRE 1008 176 832 176 @@ -107,8 +108,10 @@ WIRE 1488 368 1488 320 WIRE 1520 368 1488 368 WIRE 1632 368 1600 368 WIRE 880 384 832 384 +WIRE -272 400 -400 400 +WIRE -208 400 -272 400 WIRE -96 400 -96 240 -WIRE -96 400 -400 400 +WIRE -96 400 -128 400 WIRE 784 416 784 224 WIRE 832 416 832 384 WIRE 832 416 784 416 @@ -121,6 +124,7 @@ WIRE 832 448 832 416 WIRE 880 448 832 448 WIRE -400 464 -400 400 WIRE -368 464 -400 464 +WIRE -272 480 -272 464 WIRE -272 480 -304 480 WIRE -96 480 -96 400 WIRE -96 480 -128 480 @@ -138,8 +142,10 @@ WIRE 1424 608 1424 496 WIRE 1424 608 1376 608 WIRE 1456 608 1424 608 WIRE 1520 608 1456 608 +WIRE -272 624 -400 624 +WIRE -208 624 -272 624 WIRE -96 624 -96 480 -WIRE -96 624 -400 624 +WIRE -96 624 -128 624 WIRE 1312 624 1280 624 WIRE -656 656 -688 656 WIRE -560 656 -576 656 @@ -151,6 +157,7 @@ WIRE 1280 656 1280 624 WIRE 1280 656 1248 656 WIRE -400 688 -400 624 WIRE -368 688 -400 688 +WIRE -272 704 -272 688 WIRE -272 704 -304 704 WIRE -96 704 -96 624 WIRE -96 704 -128 704 @@ -322,7 +329,7 @@ SYMBOL res 768 208 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R1 -SYMATTR Value 4.7k +SYMATTR Value 150 SYMBOL voltage -560 192 R90 WINDOW 0 -32 56 VBottom 2 WINDOW 3 32 56 VTop 2 @@ -440,7 +447,7 @@ SYMATTR InstName R31 SYMATTR Value 100 SYMBOL cap 1200 240 R0 SYMATTR InstName C1 -SYMATTR Value 10n +SYMATTR Value 470p SYMBOL OpAmps\\UniversalOpAmp3a -336 704 R0 SYMATTR InstName U1 SYMATTR Value2 Avol=1Meg GBW=4.5Meg Slew=20Meg @@ -484,6 +491,29 @@ SYMATTR SpiceLine2 En=110n Enk=0 In=0 Ink=0 Rin=500Meg SYMBOL cap 816 112 R0 SYMATTR InstName C2 SYMATTR Value 3000p +SYMBOL diode -288 400 R0 +SYMATTR InstName D5 +SYMATTR Value 1N4148 +SYMBOL diode -256 688 R180 +WINDOW 0 24 64 Left 2 +WINDOW 3 24 0 Left 2 +SYMATTR InstName D6 +SYMATTR Value 1N4148 +SYMBOL res -112 384 R90 +WINDOW 0 0 56 VBottom 2 +WINDOW 3 32 56 VTop 2 +SYMATTR InstName R32 +SYMATTR Value 47k +SYMBOL res -112 608 R90 +WINDOW 0 0 56 VBottom 2 +WINDOW 3 32 56 VTop 2 +SYMATTR InstName R33 +SYMATTR Value 47k +SYMBOL res -112 144 R90 +WINDOW 0 0 56 VBottom 2 +WINDOW 3 32 56 VTop 2 +SYMATTR InstName R34 +SYMATTR Value 47k TEXT 424 16 Left 2 ;Driver Amplifier\n(HV opamp) TEXT 880 -80 Left 2 ;Driver TEXT -376 128 Left 2 ;Voltage Control From 3acfa1a387b5a27e3075b72c17f5db5e802321a5 Mon Sep 17 00:00:00 2001 From: Richard Lin Date: Tue, 13 Jan 2026 00:29:34 -0800 Subject: [PATCH 07/19] still trying to make it oscillate --- examples/UsbSourceMeasure/analysis/power_stage.asc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/UsbSourceMeasure/analysis/power_stage.asc b/examples/UsbSourceMeasure/analysis/power_stage.asc index 505bff9e1..785c9e50e 100644 --- a/examples/UsbSourceMeasure/analysis/power_stage.asc +++ b/examples/UsbSourceMeasure/analysis/power_stage.asc @@ -329,7 +329,7 @@ SYMBOL res 768 208 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R1 -SYMATTR Value 150 +SYMATTR Value 4.7k SYMBOL voltage -560 192 R90 WINDOW 0 -32 56 VBottom 2 WINDOW 3 32 56 VTop 2 @@ -447,7 +447,7 @@ SYMATTR InstName R31 SYMATTR Value 100 SYMBOL cap 1200 240 R0 SYMATTR InstName C1 -SYMATTR Value 470p +SYMATTR Value 10n SYMBOL OpAmps\\UniversalOpAmp3a -336 704 R0 SYMATTR InstName U1 SYMATTR Value2 Avol=1Meg GBW=4.5Meg Slew=20Meg From 94fa66fd6d903dda83e6436f06a4fc61f2329e12 Mon Sep 17 00:00:00 2001 From: Richard Lin Date: Tue, 13 Jan 2026 00:34:26 -0800 Subject: [PATCH 08/19] oscillates now --- .../UsbSourceMeasure/analysis/power_stage.asc | 54 +++++++++---------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/examples/UsbSourceMeasure/analysis/power_stage.asc b/examples/UsbSourceMeasure/analysis/power_stage.asc index 785c9e50e..6cc07ab5e 100644 --- a/examples/UsbSourceMeasure/analysis/power_stage.asc +++ b/examples/UsbSourceMeasure/analysis/power_stage.asc @@ -227,7 +227,7 @@ SYMATTR InstName V2 SYMATTR Value 0 SYMBOL res 1056 208 R0 SYMATTR InstName Rsen -SYMATTR Value 10 +SYMATTR Value 1 SYMBOL res 912 240 R0 SYMATTR InstName R2 SYMATTR Value 0 @@ -384,7 +384,7 @@ SYMATTR InstName R19 SYMATTR Value 10k SYMBOL res 1056 720 R0 SYMATTR InstName Rload2 -SYMATTR Value 100 +SYMATTR Value 1 SYMBOL pmos 880 464 M180 SYMATTR InstName M3 SYMATTR Value RSJ250P10 @@ -448,31 +448,6 @@ SYMATTR Value 100 SYMBOL cap 1200 240 R0 SYMATTR InstName C1 SYMATTR Value 10n -SYMBOL OpAmps\\UniversalOpAmp3a -336 704 R0 -SYMATTR InstName U1 -SYMATTR Value2 Avol=1Meg GBW=4.5Meg Slew=20Meg -SYMATTR SpiceLine Ilimit=75m Rail=0 Vos=0 Phimargin=60 -SYMATTR SpiceLine2 En=10.8 Enk=0 In=0 Ink=0 Rin=500Meg -SYMBOL OpAmps\\UniversalOpAmp3a -336 480 R0 -SYMATTR InstName U3 -SYMATTR Value2 Avol=1Meg GBW=4.5Meg Slew=20Meg -SYMATTR SpiceLine Ilimit=75m Rail=0 Vos=0 Phimargin=60 -SYMATTR SpiceLine2 En=10.8 Enk=0 In=0 Ink=0 Rin=500Meg -SYMBOL OpAmps\\UniversalOpAmp3a -336 240 R0 -SYMATTR InstName U4 -SYMATTR Value2 Avol=1Meg GBW=4.5Meg Slew=20Meg -SYMATTR SpiceLine Ilimit=75m Rail=0 Vos=0 Phimargin=60 -SYMATTR SpiceLine2 En=10.8 Enk=0 In=0 Ink=0 Rin=500Meg -SYMBOL OpAmps\\UniversalOpAmp3a -176 -48 R0 -SYMATTR InstName U5 -SYMATTR Value2 Avol=1Meg GBW=4.5Meg Slew=20Meg -SYMATTR SpiceLine Ilimit=75m Rail=0 Vos=0 Phimargin=60 -SYMATTR SpiceLine2 En=10.8 Enk=0 In=0 Ink=0 Rin=500Meg -SYMBOL OpAmps\\UniversalOpAmp3a 128 256 R0 -SYMATTR InstName U6 -SYMATTR Value2 Avol=1Meg GBW=4.5Meg Slew=20Meg -SYMATTR SpiceLine Ilimit=75m Rail=0 Vos=0 Phimargin=60 -SYMATTR SpiceLine2 En=10.8 Enk=0 In=0 Ink=0 Rin=500Meg SYMBOL OpAmps\\UniversalOpAmp3a 464 224 R0 SYMATTR InstName U9 SYMATTR Value2 Avol=300Meg GBW=14Meg Slew=20Meg @@ -514,6 +489,31 @@ WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R34 SYMATTR Value 47k +SYMBOL OpAmps\\UniversalOpAmp3b -336 480 R0 +SYMATTR InstName U2 +SYMATTR Value2 Avol=1Meg GBW=4.5Meg Slew=20Meg +SYMATTR SpiceLine Ilimit=75m Rail=0 Vos=0 Phimargin=60 +SYMATTR SpiceLine2 En=10.8n Enk=0 In=0 Ink=0 Rin=500Meg +SYMBOL OpAmps\\UniversalOpAmp3b -336 704 R0 +SYMATTR InstName U1 +SYMATTR Value2 Avol=1Meg GBW=4.5Meg Slew=20Meg +SYMATTR SpiceLine Ilimit=75m Rail=0 Vos=0 Phimargin=60 +SYMATTR SpiceLine2 En=10.8n Enk=0 In=0 Ink=0 Rin=500Meg +SYMBOL OpAmps\\UniversalOpAmp3b -336 240 R0 +SYMATTR InstName U3 +SYMATTR Value2 Avol=1Meg GBW=4.5Meg Slew=20Meg +SYMATTR SpiceLine Ilimit=75m Rail=0 Vos=0 Phimargin=60 +SYMATTR SpiceLine2 En=10.8n Enk=0 In=0 Ink=0 Rin=500Meg +SYMBOL OpAmps\\UniversalOpAmp3b -176 -48 R0 +SYMATTR InstName U4 +SYMATTR Value2 Avol=1Meg GBW=4.5Meg Slew=20Meg +SYMATTR SpiceLine Ilimit=75m Rail=0 Vos=0 Phimargin=60 +SYMATTR SpiceLine2 En=10.8n Enk=0 In=0 Ink=0 Rin=500Meg +SYMBOL OpAmps\\UniversalOpAmp3b 128 256 R0 +SYMATTR InstName U5 +SYMATTR Value2 Avol=1Meg GBW=4.5Meg Slew=20Meg +SYMATTR SpiceLine Ilimit=75m Rail=0 Vos=0 Phimargin=60 +SYMATTR SpiceLine2 En=10.8n Enk=0 In=0 Ink=0 Rin=500Meg TEXT 424 16 Left 2 ;Driver Amplifier\n(HV opamp) TEXT 880 -80 Left 2 ;Driver TEXT -376 128 Left 2 ;Voltage Control From 4d33be6751b50ec3999ef9f10cf0ab6fe64b341e Mon Sep 17 00:00:00 2001 From: Richard Lin Date: Tue, 13 Jan 2026 00:39:48 -0800 Subject: [PATCH 09/19] Update power_stage.asc --- examples/UsbSourceMeasure/analysis/power_stage.asc | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/examples/UsbSourceMeasure/analysis/power_stage.asc b/examples/UsbSourceMeasure/analysis/power_stage.asc index 6cc07ab5e..9ac002f3a 100644 --- a/examples/UsbSourceMeasure/analysis/power_stage.asc +++ b/examples/UsbSourceMeasure/analysis/power_stage.asc @@ -152,6 +152,7 @@ WIRE -560 656 -576 656 WIRE -544 656 -560 656 WIRE -432 656 -464 656 WIRE 1072 656 1072 320 +WIRE 1072 656 1008 656 WIRE 1168 656 1072 656 WIRE 1280 656 1280 624 WIRE 1280 656 1248 656 @@ -169,6 +170,7 @@ WIRE -368 720 -432 720 WIRE 1072 736 1072 656 WIRE -432 752 -432 720 WIRE -432 752 -464 752 +WIRE 1008 816 1008 800 FLAG 928 -16 +V FLAG -864 304 -V FLAG -864 80 +V @@ -219,15 +221,16 @@ FLAG -384 0 drive FLAG 544 224 drive FLAG 784 32 gate FLAG -64 -144 +Vref +FLAG 1008 816 0 SYMBOL voltage -864 64 R0 SYMATTR InstName V1 SYMATTR Value 20 SYMBOL voltage -864 208 R0 SYMATTR InstName V2 -SYMATTR Value 0 +SYMATTR Value 3.3 SYMBOL res 1056 208 R0 SYMATTR InstName Rsen -SYMATTR Value 1 +SYMATTR Value .1 SYMBOL res 912 240 R0 SYMATTR InstName R2 SYMATTR Value 0 @@ -514,6 +517,9 @@ SYMATTR InstName U5 SYMATTR Value2 Avol=1Meg GBW=4.5Meg Slew=20Meg SYMATTR SpiceLine Ilimit=75m Rail=0 Vos=0 Phimargin=60 SYMATTR SpiceLine2 En=10.8n Enk=0 In=0 Ink=0 Rin=500Meg +SYMBOL cap 992 736 R0 +SYMATTR InstName C3 +SYMATTR Value 10µ TEXT 424 16 Left 2 ;Driver Amplifier\n(HV opamp) TEXT 880 -80 Left 2 ;Driver TEXT -376 128 Left 2 ;Voltage Control From f67fc4f10e935a47bc9da2f23be27e7854dfe4d2 Mon Sep 17 00:00:00 2001 From: Richard Lin Date: Sat, 17 Jan 2026 17:25:16 -0800 Subject: [PATCH 10/19] everything but the math --- edg/abstract_parts/ControlCircuits.py | 112 ++ edg/abstract_parts/__init__.py | 1 + .../resources/CompensatorType2.kicad_sch | 1053 +++++++++++++++++ 3 files changed, 1166 insertions(+) create mode 100644 edg/abstract_parts/ControlCircuits.py create mode 100644 edg/abstract_parts/resources/CompensatorType2.kicad_sch diff --git a/edg/abstract_parts/ControlCircuits.py b/edg/abstract_parts/ControlCircuits.py new file mode 100644 index 000000000..368f2fb24 --- /dev/null +++ b/edg/abstract_parts/ControlCircuits.py @@ -0,0 +1,112 @@ +from typing import Dict + +from typing_extensions import override + +from ..electronics_model import * +from .AbstractResistor import Resistor +from .AbstractCapacitor import Capacitor +from .AbstractOpamp import Opamp +from .Categories import OpampApplication + + +class CompensatorType2(OpampApplication, KiCadSchematicBlock, KiCadImportableBlock): + """A Type II Compensator circuit used in feedback control loops. + + In simple terms, this can be thought of as a inverting integrator (Type I Compensator) + with better high frequency stability. This adds a zero-pole pair centered around the + (parameter) crossover frequency, which provides phase boost near the crossover frequency to improve phase margin. + + K is defined as the ratio of the crossover frequency to the zero frequency. + Higher K (wider plateau in gain vs. frequency) provides more phase boost, but reduces the high-frequency + gain roll-off which reduces noise. + These Ks translate into these phase boosts: + K=1.7 => 30 degrees (lower K: faster response) + K=2.4 => 45 degrees + K=3.7 => 60 degrees (higher K: more damped response, more stable, more phase margin) + K is not toleranced, instead it inherits tolerancing of the crossover frequency. + + The crossover_gain is the target gain (as a ratio, NOT dB) of this circuit in isolation at the crossover frequency. + This is typically the reciprocal of the gain of the plant at that frequency, + leading to G=1 loop gain at the crossover frequency. + + The rin parameter sets the value of the input resistor (R1 in references). This is a degree of freedom + and balances between power consumption (higher R1) and noise (lower R1). Typical values are in mid-kOhm range. + + Real opamps have limited gain-bandwidth, ensure that the crossover frequency is well below the gain bandwidth + of the selected opamp. + + This current implementation omits the bias resistor (R4 in the TI formulation) and assumes the input is DC-based + at the reference voltage. + + References: + "THE K FACTOR: A NEW MATHEMATICAL TOOL FOR STABILITY ANALYSIS AND SYNTHESIS", Venable Instruments + https://4867466.fs1.hubspotusercontent-na2.net/hubfs/4867466/White%20Papers/Documents%20/The%20K%20Factor.pdf + (the implementation of this classes uses this formulation) + + "Demystifying Type II and Type III Compensators Using Op-Amp and OTA for DC/DC Converters" + https://www.ti.com/lit/an/slva662/slva662.pdf + + "Design Type II Compensation In A Systematic Way" + https://www.researchgate.net/profile/Liyu-Cao/publication/256455457_Design_Type_II_Compensation_In_A_Systematic_Way/links/0c960522ba2296f7b2000000/Design-Type-II-Compensation-In-A-Systematic-Way.pdf + this uses a different formulation and provides an alpha factor to shift the crossover frequency leftwards + to provide more gain margin (at the trade-off of some phase margin) + """ + + @override + def symbol_pinning(self, symbol_name: str) -> Dict[str, BasePort]: + mapping: Dict[str, Dict[str, BasePort]] = { + "Simulation_SPICE:OPAMP": { + "+": self.input, + "-": self.reference, + "3": self.output, + "V+": self.pwr, + "V-": self.gnd, + }, + "edg_importable:IntegratorInverting": { + "-": self.input, + "R": self.reference, + "3": self.output, + "V+": self.pwr, + "V-": self.gnd, + }, + } + return mapping[symbol_name] + + def __init__(self, rin: RangeLike, crossover_freq: RangeLike, k: FloatLike, crossover_gain: FloatLike): + super().__init__() + + self.amp = self.Block(Opamp()) + self.pwr = self.Port(VoltageSink.empty(), [Power]) + self.gnd = self.Port(Ground.empty(), [Common]) + + self.input = self.Port(AnalogSink.empty()) + self.output = self.Port(AnalogSource.empty()) + self.reference = self.Port(AnalogSink.empty()) # negative reference for the input and output signals + + self.rin = self.ArgParameter(rin) + self.crossover_freq = self.ArgParameter(crossover_freq) + self.k = self.ArgParameter(k) + self.crossover_gain = self.ArgParameter(crossover_gain) # in ratio, not dB! + + @override + def contents(self) -> None: + super().contents() + + # self.r1 = self.Block(Resistor((1 / self.gain).shrink_multiply(1 / self.capacitance))) + # self.c1 = self.Block(Capacitor(capacitance=self.capacitance, voltage=self.output.link().voltage)) + # self.r1 = self.Block(Resistor((1 / self.gain).shrink_multiply(1 / self.capacitance))) + # self.c1 = self.Block(Capacitor(capacitance=self.capacitance, voltage=self.output.link().voltage)) + + self.import_kicad( + self.file_path("resources", f"{self.__class__.__name__}.kicad_sch"), + conversions={ + "r1.1": AnalogSink(impedance=self.r.actual_resistance), # TODO very simplified and probably very wrong + # these model the opamp in- node + "r1.2": AnalogSource(voltage_out=self.amp.out.voltage_out, impedance=self.r.actual_resistance), + "r2.1": AnalogSink(), + "c2.2": AnalogSink(), + # these model the opamp out node + "c2.1": AnalogSink(), + "c1.1": AnalogSink(), + }, + ) diff --git a/edg/abstract_parts/__init__.py b/edg/abstract_parts/__init__.py index 1c673ec2c..e20252e13 100644 --- a/edg/abstract_parts/__init__.py +++ b/edg/abstract_parts/__init__.py @@ -111,6 +111,7 @@ from .AbstractComparator import Comparator, VoltageComparator from .AbstractOpamp import Opamp, OpampElement, MultipackOpamp, MultipackOpampGenerator from .OpampCircuits import OpampFollower, Amplifier, DifferentialAmplifier, IntegratorInverting +from .ControlCircuits import CompensatorType2 from .AbstractSpiMemory import SpiMemory, SpiMemoryQspi from .OpampCurrentSensor import OpampCurrentSensor from .DigitalAmplifiers import HighSideSwitch, OpenDrainDriver diff --git a/edg/abstract_parts/resources/CompensatorType2.kicad_sch b/edg/abstract_parts/resources/CompensatorType2.kicad_sch new file mode 100644 index 000000000..194e9c656 --- /dev/null +++ b/edg/abstract_parts/resources/CompensatorType2.kicad_sch @@ -0,0 +1,1053 @@ +(kicad_sch + (version 20231120) + (generator "eeschema") + (generator_version "8.0") + (uuid "b55f6c44-5d5d-4524-bb86-893662f64598") + (paper "A4") + (lib_symbols + (symbol "Device:C_Polarized" + (pin_names + (offset 0.254) + ) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "C" + (at 0.635 2.54 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Value" "C_Polarized" + (at 0.635 -2.54 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Footprint" "" + (at 0.9652 -3.81 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Polarized capacitor" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "cap capacitor" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_fp_filters" "CP_*" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "C_Polarized_0_1" + (rectangle + (start -2.286 0.508) + (end 2.286 1.016) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -1.778 2.286) (xy -0.762 2.286) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -1.27 2.794) (xy -1.27 1.778) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (rectangle + (start 2.286 -0.508) + (end -2.286 -1.016) + (stroke + (width 0) + (type default) + ) + (fill + (type outline) + ) + ) + ) + (symbol "C_Polarized_1_1" + (pin passive line + (at 0 3.81 270) + (length 2.794) + (name "~" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 0 -3.81 90) + (length 2.794) + (name "~" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + ) + (symbol "Device:R" + (pin_names + (offset 0) + ) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "R" + (at 2.032 0 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "R" + (at 0 0 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at -1.778 0 90) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Resistor" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "R res resistor" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_fp_filters" "R_*" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "R_0_1" + (rectangle + (start -1.016 -2.54) + (end 1.016 2.54) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + ) + (symbol "R_1_1" + (pin passive line + (at 0 3.81 270) + (length 1.27) + (name "~" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 0 -3.81 90) + (length 1.27) + (name "~" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + ) + (symbol "Simulation_SPICE:OPAMP" + (pin_names + (offset 0.254) + ) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "U" + (at 3.81 3.175 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Value" "OPAMP" + (at 3.81 -3.175 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Footprint" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Operational amplifier, single, node sequence=1:+ 2:- 3:OUT 4:V+ 5:V-" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Spice_Netlist_Enabled" "Y" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + (hide yes) + ) + ) + (property "Spice_Primitive" "X" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + (hide yes) + ) + ) + (property "ki_keywords" "simulation" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "OPAMP_0_1" + (polyline + (pts + (xy 5.08 0) (xy -5.08 5.08) (xy -5.08 -5.08) (xy 5.08 0) + ) + (stroke + (width 0.254) + (type default) + ) + (fill + (type background) + ) + ) + ) + (symbol "OPAMP_1_1" + (pin input line + (at -7.62 2.54 0) + (length 2.54) + (name "+" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin input line + (at -7.62 -2.54 0) + (length 2.54) + (name "-" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin output line + (at 7.62 0 180) + (length 2.54) + (name "~" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "3" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin power_in line + (at -2.54 7.62 270) + (length 3.81) + (name "V+" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "4" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin power_in line + (at -2.54 -7.62 90) + (length 3.81) + (name "V-" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "5" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + ) + ) + (junction + (at 114.3 101.6) + (diameter 0) + (color 0 0 0 0) + (uuid "6a676364-6642-4558-b988-49efa0e618c1") + ) + (junction + (at 134.62 101.6) + (diameter 0) + (color 0 0 0 0) + (uuid "c11058bb-1143-4f01-ae57-5b511043722d") + ) + (junction + (at 114.3 91.44) + (diameter 0) + (color 0 0 0 0) + (uuid "e07546ed-b496-408f-89cc-9577f1c5f175") + ) + (wire + (pts + (xy 116.84 101.6) (xy 114.3 101.6) + ) + (stroke + (width 0) + (type default) + ) + (uuid "172ac3ca-bdbd-4057-b3bd-76e504b236d8") + ) + (wire + (pts + (xy 134.62 109.22) (xy 134.62 101.6) + ) + (stroke + (width 0) + (type default) + ) + (uuid "48a24857-e27a-4f99-823f-16488bc2f549") + ) + (wire + (pts + (xy 114.3 101.6) (xy 114.3 91.44) + ) + (stroke + (width 0) + (type default) + ) + (uuid "9a694a34-354a-4d88-be38-1200fa6849ab") + ) + (wire + (pts + (xy 114.3 101.6) (xy 114.3 109.22) + ) + (stroke + (width 0) + (type default) + ) + (uuid "a216f163-eb09-4515-b399-da7c56a43cc7") + ) + (wire + (pts + (xy 134.62 101.6) (xy 134.62 88.9) + ) + (stroke + (width 0) + (type default) + ) + (uuid "a712503b-04b0-4be4-b6b1-0f9963b498b5") + ) + (wire + (pts + (xy 114.3 91.44) (xy 119.38 91.44) + ) + (stroke + (width 0) + (type default) + ) + (uuid "b7739450-a474-4340-a817-0255fefd13a4") + ) + (wire + (pts + (xy 111.76 91.44) (xy 114.3 91.44) + ) + (stroke + (width 0) + (type default) + ) + (uuid "bde1e851-5e1e-42cf-8b4d-0a60196f05f6") + ) + (wire + (pts + (xy 132.08 101.6) (xy 134.62 101.6) + ) + (stroke + (width 0) + (type default) + ) + (uuid "db2d8316-875d-4f10-a5ed-b8e96c897aa6") + ) + (wire + (pts + (xy 129.54 109.22) (xy 134.62 109.22) + ) + (stroke + (width 0) + (type default) + ) + (uuid "e66a540e-5584-49c6-8a5d-9288a6cbcc61") + ) + (wire + (pts + (xy 114.3 109.22) (xy 121.92 109.22) + ) + (stroke + (width 0) + (type default) + ) + (uuid "fa7427d4-de36-4628-8cb4-886a223ba056") + ) + (global_label "input" + (shape input) + (at 104.14 91.44 180) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + (uuid "03feafe7-ba4c-4cf4-bccd-f6ef69ae85bd") + (property "Intersheetrefs" "${INTERSHEET_REFS}" + (at 96.9493 91.3606 0) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + (hide yes) + ) + ) + ) + (global_label "pwr" + (shape input) + (at 124.46 81.28 180) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + (uuid "15dbe0b0-900f-4726-baea-517b84e445d6") + (property "Intersheetrefs" "${INTERSHEET_REFS}" + (at 118.7812 81.3594 0) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + (hide yes) + ) + ) + ) + (global_label "reference" + (shape input) + (at 119.38 86.36 180) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + (uuid "4ef09170-ecf5-4974-afc9-41933fd0feaf") + (property "Intersheetrefs" "${INTERSHEET_REFS}" + (at 108.0769 86.2806 0) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + (hide yes) + ) + ) + ) + (global_label "output" + (shape output) + (at 134.62 88.9 0) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "bd12e0c1-d282-4405-a38a-bf83e3c47a27") + (property "Intersheetrefs" "${INTERSHEET_REFS}" + (at 143.0807 88.8206 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + (hide yes) + ) + ) + ) + (global_label "gnd" + (shape input) + (at 124.46 96.52 180) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + (uuid "f51483a1-2a12-4e30-ad93-d0ae85257a2f") + (property "Intersheetrefs" "${INTERSHEET_REFS}" + (at 118.5998 96.5994 0) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + (hide yes) + ) + ) + ) + (symbol + (lib_id "Device:R") + (at 120.65 101.6 90) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "0cb21756-d016-49e0-a50e-dc1befcacb06") + (property "Reference" "r2" + (at 120.65 99.06 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "~" + (at 121.9199 99.06 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Footprint" "" + (at 120.65 103.378 90) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 120.65 101.6 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "" + (at 120.65 101.6 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "1b4469ac-e845-428d-9853-1f526836917e") + ) + (pin "2" + (uuid "faaca303-df86-4e98-b329-93e1d642dc9d") + ) + (instances + (project "CompensatorType2" + (path "/b55f6c44-5d5d-4524-bb86-893662f64598" + (reference "r2") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:C_Polarized") + (at 128.27 101.6 270) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "2bd37ecb-75f8-4c01-9c12-cc4a453236db") + (property "Reference" "c1" + (at 128.27 97.79 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "~" + (at 129.159 96.52 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 124.46 102.5652 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 128.27 101.6 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "" + (at 128.27 101.6 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "816c7667-fede-4005-ae81-027c9e93ec0c") + ) + (pin "2" + (uuid "a249629d-4877-47d4-b143-484cae5bde1b") + ) + (instances + (project "" + (path "/b55f6c44-5d5d-4524-bb86-893662f64598" + (reference "c1") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:R") + (at 107.95 91.44 90) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "424113f3-96c6-4684-9d49-1f0508b0acbc") + (property "Reference" "r1" + (at 107.95 88.9 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "~" + (at 109.2199 88.9 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Footprint" "" + (at 107.95 93.218 90) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 107.95 91.44 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "" + (at 107.95 91.44 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "4cbe2935-6180-4837-95ce-5ecece1d9239") + ) + (pin "2" + (uuid "3a310b3d-f8ad-4d95-81da-7cedd9a636bb") + ) + (instances + (project "" + (path "/b55f6c44-5d5d-4524-bb86-893662f64598" + (reference "r1") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Simulation_SPICE:OPAMP") + (at 127 88.9 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "95a16bc8-5b0b-4a19-9511-bfbdba477838") + (property "Reference" "amp" + (at 127 83.82 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "${SIM.PARAMS}" + (at 137.16 86.741 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 127 88.9 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 127 88.9 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "" + (at 127 88.9 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "588d83db-4b71-471d-925d-7b4021b3cc3f") + ) + (pin "2" + (uuid "1ab50293-22fa-4637-8d03-4390ea5f9e23") + ) + (pin "3" + (uuid "b877e4e1-0512-4e43-9ff9-0d7a6e1fb92a") + ) + (pin "4" + (uuid "9ae41ef8-6120-410f-87fd-7b7c6023319b") + ) + (pin "5" + (uuid "63aafb65-2deb-4d0a-903e-ae52aae082e0") + ) + (instances + (project "" + (path "/b55f6c44-5d5d-4524-bb86-893662f64598" + (reference "amp") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:C_Polarized") + (at 125.73 109.22 270) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "ec6c77b5-d52d-4c50-aeaf-1fa02f490209") + (property "Reference" "c2" + (at 125.73 105.41 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "~" + (at 126.619 104.14 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 121.92 110.1852 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 125.73 109.22 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "" + (at 125.73 109.22 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "331374f1-2a28-4f0f-bf38-ccbc566652b1") + ) + (pin "2" + (uuid "11379bd0-4c62-4e12-975a-40688d26ea90") + ) + (instances + (project "CompensatorType2" + (path "/b55f6c44-5d5d-4524-bb86-893662f64598" + (reference "c2") + (unit 1) + ) + ) + ) + ) + (sheet_instances + (path "/" + (page "1") + ) + ) +) From 9d9c4845912f16783ca7c7718c85744ed4cbf226 Mon Sep 17 00:00:00 2001 From: Richard Lin Date: Sat, 17 Jan 2026 18:03:11 -0800 Subject: [PATCH 11/19] wip new params --- .../SourceMeasureControl.kicad_sch | 25 ++++++++++++++++--- examples/test_usb_source_measure.py | 7 +++--- 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/examples/UsbSourceMeasure/SourceMeasureControl.kicad_sch b/examples/UsbSourceMeasure/SourceMeasureControl.kicad_sch index 4ad9755b6..26fdc95fd 100644 --- a/examples/UsbSourceMeasure/SourceMeasureControl.kicad_sch +++ b/examples/UsbSourceMeasure/SourceMeasureControl.kicad_sch @@ -4870,6 +4870,17 @@ ) (uuid "ff60e0dd-6dc8-495e-9e19-e268f29160cb") ) + (text "plant parameters (crossover_gain)\ndetermined using SPICE, see analysis folder" + (exclude_from_sim no) + (at 100.076 112.014 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left bottom) + ) + (uuid "0fdd7b93-ff6e-4737-af87-fe168ad3c93a") + ) (text "smaller ratio to keep the opamp input\nmostly within the 3.3v rail limits" (exclude_from_sim no) (at 63.754 63.5 0) @@ -6813,7 +6824,7 @@ ) ) ) - (property "Value" "#IntegratorInverting(" + (property "Value" "#CompensatorType2(" (at 113.03 99.06 0) (effects (font @@ -6848,7 +6859,7 @@ (hide yes) ) ) - (property "Value2" "gain=100/4.7*kHertz(tol=0.15)," + (property "Value2" "rin=4.7*kOhm(tol=0.02)," (at 113.03 101.346 0) (effects (font @@ -6856,7 +6867,7 @@ ) ) ) - (property "Value3" "capacitance=10*nFarad(tol=0.1))" + (property "Value3" "crossover_freq=500*KHertz(tol=0.25)," (at 113.03 103.632 0) (effects (font @@ -6864,6 +6875,14 @@ ) ) ) + (property "Field7" "k=2.4, crossover_gain=100)" + (at 113.03 105.918 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) (pin "1" (uuid "3f76f7ad-5989-4ec0-bb9b-25cf3c4cff58") ) diff --git a/examples/test_usb_source_measure.py b/examples/test_usb_source_measure.py index 77f86a3b8..27465c85d 100644 --- a/examples/test_usb_source_measure.py +++ b/examples/test_usb_source_measure.py @@ -197,7 +197,8 @@ def contents(self) -> None: power=self.pwr.link().voltage * self.current, ) ) - resistance = 3.0 * kOhm(tol=0.05) # 3 x 1k in series + resistance = 110 * Ohm(tol=0.02) # low enough for a fast slew on FET Ciss + max_opamp_current = 0.07 # amps max_clamp_voltage = ( VoltageLink._supply_voltage_range(self.pwr_gate_neg, self.pwr_gate_pos).upper() - self.gate_clamp_voltage.lower() @@ -205,7 +206,7 @@ def contents(self) -> None: self.res = self.Block( Resistor( resistance=resistance, - power=(0, max_clamp_voltage * max_clamp_voltage / resistance.lower()), + power=(0, max_opamp_current ** 2 * resistance.upper()), voltage=(0, max_clamp_voltage), ) ) @@ -1049,7 +1050,7 @@ def refinements(self) -> Refinements: (["control", "isense", "ranges[0]", "isense", "res", "res", "require_basic_part"], False), (["control", "isense", "ranges[1]", "isense", "res", "res", "require_basic_part"], False), (["control", "isense", "ranges[2]", "isense", "res", "res", "require_basic_part"], False), - (["control", "driver", "res", "count"], 3), + (["control", "driver", "res", "count"], 5), (["control", "driver", "high_fet", "footprint_spec"], "Package_TO_SOT_THT:TO-220-3_Horizontal_TabUp"), (["control", "driver", "high_fet", "part_spec"], "IRF540N"), (["control", "driver", "low_fet", "footprint_spec"], "Package_TO_SOT_THT:TO-220-3_Horizontal_TabUp"), From a76b65f82163f4ec4eb68653fd312af4f8c3f87e Mon Sep 17 00:00:00 2001 From: Richard Lin Date: Sat, 17 Jan 2026 20:00:43 -0800 Subject: [PATCH 12/19] stabilized @ fc=80kHz --- edg/abstract_parts/ControlCircuits.py | 15 +++++++++------ .../resources/CompensatorType2.kicad_sch | 2 +- .../SourceMeasureControl.kicad_sch | 4 ++-- examples/test_usb_source_measure.py | 6 ++++-- 4 files changed, 16 insertions(+), 11 deletions(-) diff --git a/edg/abstract_parts/ControlCircuits.py b/edg/abstract_parts/ControlCircuits.py index 368f2fb24..2f7bd76fb 100644 --- a/edg/abstract_parts/ControlCircuits.py +++ b/edg/abstract_parts/ControlCircuits.py @@ -1,3 +1,4 @@ +import math from typing import Dict from typing_extensions import override @@ -92,17 +93,19 @@ def __init__(self, rin: RangeLike, crossover_freq: RangeLike, k: FloatLike, cros def contents(self) -> None: super().contents() - # self.r1 = self.Block(Resistor((1 / self.gain).shrink_multiply(1 / self.capacitance))) - # self.c1 = self.Block(Capacitor(capacitance=self.capacitance, voltage=self.output.link().voltage)) - # self.r1 = self.Block(Resistor((1 / self.gain).shrink_multiply(1 / self.capacitance))) - # self.c1 = self.Block(Capacitor(capacitance=self.capacitance, voltage=self.output.link().voltage)) + self.r1 = self.Block(Resistor(self.rin)) + self.c2 = self.Block(Capacitor(capacitance=1 / (2 * math.pi * self.crossover_freq * self.crossover_gain * self.k * self.r1.actual_resistance), + voltage=self.output.link().voltage)) + self.c1 = self.Block(Capacitor(capacitance=self.c2.capacitance * (self.k * self.k - 1), + voltage=self.output.link().voltage)) + self.r2 = self.Block(Resistor(self.k / (2 * math.pi * self.crossover_freq * self.c1.actual_capacitance))) self.import_kicad( self.file_path("resources", f"{self.__class__.__name__}.kicad_sch"), conversions={ - "r1.1": AnalogSink(impedance=self.r.actual_resistance), # TODO very simplified and probably very wrong + "r1.1": AnalogSink(impedance=self.r1.actual_resistance), # TODO very simplified and probably very wrong # these model the opamp in- node - "r1.2": AnalogSource(voltage_out=self.amp.out.voltage_out, impedance=self.r.actual_resistance), + "r1.2": AnalogSource(voltage_out=self.amp.out.voltage_out, impedance=self.r1.actual_resistance), "r2.1": AnalogSink(), "c2.2": AnalogSink(), # these model the opamp out node diff --git a/edg/abstract_parts/resources/CompensatorType2.kicad_sch b/edg/abstract_parts/resources/CompensatorType2.kicad_sch index 194e9c656..8e14ddbf8 100644 --- a/edg/abstract_parts/resources/CompensatorType2.kicad_sch +++ b/edg/abstract_parts/resources/CompensatorType2.kicad_sch @@ -919,7 +919,7 @@ ) ) ) - (property "Value" "${SIM.PARAMS}" + (property "Value" "" (at 137.16 86.741 0) (effects (font diff --git a/examples/UsbSourceMeasure/SourceMeasureControl.kicad_sch b/examples/UsbSourceMeasure/SourceMeasureControl.kicad_sch index 26fdc95fd..f5644663c 100644 --- a/examples/UsbSourceMeasure/SourceMeasureControl.kicad_sch +++ b/examples/UsbSourceMeasure/SourceMeasureControl.kicad_sch @@ -6867,7 +6867,7 @@ ) ) ) - (property "Value3" "crossover_freq=500*KHertz(tol=0.25)," + (property "Value3" "crossover_freq=100*kHertz(tol=0.10)," (at 113.03 103.632 0) (effects (font @@ -6875,7 +6875,7 @@ ) ) ) - (property "Field7" "k=2.4, crossover_gain=100)" + (property "Value4" "k=2.4, crossover_gain=0.075)" (at 113.03 105.918 0) (effects (font diff --git a/examples/test_usb_source_measure.py b/examples/test_usb_source_measure.py index 27465c85d..68e099766 100644 --- a/examples/test_usb_source_measure.py +++ b/examples/test_usb_source_measure.py @@ -197,7 +197,9 @@ def contents(self) -> None: power=self.pwr.link().voltage * self.current, ) ) - resistance = 110 * Ohm(tol=0.02) # low enough for a fast slew on FET Ciss + # resistance is low enough to slew the FET Ciss, + # but high enough to allow the clamping zeners to control an overvoltage + resistance = 45 * Ohm(tol=0.02) max_opamp_current = 0.07 # amps max_clamp_voltage = ( VoltageLink._supply_voltage_range(self.pwr_gate_neg, self.pwr_gate_pos).upper() @@ -1050,7 +1052,7 @@ def refinements(self) -> Refinements: (["control", "isense", "ranges[0]", "isense", "res", "res", "require_basic_part"], False), (["control", "isense", "ranges[1]", "isense", "res", "res", "require_basic_part"], False), (["control", "isense", "ranges[2]", "isense", "res", "res", "require_basic_part"], False), - (["control", "driver", "res", "count"], 5), + (["control", "driver", "res", "count"], 3), (["control", "driver", "high_fet", "footprint_spec"], "Package_TO_SOT_THT:TO-220-3_Horizontal_TabUp"), (["control", "driver", "high_fet", "part_spec"], "IRF540N"), (["control", "driver", "low_fet", "footprint_spec"], "Package_TO_SOT_THT:TO-220-3_Horizontal_TabUp"), From d8dad8492475675667dfa7d52e0dd6a78716ae59 Mon Sep 17 00:00:00 2001 From: Richard Lin Date: Sat, 17 Jan 2026 22:09:18 -0800 Subject: [PATCH 13/19] improve docs --- edg/abstract_parts/ControlCircuits.py | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/edg/abstract_parts/ControlCircuits.py b/edg/abstract_parts/ControlCircuits.py index 2f7bd76fb..8268834b6 100644 --- a/edg/abstract_parts/ControlCircuits.py +++ b/edg/abstract_parts/ControlCircuits.py @@ -15,9 +15,11 @@ class CompensatorType2(OpampApplication, KiCadSchematicBlock, KiCadImportableBlo In simple terms, this can be thought of as a inverting integrator (Type I Compensator) with better high frequency stability. This adds a zero-pole pair centered around the - (parameter) crossover frequency, which provides phase boost near the crossover frequency to improve phase margin. + (parameter) crossover frequency fc, which provides phase boost near fc to improve phase margin. + In some cases, this target may be set lower than the actual crossover frequency to achieve better gain margin, + at the cost of phase margin. - K is defined as the ratio of the crossover frequency to the zero frequency. + K is defined as the ratio of the fc to the zero frequency fz, so fz=fc/K and fp=fc*K. Higher K (wider plateau in gain vs. frequency) provides more phase boost, but reduces the high-frequency gain roll-off which reduces noise. These Ks translate into these phase boosts: @@ -26,15 +28,15 @@ class CompensatorType2(OpampApplication, KiCadSchematicBlock, KiCadImportableBlo K=3.7 => 60 degrees (higher K: more damped response, more stable, more phase margin) K is not toleranced, instead it inherits tolerancing of the crossover frequency. - The crossover_gain is the target gain (as a ratio, NOT dB) of this circuit in isolation at the crossover frequency. - This is typically the reciprocal of the gain of the plant at that frequency, - leading to G=1 loop gain at the crossover frequency. + The crossover_gain is the target gain (as a ratio, NOT dB) of this circuit in isolation at fc. + This is usually the reciprocal of the plant gain at that frequency so loop gain is 1 at fc. + This parameter may be determined or tuned through simulation. The rin parameter sets the value of the input resistor (R1 in references). This is a degree of freedom and balances between power consumption (higher R1) and noise (lower R1). Typical values are in mid-kOhm range. - Real opamps have limited gain-bandwidth, ensure that the crossover frequency is well below the gain bandwidth - of the selected opamp. + Real opamps have limited gain-bandwidth, ensure that the crossover frequency is well below (roughly at least 10x) + the gain-bandwidth of the selected opamp. This current implementation omits the bias resistor (R4 in the TI formulation) and assumes the input is DC-based at the reference voltage. @@ -47,10 +49,9 @@ class CompensatorType2(OpampApplication, KiCadSchematicBlock, KiCadImportableBlo "Demystifying Type II and Type III Compensators Using Op-Amp and OTA for DC/DC Converters" https://www.ti.com/lit/an/slva662/slva662.pdf - "Design Type II Compensation In A Systematic Way" + "Design Type II Compensation In A Systematic Way", Liyu Cao https://www.researchgate.net/profile/Liyu-Cao/publication/256455457_Design_Type_II_Compensation_In_A_Systematic_Way/links/0c960522ba2296f7b2000000/Design-Type-II-Compensation-In-A-Systematic-Way.pdf - this uses a different formulation and provides an alpha factor to shift the crossover frequency leftwards - to provide more gain margin (at the trade-off of some phase margin) + this formulation uses an alpha factor to shift the crossover frequency leftwards, for more gain margin """ @override From d298019e51980c3d62dd6f412c460d5a6a3d8563 Mon Sep 17 00:00:00 2001 From: Richard Lin Date: Sun, 18 Jan 2026 12:44:15 -0800 Subject: [PATCH 14/19] tuned control loop --- edg/abstract_parts/ControlCircuits.py | 34 +++++++++++++------ .../SourceMeasureControl.kicad_sch | 2 +- examples/test_usb_source_measure.py | 2 +- 3 files changed, 26 insertions(+), 12 deletions(-) diff --git a/edg/abstract_parts/ControlCircuits.py b/edg/abstract_parts/ControlCircuits.py index 8268834b6..bbe13dc83 100644 --- a/edg/abstract_parts/ControlCircuits.py +++ b/edg/abstract_parts/ControlCircuits.py @@ -13,7 +13,7 @@ class CompensatorType2(OpampApplication, KiCadSchematicBlock, KiCadImportableBlock): """A Type II Compensator circuit used in feedback control loops. - In simple terms, this can be thought of as a inverting integrator (Type I Compensator) + In simple terms, this can be thought of as an inverting integrator (Type I Compensator) with better high frequency stability. This adds a zero-pole pair centered around the (parameter) crossover frequency fc, which provides phase boost near fc to improve phase margin. In some cases, this target may be set lower than the actual crossover frequency to achieve better gain margin, @@ -26,14 +26,16 @@ class CompensatorType2(OpampApplication, KiCadSchematicBlock, KiCadImportableBlo K=1.7 => 30 degrees (lower K: faster response) K=2.4 => 45 degrees K=3.7 => 60 degrees (higher K: more damped response, more stable, more phase margin) - K is not toleranced, instead it inherits tolerancing of the crossover frequency. + + The tolerancing of fc affects the variance of the center frequency of the phase boost, + while the tolerancing of K affects variance in phase boost and plateau width. The crossover_gain is the target gain (as a ratio, NOT dB) of this circuit in isolation at fc. This is usually the reciprocal of the plant gain at that frequency so loop gain is 1 at fc. This parameter may be determined or tuned through simulation. The rin parameter sets the value of the input resistor (R1 in references). This is a degree of freedom - and balances between power consumption (higher R1) and noise (lower R1). Typical values are in mid-kOhm range. + and balances power consumption (higher R1) and noise (lower R1). Typical values are in mid-kOhm range. Real opamps have limited gain-bandwidth, ensure that the crossover frequency is well below (roughly at least 10x) the gain-bandwidth of the selected opamp. @@ -44,7 +46,7 @@ class CompensatorType2(OpampApplication, KiCadSchematicBlock, KiCadImportableBlo References: "THE K FACTOR: A NEW MATHEMATICAL TOOL FOR STABILITY ANALYSIS AND SYNTHESIS", Venable Instruments https://4867466.fs1.hubspotusercontent-na2.net/hubfs/4867466/White%20Papers/Documents%20/The%20K%20Factor.pdf - (the implementation of this classes uses this formulation) + (the implementation of this class uses this formulation) "Demystifying Type II and Type III Compensators Using Op-Amp and OTA for DC/DC Converters" https://www.ti.com/lit/an/slva662/slva662.pdf @@ -74,7 +76,7 @@ def symbol_pinning(self, symbol_name: str) -> Dict[str, BasePort]: } return mapping[symbol_name] - def __init__(self, rin: RangeLike, crossover_freq: RangeLike, k: FloatLike, crossover_gain: FloatLike): + def __init__(self, rin: RangeLike, crossover_freq: RangeLike, k: RangeLike, crossover_gain: FloatLike): super().__init__() self.amp = self.Block(Opamp()) @@ -95,11 +97,23 @@ def contents(self) -> None: super().contents() self.r1 = self.Block(Resistor(self.rin)) - self.c2 = self.Block(Capacitor(capacitance=1 / (2 * math.pi * self.crossover_freq * self.crossover_gain * self.k * self.r1.actual_resistance), - voltage=self.output.link().voltage)) - self.c1 = self.Block(Capacitor(capacitance=self.c2.capacitance * (self.k * self.k - 1), - voltage=self.output.link().voltage)) - self.r2 = self.Block(Resistor(self.k / (2 * math.pi * self.crossover_freq * self.c1.actual_capacitance))) + self.c2 = self.Block( + Capacitor( + capacitance=(1 / (2 * math.pi * self.crossover_freq * self.crossover_gain * self.k)).shrink_multiply( + 1 / self.r1.actual_resistance + ), + voltage=self.output.link().voltage, + ) + ) + self.c1 = self.Block( + Capacitor( + capacitance=(self.k * self.k - 1).shrink_multiply(self.c2.actual_capacitance), + voltage=self.output.link().voltage, + ) + ) + self.r2 = self.Block( + Resistor((self.k / (2 * math.pi * self.crossover_freq)).shrink_multiply(1 / self.c1.actual_capacitance)) + ) self.import_kicad( self.file_path("resources", f"{self.__class__.__name__}.kicad_sch"), diff --git a/examples/UsbSourceMeasure/SourceMeasureControl.kicad_sch b/examples/UsbSourceMeasure/SourceMeasureControl.kicad_sch index f5644663c..011c911d6 100644 --- a/examples/UsbSourceMeasure/SourceMeasureControl.kicad_sch +++ b/examples/UsbSourceMeasure/SourceMeasureControl.kicad_sch @@ -6875,7 +6875,7 @@ ) ) ) - (property "Value4" "k=2.4, crossover_gain=0.075)" + (property "Value4" "k=2.4*Ratio(tol=0.20), crossover_gain=0.1)" (at 113.03 105.918 0) (effects (font diff --git a/examples/test_usb_source_measure.py b/examples/test_usb_source_measure.py index 68e099766..3e53476ee 100644 --- a/examples/test_usb_source_measure.py +++ b/examples/test_usb_source_measure.py @@ -208,7 +208,7 @@ def contents(self) -> None: self.res = self.Block( Resistor( resistance=resistance, - power=(0, max_opamp_current ** 2 * resistance.upper()), + power=(0, max_opamp_current**2 * resistance.upper()), voltage=(0, max_clamp_voltage), ) ) From 3a4c79ec254bfc2289ffb0bedd2084cfe20f241b Mon Sep 17 00:00:00 2001 From: Richard Lin Date: Sun, 18 Jan 2026 12:45:22 -0800 Subject: [PATCH 15/19] Update power_stage.asc --- .../UsbSourceMeasure/analysis/power_stage.asc | 68 ++++++++++++------- 1 file changed, 44 insertions(+), 24 deletions(-) diff --git a/examples/UsbSourceMeasure/analysis/power_stage.asc b/examples/UsbSourceMeasure/analysis/power_stage.asc index 9ac002f3a..8f3447bb2 100644 --- a/examples/UsbSourceMeasure/analysis/power_stage.asc +++ b/examples/UsbSourceMeasure/analysis/power_stage.asc @@ -26,19 +26,19 @@ WIRE -208 48 -240 48 WIRE -96 48 -128 48 WIRE 832 64 832 32 WIRE 880 64 832 64 +WIRE 64 112 64 16 WIRE 96 112 64 112 WIRE 192 112 160 112 +WIRE 208 112 208 16 +WIRE 208 112 192 112 WIRE 400 112 368 112 WIRE 432 112 400 112 WIRE 544 112 512 112 -WIRE 784 112 784 32 -WIRE 832 112 784 112 WIRE 928 112 928 80 WIRE -208 160 -400 160 WIRE -96 160 -128 160 WIRE 1520 160 1488 160 WIRE 1632 160 1600 160 -WIRE 1008 176 832 176 WIRE -1056 192 -1056 160 WIRE -960 192 -960 160 WIRE -960 192 -1056 192 @@ -57,14 +57,13 @@ WIRE -400 224 -400 160 WIRE -368 224 -400 224 WIRE 544 224 544 112 WIRE 544 224 496 224 -WIRE 672 224 544 224 -WIRE 784 224 784 112 +WIRE 576 224 544 224 +WIRE 672 224 656 224 +WIRE 784 224 784 32 WIRE 784 224 752 224 WIRE 800 224 784 224 WIRE 928 224 928 192 -WIRE 1008 224 1008 176 -WIRE 1008 224 928 224 -WIRE 1072 224 1008 224 +WIRE 1072 224 928 224 WIRE 1136 224 1072 224 WIRE 1280 224 1216 224 WIRE 1488 224 1488 160 @@ -94,6 +93,8 @@ WIRE 1664 272 1632 272 WIRE 1728 272 1664 272 WIRE -432 288 -432 256 WIRE -432 288 -464 288 +WIRE 752 288 752 224 +WIRE 752 288 720 288 WIRE 1520 288 1488 288 WIRE 1072 320 1072 304 WIRE 1136 320 1072 320 @@ -167,6 +168,7 @@ WIRE 1312 704 1280 704 WIRE 1424 704 1392 704 WIRE -432 720 -432 656 WIRE -368 720 -432 720 +WIRE 1008 736 1008 656 WIRE 1072 736 1072 656 WIRE -432 752 -432 720 WIRE -432 752 -464 752 @@ -222,6 +224,8 @@ FLAG 544 224 drive FLAG 784 32 gate FLAG -64 -144 +Vref FLAG 1008 816 0 +FLAG 720 368 0 +FLAG 720 288 x SYMBOL voltage -864 64 R0 SYMATTR InstName V1 SYMATTR Value 20 @@ -230,7 +234,7 @@ SYMATTR InstName V2 SYMATTR Value 3.3 SYMBOL res 1056 208 R0 SYMATTR InstName Rsen -SYMATTR Value .1 +SYMATTR Value 10 SYMBOL res 912 240 R0 SYMATTR InstName R2 SYMATTR Value 0 @@ -262,7 +266,7 @@ SYMBOL cap 160 96 R90 WINDOW 0 0 32 VBottom 2 WINDOW 3 32 32 VTop 2 SYMATTR InstName C4 -SYMATTR Value 1n +SYMATTR Value 3µ SYMBOL res 1408 480 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 @@ -328,18 +332,18 @@ WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R12 SYMATTR Value 4.7k -SYMBOL res 768 208 R90 +SYMBOL res 672 208 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R1 -SYMATTR Value 4.7k +SYMATTR Value 45 SYMBOL voltage -560 192 R90 WINDOW 0 -32 56 VBottom 2 WINDOW 3 32 56 VTop 2 WINDOW 123 0 0 Left 0 WINDOW 39 0 0 Left 0 SYMATTR InstName V6 -SYMATTR Value PULSE(0 -1 1m 1u 1u 1m 2m 10) +SYMATTR Value -1 SYMBOL res -448 736 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 @@ -387,7 +391,7 @@ SYMATTR InstName R19 SYMATTR Value 10k SYMBOL res 1056 720 R0 SYMATTR InstName Rload2 -SYMATTR Value 1 +SYMATTR Value 10 SYMBOL pmos 880 464 M180 SYMATTR InstName M3 SYMATTR Value RSJ250P10 @@ -450,7 +454,7 @@ SYMATTR InstName R31 SYMATTR Value 100 SYMBOL cap 1200 240 R0 SYMATTR InstName C1 -SYMATTR Value 10n +SYMATTR Value 470p SYMBOL OpAmps\\UniversalOpAmp3a 464 224 R0 SYMATTR InstName U9 SYMATTR Value2 Avol=300Meg GBW=14Meg Slew=20Meg @@ -466,9 +470,6 @@ SYMATTR InstName U8 SYMATTR Value2 Avol=1Meg GBW=500k Slew=1Meg SYMATTR SpiceLine Ilimit=25m Rail=0 Vos=0 Phimargin=60 SYMATTR SpiceLine2 En=110n Enk=0 In=0 Ink=0 Rin=500Meg -SYMBOL cap 816 112 R0 -SYMATTR InstName C2 -SYMATTR Value 3000p SYMBOL diode -288 400 R0 SYMATTR InstName D5 SYMATTR Value 1N4148 @@ -517,18 +518,37 @@ SYMATTR InstName U5 SYMATTR Value2 Avol=1Meg GBW=4.5Meg Slew=20Meg SYMATTR SpiceLine Ilimit=75m Rail=0 Vos=0 Phimargin=60 SYMATTR SpiceLine2 En=10.8n Enk=0 In=0 Ink=0 Rin=500Meg -SYMBOL cap 992 736 R0 -SYMATTR InstName C3 -SYMATTR Value 10µ +SYMBOL voltage 768 224 R90 +WINDOW 0 -32 56 VBottom 2 +WINDOW 3 32 56 VTop 2 +SYMATTR InstName Vi +SYMATTR Value AC {u(-prb)} +SYMBOL current 720 368 R180 +WINDOW 0 24 80 Left 2 +WINDOW 3 24 0 Left 2 +SYMATTR InstName Ii +SYMATTR Value AC {u(prb)} +SYMBOL cap 128 0 R90 +WINDOW 0 0 32 VBottom 2 +WINDOW 3 32 32 VTop 2 +SYMATTR InstName C2 +SYMATTR Value 34p +SYMBOL res 224 0 R90 +WINDOW 0 0 56 VBottom 2 +WINDOW 3 32 56 VTop 2 +SYMATTR InstName R35 +SYMATTR Value .047 TEXT 424 16 Left 2 ;Driver Amplifier\n(HV opamp) TEXT 880 -80 Left 2 ;Driver TEXT -376 128 Left 2 ;Voltage Control -TEXT 80 16 Left 2 ;Error\nIntegrator +TEXT 88 -72 Left 2 ;Error\nIntegrator TEXT -376 368 Left 2 ;Source Control -TEXT -936 16 Left 2 !.tran 3ms uic TEXT 1456 440 Left 2 ;1/20 V/V differential voltage sense\n(re-centering 0V -> +Vref, HV opamp) TEXT -1056 -8 Left 2 ;Voltage Rails TEXT 1272 440 Left 2 ;Voltage Sense TEXT 1656 96 Left 2 ;1/10 V/A current sense\n(HV opamp) TEXT 1480 104 Left 2 ;Current Sense -TEXT -248 -216 Left 2 ;Voltage Sense +TEXT -248 -216 Left 2 ;Off-state feedback +TEXT 24 456 Left 2 !.step param prb list -1 1\n.ac dec 30 .1 100Meg\n; .param prb=0\n; .tran 3ms uic +TEXT 32 392 Left 2 !.ic v(vint)=1.65 +TEXT 24 600 Left 2 !; This uses the Tian method for loop gain / phase analysis,\n; see LTSpice examples/Educational/LoopGain2.asc\n.func T() -1/(1-1/(2*(I(Vi)@1*V(x)@2-V(x)@1*I(Vi)@2)+V(x)@1+I(Vi)@2)) From 7639893692ed1e84e3b110969f06f52813d18a21 Mon Sep 17 00:00:00 2001 From: Richard Lin Date: Mon, 19 Jan 2026 12:36:45 -0800 Subject: [PATCH 16/19] wip load step analysis --- .../UsbSourceMeasure/analysis/power_stage.asc | 338 +++++++++--------- 1 file changed, 175 insertions(+), 163 deletions(-) diff --git a/examples/UsbSourceMeasure/analysis/power_stage.asc b/examples/UsbSourceMeasure/analysis/power_stage.asc index 8f3447bb2..e53c27cad 100644 --- a/examples/UsbSourceMeasure/analysis/power_stage.asc +++ b/examples/UsbSourceMeasure/analysis/power_stage.asc @@ -1,29 +1,30 @@ Version 4.1 SHEET 1 2092 1408 -WIRE -208 -160 -240 -160 -WIRE -96 -160 -128 -160 -WIRE 48 -144 16 -144 -WIRE -352 -96 -384 -96 -WIRE -240 -96 -240 -160 -WIRE -240 -96 -272 -96 -WIRE -240 -64 -240 -96 -WIRE -208 -64 -240 -64 -WIRE -96 -48 -96 -160 -WIRE -96 -48 -144 -48 -WIRE -64 -48 -96 -48 -WIRE 48 -48 48 -144 -WIRE 48 -48 16 -48 -WIRE -208 -32 -240 -32 -WIRE -352 0 -384 0 -WIRE -240 0 -240 -32 -WIRE -240 0 -272 0 +WIRE -432 -192 -464 -192 +WIRE -320 -192 -352 -192 +WIRE -176 -176 -208 -176 +WIRE -576 -128 -608 -128 +WIRE -464 -128 -464 -192 +WIRE -464 -128 -496 -128 +WIRE -464 -96 -464 -128 +WIRE -432 -96 -464 -96 +WIRE -320 -80 -320 -192 +WIRE -320 -80 -368 -80 +WIRE -288 -80 -320 -80 +WIRE -176 -80 -176 -176 +WIRE -176 -80 -208 -80 +WIRE -432 -64 -464 -64 +WIRE -576 -32 -608 -32 +WIRE -464 -32 -464 -64 +WIRE -464 -32 -496 -32 WIRE 880 0 832 0 +WIRE -464 16 -464 -32 +WIRE -432 16 -464 16 +WIRE -320 16 -352 16 +WIRE 432 16 400 16 WIRE 832 32 832 0 WIRE 832 32 784 32 WIRE 864 32 832 32 -WIRE -240 48 -240 0 -WIRE -208 48 -240 48 -WIRE -96 48 -128 48 WIRE 832 64 832 32 WIRE 880 64 832 64 WIRE 64 112 64 16 @@ -31,12 +32,12 @@ WIRE 96 112 64 112 WIRE 192 112 160 112 WIRE 208 112 208 16 WIRE 208 112 192 112 -WIRE 400 112 368 112 +WIRE 400 112 400 16 WIRE 432 112 400 112 WIRE 544 112 512 112 WIRE 928 112 928 80 -WIRE -208 160 -400 160 -WIRE -96 160 -128 160 +WIRE -272 160 -464 160 +WIRE -160 160 -192 160 WIRE 1520 160 1488 160 WIRE 1632 160 1600 160 WIRE -1056 192 -1056 160 @@ -44,17 +45,17 @@ WIRE -960 192 -960 160 WIRE -960 192 -1056 192 WIRE -864 192 -864 160 WIRE -864 192 -960 192 -WIRE -656 192 -688 192 -WIRE -560 192 -576 192 -WIRE -544 192 -560 192 -WIRE -432 192 -464 192 +WIRE -720 192 -752 192 +WIRE -624 192 -640 192 +WIRE -608 192 -624 192 +WIRE -496 192 -528 192 WIRE 400 208 400 112 WIRE 432 208 400 208 WIRE -1056 224 -1056 192 WIRE -960 224 -960 192 WIRE -864 224 -864 192 -WIRE -400 224 -400 160 -WIRE -368 224 -400 224 +WIRE -464 224 -464 160 +WIRE -432 224 -464 224 WIRE 544 224 544 112 WIRE 544 224 496 224 WIRE 576 224 544 224 @@ -68,17 +69,17 @@ WIRE 1136 224 1072 224 WIRE 1280 224 1216 224 WIRE 1488 224 1488 160 WIRE 1488 224 1456 224 -WIRE -208 240 -304 240 -WIRE -96 240 -96 160 -WIRE -96 240 -128 240 -WIRE -64 240 -96 240 +WIRE -272 240 -368 240 +WIRE -160 240 -160 160 +WIRE -160 240 -192 240 +WIRE -128 240 -160 240 WIRE 64 240 64 112 WIRE 64 240 16 240 WIRE 96 240 64 240 WIRE 432 240 400 240 WIRE 1216 240 1216 224 -WIRE -432 256 -432 192 -WIRE -368 256 -432 256 +WIRE -496 256 -496 192 +WIRE -432 256 -496 256 WIRE 192 256 192 112 WIRE 192 256 160 256 WIRE 400 256 400 240 @@ -91,11 +92,12 @@ WIRE 1632 272 1632 160 WIRE 1632 272 1584 272 WIRE 1664 272 1632 272 WIRE 1728 272 1664 272 -WIRE -432 288 -432 256 -WIRE -432 288 -464 288 +WIRE -496 288 -496 256 +WIRE -496 288 -528 288 WIRE 752 288 752 224 WIRE 752 288 720 288 WIRE 1520 288 1488 288 +WIRE -64 304 -64 240 WIRE 1072 320 1072 304 WIRE 1136 320 1072 320 WIRE 1216 320 1216 304 @@ -109,32 +111,34 @@ WIRE 1488 368 1488 320 WIRE 1520 368 1488 368 WIRE 1632 368 1600 368 WIRE 880 384 832 384 -WIRE -272 400 -400 400 -WIRE -208 400 -272 400 -WIRE -96 400 -96 240 -WIRE -96 400 -128 400 +WIRE -336 400 -464 400 +WIRE -272 400 -336 400 +WIRE -160 400 -160 240 +WIRE -160 400 -192 400 WIRE 784 416 784 224 WIRE 832 416 832 384 WIRE 832 416 784 416 WIRE 864 416 832 416 -WIRE -656 432 -688 432 -WIRE -560 432 -576 432 -WIRE -544 432 -560 432 -WIRE -432 432 -464 432 +WIRE -720 432 -752 432 +WIRE -624 432 -640 432 +WIRE -608 432 -624 432 +WIRE -496 432 -528 432 WIRE 832 448 832 416 WIRE 880 448 832 448 -WIRE -400 464 -400 400 -WIRE -368 464 -400 464 -WIRE -272 480 -272 464 -WIRE -272 480 -304 480 -WIRE -96 480 -96 400 -WIRE -96 480 -128 480 -WIRE -432 496 -432 432 -WIRE -368 496 -432 496 +WIRE -464 464 -464 400 +WIRE -432 464 -464 464 +WIRE -336 480 -336 464 +WIRE -336 480 -368 480 +WIRE -160 480 -160 400 +WIRE -160 480 -272 480 +WIRE -496 496 -496 432 +WIRE -432 496 -496 496 WIRE 1312 496 1280 496 WIRE 1424 496 1392 496 -WIRE -432 528 -432 496 -WIRE -432 528 -464 528 +WIRE -336 512 -336 480 +WIRE -320 512 -336 512 +WIRE -496 528 -496 496 +WIRE -496 528 -528 528 WIRE 1280 560 1280 496 WIRE 1280 560 1248 560 WIRE 1280 592 1280 560 @@ -143,35 +147,34 @@ WIRE 1424 608 1424 496 WIRE 1424 608 1376 608 WIRE 1456 608 1424 608 WIRE 1520 608 1456 608 -WIRE -272 624 -400 624 -WIRE -208 624 -272 624 -WIRE -96 624 -96 480 -WIRE -96 624 -128 624 +WIRE -336 624 -464 624 +WIRE -272 624 -336 624 +WIRE -160 624 -160 480 +WIRE -160 624 -192 624 WIRE 1312 624 1280 624 -WIRE -656 656 -688 656 -WIRE -560 656 -576 656 -WIRE -544 656 -560 656 -WIRE -432 656 -464 656 +WIRE -720 656 -752 656 +WIRE -624 656 -640 656 +WIRE -608 656 -624 656 +WIRE -496 656 -528 656 WIRE 1072 656 1072 320 WIRE 1072 656 1008 656 WIRE 1168 656 1072 656 WIRE 1280 656 1280 624 WIRE 1280 656 1248 656 -WIRE -400 688 -400 624 -WIRE -368 688 -400 688 -WIRE -272 704 -272 688 -WIRE -272 704 -304 704 -WIRE -96 704 -96 624 -WIRE -96 704 -128 704 +WIRE -464 688 -464 624 +WIRE -432 688 -464 688 +WIRE -336 704 -336 688 +WIRE -336 704 -368 704 +WIRE -160 704 -160 624 +WIRE -160 704 -272 704 WIRE 1280 704 1280 656 WIRE 1312 704 1280 704 WIRE 1424 704 1392 704 -WIRE -432 720 -432 656 -WIRE -368 720 -432 720 -WIRE 1008 736 1008 656 +WIRE -496 720 -496 656 +WIRE -432 720 -496 720 WIRE 1072 736 1072 656 -WIRE -432 752 -432 720 -WIRE -432 752 -464 752 +WIRE -496 752 -496 720 +WIRE -496 752 -528 752 WIRE 1008 816 1008 800 FLAG 928 -16 +V FLAG -864 304 -V @@ -180,33 +183,33 @@ FLAG -1056 224 0 FLAG 1552 304 -V FLAG 464 192 +V FLAG 1072 656 out -FLAG -560 192 vsig +FLAG -624 192 vsig FLAG 1072 816 0 FLAG -960 80 +Vdd -FLAG -336 208 +Vdd +FLAG -400 208 +Vdd FLAG -1056 80 +Vref FLAG 1456 608 vsen FLAG -960 304 -Vdd FLAG 128 224 +Vdd FLAG 1168 560 0 -FLAG -544 288 vsen +FLAG -608 288 vsen FLAG 64 272 +Vref FLAG 1424 704 +Vref -FLAG 288 112 +Vref -FLAG -336 448 +Vdd -FLAG -544 528 isen -FLAG -688 432 +Vref +FLAG 512 16 +Vref +FLAG -400 448 +Vdd +FLAG -608 528 isen +FLAG -752 432 +Vref FLAG 128 288 -Vdd -FLAG -336 272 -Vdd -FLAG -336 512 -Vdd -FLAG -688 192 +Vref -FLAG -560 432 i+sig -FLAG -336 672 +Vdd -FLAG -544 752 isen -FLAG -688 656 +Vref -FLAG -336 736 -Vdd -FLAG -560 656 i-sig -FLAG -96 160 verr +FLAG -400 272 -Vdd +FLAG -400 512 -Vdd +FLAG -752 192 +Vref +FLAG -624 432 i+sig +FLAG -400 672 +Vdd +FLAG -608 752 isen +FLAG -752 656 +Vref +FLAG -400 736 -Vdd +FLAG -624 656 i-sig +FLAG -128 240 verr FLAG 192 112 vint FLAG 1664 272 isen FLAG 1632 368 +Vref @@ -215,17 +218,21 @@ FLAG 1344 576 +V FLAG 1552 240 +V FLAG 464 256 -V FLAG 928 464 -V -FLAG -96 48 +Vref -FLAG -176 -16 -V -FLAG -176 -80 +V -FLAG -384 -96 out -FLAG -384 0 drive +FLAG -320 16 +Vref +FLAG -400 -48 -V +FLAG -400 -112 +V +FLAG -608 -128 out +FLAG -608 -32 drive FLAG 544 224 drive FLAG 784 32 gate -FLAG -64 -144 +Vref +FLAG -288 -176 +Vref FLAG 1008 816 0 FLAG 720 368 0 FLAG 720 288 x +FLAG -64 384 0 +FLAG -176 -80 voff +FLAG -64 480 sel +FLAG -64 560 0 SYMBOL voltage -864 64 R0 SYMATTR InstName V1 SYMATTR Value 20 @@ -234,7 +241,7 @@ SYMATTR InstName V2 SYMATTR Value 3.3 SYMBOL res 1056 208 R0 SYMATTR InstName Rsen -SYMATTR Value 10 +SYMATTR Value 1 SYMBOL res 912 240 R0 SYMATTR InstName R2 SYMATTR Value 0 @@ -254,9 +261,9 @@ WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R7 SYMATTR Value 20k -SYMBOL res 384 96 R90 -WINDOW 0 0 56 VBottom 2 -WINDOW 3 32 56 VTop 2 +SYMBOL res 416 32 R270 +WINDOW 0 32 56 VTop 2 +WINDOW 3 0 56 VBottom 2 SYMATTR InstName R8 SYMATTR Value 1k SYMBOL voltage -960 208 R0 @@ -266,7 +273,7 @@ SYMBOL cap 160 96 R90 WINDOW 0 0 32 VBottom 2 WINDOW 3 32 32 VTop 2 SYMATTR InstName C4 -SYMATTR Value 3µ +SYMATTR Value 1n SYMBOL res 1408 480 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 @@ -276,57 +283,54 @@ SYMBOL res 1264 544 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R16 -SYMATTR Value 200k +SYMATTR Value 240k SYMBOL res 1264 640 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R17 -SYMATTR Value 200k +SYMATTR Value 240k SYMBOL res 1408 688 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R18 SYMATTR Value 10k -SYMBOL res -448 272 R90 +SYMBOL res -512 272 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R9 SYMATTR Value 10k -SYMBOL res -448 176 R90 +SYMBOL res -512 176 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R10 SYMATTR Value 10k -SYMBOL res -448 512 R90 +SYMBOL res -512 512 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R20 SYMATTR Value 10k -SYMBOL res -448 416 R90 +SYMBOL res -512 416 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R21 SYMATTR Value 10k -SYMBOL diode -272 496 R270 +SYMBOL diode -336 496 R270 WINDOW 0 32 32 VTop 2 WINDOW 3 0 32 VBottom 2 SYMATTR InstName D3 SYMATTR Value 1N4148 -SYMBOL res -112 464 R90 -WINDOW 0 0 56 VBottom 2 -WINDOW 3 32 56 VTop 2 -SYMATTR InstName R22 -SYMATTR Value 0 -SYMBOL res -112 224 R90 +SYMBOL res -176 224 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R23 -SYMATTR Value 4.7k -SYMBOL voltage -560 432 R90 +SYMATTR Value 1k +SYMBOL voltage -624 432 R90 WINDOW 0 -32 56 VBottom 2 WINDOW 3 32 56 VTop 2 +WINDOW 123 0 0 Left 0 +WINDOW 39 0 0 Left 0 SYMATTR InstName V10 -SYMATTR Value -0.5 +SYMATTR Value -1 SYMBOL res 32 224 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 @@ -337,34 +341,29 @@ WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R1 SYMATTR Value 45 -SYMBOL voltage -560 192 R90 +SYMBOL voltage -624 192 R90 WINDOW 0 -32 56 VBottom 2 WINDOW 3 32 56 VTop 2 WINDOW 123 0 0 Left 0 WINDOW 39 0 0 Left 0 SYMATTR InstName V6 -SYMATTR Value -1 -SYMBOL res -448 736 R90 +SYMATTR Value -0.2 +SYMBOL res -512 736 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R4 SYMATTR Value 10k -SYMBOL res -448 640 R90 +SYMBOL res -512 640 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R5 SYMATTR Value 10k -SYMBOL diode -208 688 R90 +SYMBOL diode -272 688 R90 WINDOW 0 0 32 VBottom 2 WINDOW 3 32 32 VTop 2 SYMATTR InstName D1 SYMATTR Value 1N4148 -SYMBOL res -112 688 R90 -WINDOW 0 0 56 VBottom 2 -WINDOW 3 32 56 VTop 2 -SYMATTR InstName R6 -SYMATTR Value 0 -SYMBOL voltage -560 656 R90 +SYMBOL voltage -624 656 R90 WINDOW 0 -32 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName V3 @@ -373,7 +372,7 @@ SYMBOL res 1616 144 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R11 -SYMATTR Value 10k +SYMATTR Value 50k SYMBOL res 1472 208 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 @@ -388,32 +387,32 @@ SYMBOL res 1616 352 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R19 -SYMATTR Value 10k +SYMATTR Value 50k SYMBOL res 1056 720 R0 SYMATTR InstName Rload2 -SYMATTR Value 10 +SYMATTR Value 4 SYMBOL pmos 880 464 M180 SYMATTR InstName M3 SYMATTR Value RSJ250P10 SYMBOL nmos 880 -16 R0 SYMATTR InstName M4 SYMATTR Value IRLH5030 -SYMBOL res -112 -176 R90 +SYMBOL res -336 -208 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R24 SYMATTR Value 10k -SYMBOL res -256 -112 R90 +SYMBOL res -480 -144 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R25 SYMATTR Value 200k -SYMBOL res -256 -16 R90 +SYMBOL res -480 -48 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R26 SYMATTR Value 200k -SYMBOL res -112 32 R90 +SYMBOL res -336 0 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R27 @@ -432,12 +431,12 @@ SYMATTR InstName D4 SYMATTR Value 1N5817 SYMATTR Description Zener Diode SYMATTR Type zener -SYMBOL res 32 -64 R90 +SYMBOL res -192 -96 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R28 SYMATTR Value 10k -SYMBOL res 32 -160 R90 +SYMBOL res -192 -192 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R29 @@ -470,45 +469,40 @@ SYMATTR InstName U8 SYMATTR Value2 Avol=1Meg GBW=500k Slew=1Meg SYMATTR SpiceLine Ilimit=25m Rail=0 Vos=0 Phimargin=60 SYMATTR SpiceLine2 En=110n Enk=0 In=0 Ink=0 Rin=500Meg -SYMBOL diode -288 400 R0 +SYMBOL diode -352 400 R0 SYMATTR InstName D5 SYMATTR Value 1N4148 -SYMBOL diode -256 688 R180 +SYMBOL diode -320 688 R180 WINDOW 0 24 64 Left 2 WINDOW 3 24 0 Left 2 SYMATTR InstName D6 SYMATTR Value 1N4148 -SYMBOL res -112 384 R90 +SYMBOL res -176 384 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R32 -SYMATTR Value 47k -SYMBOL res -112 608 R90 +SYMATTR Value 1k +SYMBOL res -176 608 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R33 -SYMATTR Value 47k -SYMBOL res -112 144 R90 -WINDOW 0 0 56 VBottom 2 -WINDOW 3 32 56 VTop 2 -SYMATTR InstName R34 -SYMATTR Value 47k -SYMBOL OpAmps\\UniversalOpAmp3b -336 480 R0 +SYMATTR Value 1k +SYMBOL OpAmps\\UniversalOpAmp3b -400 480 R0 SYMATTR InstName U2 SYMATTR Value2 Avol=1Meg GBW=4.5Meg Slew=20Meg SYMATTR SpiceLine Ilimit=75m Rail=0 Vos=0 Phimargin=60 SYMATTR SpiceLine2 En=10.8n Enk=0 In=0 Ink=0 Rin=500Meg -SYMBOL OpAmps\\UniversalOpAmp3b -336 704 R0 +SYMBOL OpAmps\\UniversalOpAmp3b -400 704 R0 SYMATTR InstName U1 SYMATTR Value2 Avol=1Meg GBW=4.5Meg Slew=20Meg SYMATTR SpiceLine Ilimit=75m Rail=0 Vos=0 Phimargin=60 SYMATTR SpiceLine2 En=10.8n Enk=0 In=0 Ink=0 Rin=500Meg -SYMBOL OpAmps\\UniversalOpAmp3b -336 240 R0 +SYMBOL OpAmps\\UniversalOpAmp3b -400 240 R0 SYMATTR InstName U3 SYMATTR Value2 Avol=1Meg GBW=4.5Meg Slew=20Meg SYMATTR SpiceLine Ilimit=75m Rail=0 Vos=0 Phimargin=60 SYMATTR SpiceLine2 En=10.8n Enk=0 In=0 Ink=0 Rin=500Meg -SYMBOL OpAmps\\UniversalOpAmp3b -176 -48 R0 +SYMBOL OpAmps\\UniversalOpAmp3b -400 -80 R0 SYMATTR InstName U4 SYMATTR Value2 Avol=1Meg GBW=4.5Meg Slew=20Meg SYMATTR SpiceLine Ilimit=75m Rail=0 Vos=0 Phimargin=60 @@ -531,24 +525,42 @@ SYMATTR Value AC {u(prb)} SYMBOL cap 128 0 R90 WINDOW 0 0 32 VBottom 2 WINDOW 3 32 32 VTop 2 +WINDOW 39 28 32 VBottom 2 SYMATTR InstName C2 -SYMATTR Value 34p +SYMATTR Value 6.8n SYMBOL res 224 0 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R35 -SYMATTR Value .047 -TEXT 424 16 Left 2 ;Driver Amplifier\n(HV opamp) +SYMATTR Value 470 +SYMBOL cap 992 736 R0 +SYMATTR InstName C3 +SYMATTR Value 100µ +SYMBOL bv -64 288 R0 +SYMATTR InstName B1 +SYMATTR Value V = V(verr)*V(sel) + V(voff)*(1-V(sel)) +SYMBOL voltage -64 464 R0 +WINDOW 0 -32 56 VBottom 2 +WINDOW 3 32 56 VTop 2 +WINDOW 123 0 0 Left 0 +WINDOW 39 0 0 Left 0 +SYMATTR InstName V8 +SYMATTR Value PULSE(0 1 500u 1n) +SYMBOL res -176 144 R90 +WINDOW 0 0 56 VBottom 2 +WINDOW 3 32 56 VTop 2 +SYMATTR InstName R6 +SYMATTR Value 100k +TEXT 408 -72 Left 2 ;Driver Amplifier\n(HV opamp) TEXT 880 -80 Left 2 ;Driver -TEXT -376 128 Left 2 ;Voltage Control +TEXT -440 128 Left 2 ;Voltage Control TEXT 88 -72 Left 2 ;Error\nIntegrator -TEXT -376 368 Left 2 ;Source Control -TEXT 1456 440 Left 2 ;1/20 V/V differential voltage sense\n(re-centering 0V -> +Vref, HV opamp) +TEXT -440 368 Left 2 ;Source Control +TEXT 1456 440 Left 2 ;1/24 V/V differential voltage sense\n(re-centering 0V -> +Vref, HV opamp) TEXT -1056 -8 Left 2 ;Voltage Rails TEXT 1272 440 Left 2 ;Voltage Sense -TEXT 1656 96 Left 2 ;1/10 V/A current sense\n(HV opamp) +TEXT 1656 96 Left 2 ;Current sense (5V/V)\n(HV opamp) TEXT 1480 104 Left 2 ;Current Sense -TEXT -248 -216 Left 2 ;Off-state feedback -TEXT 24 456 Left 2 !.step param prb list -1 1\n.ac dec 30 .1 100Meg\n; .param prb=0\n; .tran 3ms uic -TEXT 32 392 Left 2 !.ic v(vint)=1.65 +TEXT -472 -248 Left 2 ;Off-state feedback +TEXT 24 472 Left 2 !;.step param prb list -1 1\n;.ac dec 10 1k 1Meg\n.param prb=1\n.tran 3ms uic TEXT 24 600 Left 2 !; This uses the Tian method for loop gain / phase analysis,\n; see LTSpice examples/Educational/LoopGain2.asc\n.func T() -1/(1-1/(2*(I(Vi)@1*V(x)@2-V(x)@1*I(Vi)@2)+V(x)@1+I(Vi)@2)) From 912d52f0dbb4eed681b84246256c6f7b952e1342 Mon Sep 17 00:00:00 2001 From: Richard Lin Date: Mon, 19 Jan 2026 13:39:08 -0800 Subject: [PATCH 17/19] wip --- .../SourceMeasureControl.kicad_sch | 6 ++--- .../UsbSourceMeasure/analysis/power_stage.asc | 22 ++++++++++++------- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/examples/UsbSourceMeasure/SourceMeasureControl.kicad_sch b/examples/UsbSourceMeasure/SourceMeasureControl.kicad_sch index 011c911d6..b85a0ca3a 100644 --- a/examples/UsbSourceMeasure/SourceMeasureControl.kicad_sch +++ b/examples/UsbSourceMeasure/SourceMeasureControl.kicad_sch @@ -4870,7 +4870,7 @@ ) (uuid "ff60e0dd-6dc8-495e-9e19-e268f29160cb") ) - (text "plant parameters (crossover_gain)\ndetermined using SPICE, see analysis folder" + (text "CC mode DC gain at the 1-ohm range is 50\nthis is tuned for G=1/50 * 1.25x fudge factor" (exclude_from_sim no) (at 100.076 112.014 0) (effects @@ -6867,7 +6867,7 @@ ) ) ) - (property "Value3" "crossover_freq=100*kHertz(tol=0.10)," + (property "Value3" "crossover_freq=75*kHertz(tol=0.10)," (at 113.03 103.632 0) (effects (font @@ -6875,7 +6875,7 @@ ) ) ) - (property "Value4" "k=2.4*Ratio(tol=0.20), crossover_gain=0.1)" + (property "Value4" "k=2.4*Ratio(tol=0.20), crossover_gain=0.025)" (at 113.03 105.918 0) (effects (font diff --git a/examples/UsbSourceMeasure/analysis/power_stage.asc b/examples/UsbSourceMeasure/analysis/power_stage.asc index e53c27cad..8e588d548 100644 --- a/examples/UsbSourceMeasure/analysis/power_stage.asc +++ b/examples/UsbSourceMeasure/analysis/power_stage.asc @@ -36,6 +36,7 @@ WIRE 400 112 400 16 WIRE 432 112 400 112 WIRE 544 112 512 112 WIRE 928 112 928 80 +WIRE -272 160 -272 80 WIRE -272 160 -464 160 WIRE -160 160 -192 160 WIRE 1520 160 1488 160 @@ -72,7 +73,7 @@ WIRE 1488 224 1456 224 WIRE -272 240 -368 240 WIRE -160 240 -160 160 WIRE -160 240 -192 240 -WIRE -128 240 -160 240 +WIRE -64 240 -160 240 WIRE 64 240 64 112 WIRE 64 240 16 240 WIRE 96 240 64 240 @@ -97,7 +98,6 @@ WIRE -496 288 -528 288 WIRE 752 288 752 224 WIRE 752 288 720 288 WIRE 1520 288 1488 288 -WIRE -64 304 -64 240 WIRE 1072 320 1072 304 WIRE 1136 320 1072 320 WIRE 1216 320 1216 304 @@ -209,7 +209,6 @@ FLAG -608 752 isen FLAG -752 656 +Vref FLAG -400 736 -Vdd FLAG -624 656 i-sig -FLAG -128 240 verr FLAG 192 112 vint FLAG 1664 272 isen FLAG 1632 368 +Vref @@ -233,6 +232,8 @@ FLAG -64 384 0 FLAG -176 -80 voff FLAG -64 480 sel FLAG -64 560 0 +FLAG -192 80 +Vref +FLAG -160 160 verr SYMBOL voltage -864 64 R0 SYMATTR InstName V1 SYMATTR Value 20 @@ -273,7 +274,7 @@ SYMBOL cap 160 96 R90 WINDOW 0 0 32 VBottom 2 WINDOW 3 32 32 VTop 2 SYMATTR InstName C4 -SYMATTR Value 1n +SYMATTR Value 6.8n SYMBOL res 1408 480 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 @@ -390,7 +391,7 @@ SYMATTR InstName R19 SYMATTR Value 50k SYMBOL res 1056 720 R0 SYMATTR InstName Rload2 -SYMATTR Value 4 +SYMATTR Value .01 SYMBOL pmos 880 464 M180 SYMATTR InstName M3 SYMATTR Value RSJ250P10 @@ -527,12 +528,12 @@ WINDOW 0 0 32 VBottom 2 WINDOW 3 32 32 VTop 2 WINDOW 39 28 32 VBottom 2 SYMATTR InstName C2 -SYMATTR Value 6.8n +SYMATTR Value 33n SYMBOL res 224 0 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R35 -SYMATTR Value 470 +SYMATTR Value 150 SYMBOL cap 992 736 R0 SYMATTR InstName C3 SYMATTR Value 100µ @@ -551,6 +552,11 @@ WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R6 SYMATTR Value 100k +SYMBOL res -176 64 R90 +WINDOW 0 0 56 VBottom 2 +WINDOW 3 32 56 VTop 2 +SYMATTR InstName R22 +SYMATTR Value 1k TEXT 408 -72 Left 2 ;Driver Amplifier\n(HV opamp) TEXT 880 -80 Left 2 ;Driver TEXT -440 128 Left 2 ;Voltage Control @@ -562,5 +568,5 @@ TEXT 1272 440 Left 2 ;Voltage Sense TEXT 1656 96 Left 2 ;Current sense (5V/V)\n(HV opamp) TEXT 1480 104 Left 2 ;Current Sense TEXT -472 -248 Left 2 ;Off-state feedback -TEXT 24 472 Left 2 !;.step param prb list -1 1\n;.ac dec 10 1k 1Meg\n.param prb=1\n.tran 3ms uic +TEXT 24 472 Left 2 !.step param prb list -1 1\n.ac dec 10 1k 1Meg\n;.param prb=1\n;.tran 3ms uic TEXT 24 600 Left 2 !; This uses the Tian method for loop gain / phase analysis,\n; see LTSpice examples/Educational/LoopGain2.asc\n.func T() -1/(1-1/(2*(I(Vi)@1*V(x)@2-V(x)@1*I(Vi)@2)+V(x)@1+I(Vi)@2)) From 8c46783b3b2f92c78703256129010f1ff8e520d0 Mon Sep 17 00:00:00 2001 From: Richard Lin Date: Mon, 19 Jan 2026 14:11:04 -0800 Subject: [PATCH 18/19] Update power_stage.asc --- examples/UsbSourceMeasure/analysis/power_stage.asc | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/examples/UsbSourceMeasure/analysis/power_stage.asc b/examples/UsbSourceMeasure/analysis/power_stage.asc index 8e588d548..4a5e421e1 100644 --- a/examples/UsbSourceMeasure/analysis/power_stage.asc +++ b/examples/UsbSourceMeasure/analysis/power_stage.asc @@ -324,7 +324,7 @@ SYMBOL res -176 224 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R23 -SYMATTR Value 1k +SYMATTR Value 4.7k SYMBOL voltage -624 432 R90 WINDOW 0 -32 56 VBottom 2 WINDOW 3 32 56 VTop 2 @@ -348,7 +348,7 @@ WINDOW 3 32 56 VTop 2 WINDOW 123 0 0 Left 0 WINDOW 39 0 0 Left 0 SYMATTR InstName V6 -SYMATTR Value -0.2 +SYMATTR Value -.2 SYMBOL res -512 736 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 @@ -391,7 +391,7 @@ SYMATTR InstName R19 SYMATTR Value 50k SYMBOL res 1056 720 R0 SYMATTR InstName Rload2 -SYMATTR Value .01 +SYMATTR Value 40 SYMBOL pmos 880 464 M180 SYMATTR InstName M3 SYMATTR Value RSJ250P10 @@ -482,12 +482,12 @@ SYMBOL res -176 384 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R32 -SYMATTR Value 1k +SYMATTR Value 4.7k SYMBOL res -176 608 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R33 -SYMATTR Value 1k +SYMATTR Value 4.7k SYMBOL OpAmps\\UniversalOpAmp3b -400 480 R0 SYMATTR InstName U2 SYMATTR Value2 Avol=1Meg GBW=4.5Meg Slew=20Meg @@ -551,7 +551,7 @@ SYMBOL res -176 144 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R6 -SYMATTR Value 100k +SYMATTR Value 47k SYMBOL res -176 64 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 @@ -570,3 +570,4 @@ TEXT 1480 104 Left 2 ;Current Sense TEXT -472 -248 Left 2 ;Off-state feedback TEXT 24 472 Left 2 !.step param prb list -1 1\n.ac dec 10 1k 1Meg\n;.param prb=1\n;.tran 3ms uic TEXT 24 600 Left 2 !; This uses the Tian method for loop gain / phase analysis,\n; see LTSpice examples/Educational/LoopGain2.asc\n.func T() -1/(1-1/(2*(I(Vi)@1*V(x)@2-V(x)@1*I(Vi)@2)+V(x)@1+I(Vi)@2)) +TEXT -192 128 Left 2 ;TODO: the 4.7k output resistance couples into Rin of the compensator\nincreasing gain by 2x, which is compensated with the lower gain here From c4bc614b2a459d3711be637d127b4ee64820fb45 Mon Sep 17 00:00:00 2001 From: Richard Lin Date: Sun, 8 Feb 2026 23:31:45 -0800 Subject: [PATCH 19/19] update netlist --- .../UsbSourceMeasure/UsbSourceMeasure.net | 1032 ++++++++++------- .../UsbSourceMeasure.svgpcb.js | 695 ++++++----- examples/test_usb_source_measure.py | 7 +- 3 files changed, 961 insertions(+), 773 deletions(-) diff --git a/examples/UsbSourceMeasure/UsbSourceMeasure.net b/examples/UsbSourceMeasure/UsbSourceMeasure.net index 910de525b..eeb391420 100644 --- a/examples/UsbSourceMeasure/UsbSourceMeasure.net +++ b/examples/UsbSourceMeasure/UsbSourceMeasure.net @@ -1609,61 +1609,85 @@ (sheetpath (names "/control/off_sw/") (tstamps "/0bec0302/08b00285/")) (tstamps "0b6402d2")) (comp (ref "R34") - (value "control.int.r") + (value "control.int.r1") (footprint "Resistor_SMD:R_0603_1608Metric") (property (name "Sheetname") (value "int")) - (property (name "Sheetfile") (value "edg.abstract_parts.OpampCircuits.IntegratorInverting")) - (property (name "edg_path") (value "control.int.r")) - (property (name "edg_short_path") (value "control.int.r")) + (property (name "Sheetfile") (value "edg.abstract_parts.ControlCircuits.CompensatorType2")) + (property (name "edg_path") (value "control.int.r1")) + (property (name "edg_short_path") (value "control.int.r1")) (property (name "edg_refdes") (value "R34")) (property (name "edg_part") (value "0603WAF4701T5E (UNI-ROYAL(Uniroyal Elec))")) (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 4.7kΩ 0603 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/control/int/") (tstamps "/0bec0302/028e014c/")) - (tstamps "00730073")) + (tstamps "011700a4")) (comp (ref "C52") - (value "control.int.c") + (value "control.int.c2") (footprint "Capacitor_SMD:C_0603_1608Metric") (property (name "Sheetname") (value "int")) - (property (name "Sheetfile") (value "edg.abstract_parts.OpampCircuits.IntegratorInverting")) - (property (name "edg_path") (value "control.int.c")) - (property (name "edg_short_path") (value "control.int.c")) + (property (name "Sheetfile") (value "edg.abstract_parts.ControlCircuits.CompensatorType2")) + (property (name "edg_path") (value "control.int.c2")) + (property (name "edg_short_path") (value "control.int.c2")) (property (name "edg_refdes") (value "C52")) - (property (name "edg_part") (value "0603B103K500NT (FH(Guangdong Fenghua Advanced Tech))")) - (property (name "edg_value") (value "50V 10nF X7R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) + (property (name "edg_part") (value "0603B682K500NT (FH(Guangdong Fenghua Advanced Tech))")) + (property (name "edg_value") (value "50V 6.8nF X7R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/control/int/") (tstamps "/0bec0302/028e014c/")) - (tstamps "00640064")) + (tstamps "00fa0096")) +(comp (ref "C53") + (value "control.int.c1") + (footprint "Capacitor_SMD:C_0603_1608Metric") + (property (name "Sheetname") (value "int")) + (property (name "Sheetfile") (value "edg.abstract_parts.ControlCircuits.CompensatorType2")) + (property (name "edg_path") (value "control.int.c1")) + (property (name "edg_short_path") (value "control.int.c1")) + (property (name "edg_refdes") (value "C53")) + (property (name "edg_part") (value "CL10B333KB8NNNC (Samsung Electro-Mechanics)")) + (property (name "edg_value") (value "50V 33nF X7R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) + (sheetpath (names "/control/int/") (tstamps "/0bec0302/028e014c/")) + (tstamps "00f90095")) (comp (ref "R35") + (value "control.int.r2") + (footprint "Resistor_SMD:R_0603_1608Metric") + (property (name "Sheetname") (value "int")) + (property (name "Sheetfile") (value "edg.abstract_parts.ControlCircuits.CompensatorType2")) + (property (name "edg_path") (value "control.int.r2")) + (property (name "edg_short_path") (value "control.int.r2")) + (property (name "edg_refdes") (value "R35")) + (property (name "edg_part") (value "0603WAF1500T5E (UNI-ROYAL(Uniroyal Elec))")) + (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 150Ω 0603 Chip Resistor - Surface Mount ROHS")) + (sheetpath (names "/control/int/") (tstamps "/0bec0302/028e014c/")) + (tstamps "011800a5")) +(comp (ref "R36") (value "control.hvclamp") (footprint "Resistor_SMD:R_0603_1608Metric") (property (name "Sheetname") (value "control")) (property (name "Sheetfile") (value "examples.test_usb_source_measure.SourceMeasureControl")) (property (name "edg_path") (value "control.hvclamp.res")) (property (name "edg_short_path") (value "control.hvclamp")) - (property (name "edg_refdes") (value "R35")) + (property (name "edg_refdes") (value "R36")) (property (name "edg_part") (value "0603WAF1003T5E (UNI-ROYAL(Uniroyal Elec))")) (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 100kΩ 0603 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/control/") (tstamps "/0bec0302/")) (tstamps "0baf02ec")) -(comp (ref "R36") +(comp (ref "R37") (value "control.amp.r1") (footprint "Resistor_SMD:R_0603_1608Metric") (property (name "Sheetname") (value "amp")) (property (name "Sheetfile") (value "edg.abstract_parts.OpampCircuits.Amplifier")) (property (name "edg_path") (value "control.amp.r1")) (property (name "edg_short_path") (value "control.amp.r1")) - (property (name "edg_refdes") (value "R36")) + (property (name "edg_refdes") (value "R37")) (property (name "edg_part") (value "0603WAF3902T5E (UNI-ROYAL(Uniroyal Elec))")) (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 39kΩ 0603 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/control/amp/") (tstamps "/0bec0302/0270013f/")) (tstamps "011700a4")) -(comp (ref "R37") +(comp (ref "R38") (value "control.amp.r2") (footprint "Resistor_SMD:R_0603_1608Metric") (property (name "Sheetname") (value "amp")) (property (name "Sheetfile") (value "edg.abstract_parts.OpampCircuits.Amplifier")) (property (name "edg_path") (value "control.amp.r2")) (property (name "edg_short_path") (value "control.amp.r2")) - (property (name "edg_refdes") (value "R37")) + (property (name "edg_refdes") (value "R38")) (property (name "edg_part") (value "0603WAF2001T5E (UNI-ROYAL(Uniroyal Elec))")) (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 2kΩ 0603 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/control/amp/") (tstamps "/0bec0302/0270013f/")) @@ -1716,42 +1740,126 @@ (property (name "edg_value") (value "IRF9540")) (sheetpath (names "/control/driver/") (tstamps "/0bec0302/08da028d/")) (tstamps "0bd402f1")) -(comp (ref "R38") +(comp (ref "R39") (value "control.driver.res.res[0]") (footprint "Resistor_SMD:R_0603_1608Metric") (property (name "Sheetname") (value "res")) (property (name "Sheetfile") (value "edg.abstract_parts.AbstractResistor.SeriesResistor")) (property (name "edg_path") (value "control.driver.res.res[0]")) (property (name "edg_short_path") (value "control.driver.res.res[0]")) - (property (name "edg_refdes") (value "R38")) - (property (name "edg_part") (value "0603WAF1001T5E (UNI-ROYAL(Uniroyal Elec))")) - (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 1kΩ 0603 Chip Resistor - Surface Mount ROHS")) + (property (name "edg_refdes") (value "R39")) + (property (name "edg_part") (value "0603WAF150JT5E (UNI-ROYAL(Uniroyal Elec))")) + (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 15Ω 0603 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/control/driver/res/") (tstamps "/0bec0302/08da028d/0296014b/")) (tstamps "08450233")) -(comp (ref "R39") +(comp (ref "R40") (value "control.driver.res.res[1]") (footprint "Resistor_SMD:R_0603_1608Metric") (property (name "Sheetname") (value "res")) (property (name "Sheetfile") (value "edg.abstract_parts.AbstractResistor.SeriesResistor")) (property (name "edg_path") (value "control.driver.res.res[1]")) (property (name "edg_short_path") (value "control.driver.res.res[1]")) - (property (name "edg_refdes") (value "R39")) - (property (name "edg_part") (value "0603WAF1001T5E (UNI-ROYAL(Uniroyal Elec))")) - (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 1kΩ 0603 Chip Resistor - Surface Mount ROHS")) + (property (name "edg_refdes") (value "R40")) + (property (name "edg_part") (value "0603WAF150JT5E (UNI-ROYAL(Uniroyal Elec))")) + (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 15Ω 0603 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/control/driver/res/") (tstamps "/0bec0302/08da028d/0296014b/")) (tstamps "08470234")) -(comp (ref "R40") +(comp (ref "R41") (value "control.driver.res.res[2]") (footprint "Resistor_SMD:R_0603_1608Metric") (property (name "Sheetname") (value "res")) (property (name "Sheetfile") (value "edg.abstract_parts.AbstractResistor.SeriesResistor")) (property (name "edg_path") (value "control.driver.res.res[2]")) (property (name "edg_short_path") (value "control.driver.res.res[2]")) - (property (name "edg_refdes") (value "R40")) - (property (name "edg_part") (value "0603WAF1001T5E (UNI-ROYAL(Uniroyal Elec))")) - (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 1kΩ 0603 Chip Resistor - Surface Mount ROHS")) + (property (name "edg_refdes") (value "R41")) + (property (name "edg_part") (value "0603WAF150JT5E (UNI-ROYAL(Uniroyal Elec))")) + (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 15Ω 0603 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/control/driver/res/") (tstamps "/0bec0302/08da028d/0296014b/")) (tstamps "08490235")) +(comp (ref "R42") + (value "control.driver.res.res[3]") + (footprint "Resistor_SMD:R_0603_1608Metric") + (property (name "Sheetname") (value "res")) + (property (name "Sheetfile") (value "edg.abstract_parts.AbstractResistor.SeriesResistor")) + (property (name "edg_path") (value "control.driver.res.res[3]")) + (property (name "edg_short_path") (value "control.driver.res.res[3]")) + (property (name "edg_refdes") (value "R42")) + (property (name "edg_part") (value "0603WAF150JT5E (UNI-ROYAL(Uniroyal Elec))")) + (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 15Ω 0603 Chip Resistor - Surface Mount ROHS")) + (sheetpath (names "/control/driver/res/") (tstamps "/0bec0302/08da028d/0296014b/")) + (tstamps "084b0236")) +(comp (ref "R43") + (value "control.driver.res.res[4]") + (footprint "Resistor_SMD:R_0603_1608Metric") + (property (name "Sheetname") (value "res")) + (property (name "Sheetfile") (value "edg.abstract_parts.AbstractResistor.SeriesResistor")) + (property (name "edg_path") (value "control.driver.res.res[4]")) + (property (name "edg_short_path") (value "control.driver.res.res[4]")) + (property (name "edg_refdes") (value "R43")) + (property (name "edg_part") (value "0603WAF150JT5E (UNI-ROYAL(Uniroyal Elec))")) + (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 15Ω 0603 Chip Resistor - Surface Mount ROHS")) + (sheetpath (names "/control/driver/res/") (tstamps "/0bec0302/08da028d/0296014b/")) + (tstamps "084d0237")) +(comp (ref "R44") + (value "control.driver.res.res[5]") + (footprint "Resistor_SMD:R_0603_1608Metric") + (property (name "Sheetname") (value "res")) + (property (name "Sheetfile") (value "edg.abstract_parts.AbstractResistor.SeriesResistor")) + (property (name "edg_path") (value "control.driver.res.res[5]")) + (property (name "edg_short_path") (value "control.driver.res.res[5]")) + (property (name "edg_refdes") (value "R44")) + (property (name "edg_part") (value "0603WAF150JT5E (UNI-ROYAL(Uniroyal Elec))")) + (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 15Ω 0603 Chip Resistor - Surface Mount ROHS")) + (sheetpath (names "/control/driver/res/") (tstamps "/0bec0302/08da028d/0296014b/")) + (tstamps "084f0238")) +(comp (ref "R45") + (value "control.driver.res.res[6]") + (footprint "Resistor_SMD:R_0603_1608Metric") + (property (name "Sheetname") (value "res")) + (property (name "Sheetfile") (value "edg.abstract_parts.AbstractResistor.SeriesResistor")) + (property (name "edg_path") (value "control.driver.res.res[6]")) + (property (name "edg_short_path") (value "control.driver.res.res[6]")) + (property (name "edg_refdes") (value "R45")) + (property (name "edg_part") (value "0603WAF150JT5E (UNI-ROYAL(Uniroyal Elec))")) + (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 15Ω 0603 Chip Resistor - Surface Mount ROHS")) + (sheetpath (names "/control/driver/res/") (tstamps "/0bec0302/08da028d/0296014b/")) + (tstamps "08510239")) +(comp (ref "R46") + (value "control.driver.res.res[7]") + (footprint "Resistor_SMD:R_0603_1608Metric") + (property (name "Sheetname") (value "res")) + (property (name "Sheetfile") (value "edg.abstract_parts.AbstractResistor.SeriesResistor")) + (property (name "edg_path") (value "control.driver.res.res[7]")) + (property (name "edg_short_path") (value "control.driver.res.res[7]")) + (property (name "edg_refdes") (value "R46")) + (property (name "edg_part") (value "0603WAF150JT5E (UNI-ROYAL(Uniroyal Elec))")) + (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 15Ω 0603 Chip Resistor - Surface Mount ROHS")) + (sheetpath (names "/control/driver/res/") (tstamps "/0bec0302/08da028d/0296014b/")) + (tstamps "0853023a")) +(comp (ref "R47") + (value "control.driver.res.res[8]") + (footprint "Resistor_SMD:R_0603_1608Metric") + (property (name "Sheetname") (value "res")) + (property (name "Sheetfile") (value "edg.abstract_parts.AbstractResistor.SeriesResistor")) + (property (name "edg_path") (value "control.driver.res.res[8]")) + (property (name "edg_short_path") (value "control.driver.res.res[8]")) + (property (name "edg_refdes") (value "R47")) + (property (name "edg_part") (value "0603WAF150JT5E (UNI-ROYAL(Uniroyal Elec))")) + (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 15Ω 0603 Chip Resistor - Surface Mount ROHS")) + (sheetpath (names "/control/driver/res/") (tstamps "/0bec0302/08da028d/0296014b/")) + (tstamps "0855023b")) +(comp (ref "R48") + (value "control.driver.res.res[9]") + (footprint "Resistor_SMD:R_0603_1608Metric") + (property (name "Sheetname") (value "res")) + (property (name "Sheetfile") (value "edg.abstract_parts.AbstractResistor.SeriesResistor")) + (property (name "edg_path") (value "control.driver.res.res[9]")) + (property (name "edg_short_path") (value "control.driver.res.res[9]")) + (property (name "edg_refdes") (value "R48")) + (property (name "edg_part") (value "0603WAF150JT5E (UNI-ROYAL(Uniroyal Elec))")) + (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 15Ω 0603 Chip Resistor - Surface Mount ROHS")) + (sheetpath (names "/control/driver/res/") (tstamps "/0bec0302/08da028d/0296014b/")) + (tstamps "0857023c")) (comp (ref "U15") (value "control.driver.high_gate.ic") (footprint "Package_TO_SOT_SMD:SOT-23-6") @@ -1764,14 +1872,14 @@ (property (name "edg_value") (value "DG468DV")) (sheetpath (names "/control/driver/high_gate/") (tstamps "/0bec0302/08da028d/122103a1/")) (tstamps "013700cd")) -(comp (ref "C53") +(comp (ref "C54") (value "control.driver.high_gate.vdd_cap") (footprint "Capacitor_SMD:C_0805_2012Metric") (property (name "Sheetname") (value "high_gate")) (property (name "Sheetfile") (value "edg.abstract_parts.AbstractAnalogSwitch.AnalogMuxer")) (property (name "edg_path") (value "control.driver.high_gate.device.vdd_cap.cap")) (property (name "edg_short_path") (value "control.driver.high_gate.vdd_cap")) - (property (name "edg_refdes") (value "C53")) + (property (name "edg_refdes") (value "C54")) (property (name "edg_part") (value "CL21B104KCFNNNE (Samsung Electro-Mechanics)")) (property (name "edg_value") (value "100V 100nF X7R ±10% 0805 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/control/driver/high_gate/") (tstamps "/0bec0302/08da028d/122103a1/")) @@ -1788,122 +1896,122 @@ (property (name "edg_value") (value "DG468DV")) (sheetpath (names "/control/driver/low_gate/") (tstamps "/0bec0302/08da028d/0f220353/")) (tstamps "013700cd")) -(comp (ref "C54") +(comp (ref "C55") (value "control.driver.low_gate.vdd_cap") (footprint "Capacitor_SMD:C_0805_2012Metric") (property (name "Sheetname") (value "low_gate")) (property (name "Sheetfile") (value "edg.abstract_parts.AbstractAnalogSwitch.AnalogMuxer")) (property (name "edg_path") (value "control.driver.low_gate.device.vdd_cap.cap")) (property (name "edg_short_path") (value "control.driver.low_gate.vdd_cap")) - (property (name "edg_refdes") (value "C54")) + (property (name "edg_refdes") (value "C55")) (property (name "edg_part") (value "CL21B104KCFNNNE (Samsung Electro-Mechanics)")) (property (name "edg_value") (value "100V 100nF X7R ±10% 0805 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/control/driver/low_gate/") (tstamps "/0bec0302/08da028d/0f220353/")) (tstamps "0b6402d2")) -(comp (ref "R41") +(comp (ref "R49") (value "control.driver.high_res") (footprint "Resistor_SMD:R_0603_1608Metric") (property (name "Sheetname") (value "driver")) (property (name "Sheetfile") (value "examples.test_usb_source_measure.EmitterFollower")) (property (name "edg_path") (value "control.driver.high_res")) (property (name "edg_short_path") (value "control.driver.high_res")) - (property (name "edg_refdes") (value "R41")) + (property (name "edg_refdes") (value "R49")) (property (name "edg_part") (value "0603WAF1003T5E (UNI-ROYAL(Uniroyal Elec))")) (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 100kΩ 0603 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/control/driver/") (tstamps "/0bec0302/08da028d/")) (tstamps "0ea8034a")) -(comp (ref "R42") +(comp (ref "R50") (value "control.driver.low_res") (footprint "Resistor_SMD:R_0603_1608Metric") (property (name "Sheetname") (value "driver")) (property (name "Sheetfile") (value "examples.test_usb_source_measure.EmitterFollower")) (property (name "edg_path") (value "control.driver.low_res")) (property (name "edg_short_path") (value "control.driver.low_res")) - (property (name "edg_refdes") (value "R42")) + (property (name "edg_refdes") (value "R50")) (property (name "edg_part") (value "0603WAF1003T5E (UNI-ROYAL(Uniroyal Elec))")) (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 100kΩ 0603 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/control/driver/") (tstamps "/0bec0302/08da028d/")) (tstamps "0bf702fc")) -(comp (ref "C55") +(comp (ref "C56") (value "control.driver.cap_in1") (footprint "Capacitor_SMD:CP_Elec_6.3x7.7") (property (name "Sheetname") (value "driver")) (property (name "Sheetfile") (value "examples.test_usb_source_measure.EmitterFollower")) (property (name "edg_path") (value "control.driver.cap_in1.cap")) (property (name "edg_short_path") (value "control.driver.cap_in1")) - (property (name "edg_refdes") (value "C55")) + (property (name "edg_refdes") (value "C56")) (property (name "edg_part") (value "RT1H470M0607 (ROQANG)")) (property (name "edg_value") (value "-40℃~+105℃ 2000hrs@105℃ 47uF 7.7mm 50V 6.3mm ±20% SMD,6.3x7.7mm Aluminum Electrolytic Capacitors - SMD ROHS")) (sheetpath (names "/control/driver/") (tstamps "/0bec0302/08da028d/")) (tstamps "0af6029c")) -(comp (ref "C56") +(comp (ref "C57") (value "control.driver.cap_in2") (footprint "Capacitor_SMD:C_0805_2012Metric") (property (name "Sheetname") (value "driver")) (property (name "Sheetfile") (value "examples.test_usb_source_measure.EmitterFollower")) (property (name "edg_path") (value "control.driver.cap_in2.cap")) (property (name "edg_short_path") (value "control.driver.cap_in2")) - (property (name "edg_refdes") (value "C56")) + (property (name "edg_refdes") (value "C57")) (property (name "edg_part") (value "GRM21BR61H106KE43L (Murata Electronics)")) (property (name "edg_value") (value "50V 10uF X5R ±10% 0805 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/control/driver/") (tstamps "/0bec0302/08da028d/")) (tstamps "0af7029d")) -(comp (ref "C57") +(comp (ref "C58") (value "control.driver.cap_in3") (footprint "Capacitor_SMD:C_0603_1608Metric") (property (name "Sheetname") (value "driver")) (property (name "Sheetfile") (value "examples.test_usb_source_measure.EmitterFollower")) (property (name "edg_path") (value "control.driver.cap_in3.cap")) (property (name "edg_short_path") (value "control.driver.cap_in3")) - (property (name "edg_refdes") (value "C57")) + (property (name "edg_refdes") (value "C58")) (property (name "edg_part") (value "CL10A105KB8NNNC (Samsung Electro-Mechanics)")) (property (name "edg_value") (value "50V 1uF X5R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/control/driver/") (tstamps "/0bec0302/08da028d/")) (tstamps "0af8029e")) -(comp (ref "R43") +(comp (ref "R51") (value "control.vdiv.top_res") (footprint "Resistor_SMD:R_0603_1608Metric") (property (name "Sheetname") (value "vdiv")) (property (name "Sheetfile") (value "edg.abstract_parts.ResistiveDivider.SignalDivider")) (property (name "edg_path") (value "control.vdiv.div.top_res")) (property (name "edg_short_path") (value "control.vdiv.top_res")) - (property (name "edg_refdes") (value "R43")) + (property (name "edg_refdes") (value "R51")) (property (name "edg_part") (value "0603WAF2702T5E (UNI-ROYAL(Uniroyal Elec))")) (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 27kΩ 0603 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/control/vdiv/") (tstamps "/0bec0302/045001ba/")) (tstamps "0c0c02fd")) -(comp (ref "R44") +(comp (ref "R52") (value "control.vdiv.bottom_res") (footprint "Resistor_SMD:R_0603_1608Metric") (property (name "Sheetname") (value "vdiv")) (property (name "Sheetfile") (value "edg.abstract_parts.ResistiveDivider.SignalDivider")) (property (name "edg_path") (value "control.vdiv.div.bottom_res")) (property (name "edg_short_path") (value "control.vdiv.bottom_res")) - (property (name "edg_refdes") (value "R44")) + (property (name "edg_refdes") (value "R52")) (property (name "edg_part") (value "0603WAF1201T5E (UNI-ROYAL(Uniroyal Elec))")) (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 1.2kΩ 0603 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/control/vdiv/") (tstamps "/0bec0302/045001ba/")) (tstamps "175b043f")) -(comp (ref "C58") +(comp (ref "C59") (value "control.cdiv") (footprint "Capacitor_SMD:C_0603_1608Metric") (property (name "Sheetname") (value "control")) (property (name "Sheetfile") (value "examples.test_usb_source_measure.SourceMeasureControl")) (property (name "edg_path") (value "control.cdiv.cap")) (property (name "edg_short_path") (value "control.cdiv")) - (property (name "edg_refdes") (value "C58")) + (property (name "edg_refdes") (value "C59")) (property (name "edg_part") (value "CL10C101JB8NNNC (Samsung Electro-Mechanics)")) (property (name "edg_value") (value "50V 100pF C0G ±5% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/control/") (tstamps "/0bec0302/")) (tstamps "040401a7")) -(comp (ref "R45") +(comp (ref "R53") (value "control.isense.ranges[0].isense") (footprint "Resistor_SMD:R_1206_3216Metric") (property (name "Sheetname") (value "ranges[0]")) (property (name "Sheetfile") (value "examples.test_usb_source_measure.SourceMeasureRangingCell")) (property (name "edg_path") (value "control.isense.ranges[0].isense.res.res")) (property (name "edg_short_path") (value "control.isense.ranges[0].isense")) - (property (name "edg_refdes") (value "R45")) + (property (name "edg_refdes") (value "R53")) (property (name "edg_part") (value "HoYH1206-1W-100mR-1% (Milliohm)")) (property (name "edg_value") (value "1W 0.1Ω ±100ppm/℃ ±1% 1206 Current Sense Resistors/Shunt Resistors ROHS")) (sheetpath (names "/control/isense/ranges[0]/") (tstamps "/0bec0302/08e40288/12120369/")) @@ -1920,14 +2028,14 @@ (property (name "edg_value") (value "DG468DV")) (sheetpath (names "/control/isense/ranges[0]/sense_sw/") (tstamps "/0bec0302/08e40288/12120369/0f440368/")) (tstamps "013700cd")) -(comp (ref "C59") +(comp (ref "C60") (value "control.isense.ranges[0].sense_sw.vdd_cap") (footprint "Capacitor_SMD:C_0805_2012Metric") (property (name "Sheetname") (value "sense_sw")) (property (name "Sheetfile") (value "edg.abstract_parts.AbstractAnalogSwitch.AnalogMuxer")) (property (name "edg_path") (value "control.isense.ranges[0].sense_sw.device.vdd_cap.cap")) (property (name "edg_short_path") (value "control.isense.ranges[0].sense_sw.vdd_cap")) - (property (name "edg_refdes") (value "C59")) + (property (name "edg_refdes") (value "C60")) (property (name "edg_part") (value "CL21B104KCFNNNE (Samsung Electro-Mechanics)")) (property (name "edg_value") (value "100V 100nF X7R ±10% 0805 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/control/isense/ranges[0]/sense_sw/") (tstamps "/0bec0302/08e40288/12120369/0f440368/")) @@ -1944,26 +2052,26 @@ (property (name "edg_value") (value "TLP3545A(TP1,F")) (sheetpath (names "/control/isense/ranges[0]/pwr_sw/") (tstamps "/0bec0302/08e40288/12120369/093b02a3/")) (tstamps "013700cd")) -(comp (ref "R46") +(comp (ref "R54") (value "control.isense.ranges[0].pwr_sw.res") (footprint "Resistor_SMD:R_0603_1608Metric") (property (name "Sheetname") (value "pwr_sw")) (property (name "Sheetfile") (value "edg.abstract_parts.AbstractSolidStateRelay.VoltageIsolatedSwitch")) (property (name "edg_path") (value "control.isense.ranges[0].pwr_sw.res")) (property (name "edg_short_path") (value "control.isense.ranges[0].pwr_sw.res")) - (property (name "edg_refdes") (value "R46")) + (property (name "edg_refdes") (value "R54")) (property (name "edg_part") (value "0603WAF1001T5E (UNI-ROYAL(Uniroyal Elec))")) (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 1kΩ 0603 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/control/isense/ranges[0]/pwr_sw/") (tstamps "/0bec0302/08e40288/12120369/093b02a3/")) (tstamps "0296014b")) -(comp (ref "R47") +(comp (ref "R55") (value "control.isense.ranges[1].isense") (footprint "Resistor_SMD:R_0603_1608Metric") (property (name "Sheetname") (value "ranges[1]")) (property (name "Sheetfile") (value "examples.test_usb_source_measure.SourceMeasureRangingCell")) (property (name "edg_path") (value "control.isense.ranges[1].isense.res.res")) (property (name "edg_short_path") (value "control.isense.ranges[1].isense")) - (property (name "edg_refdes") (value "R47")) + (property (name "edg_refdes") (value "R55")) (property (name "edg_part") (value "0603WAF100KT5E (UNI-ROYAL(Uniroyal Elec))")) (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±400ppm/℃ -55℃~+155℃ 1Ω 0603 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/control/isense/ranges[1]/") (tstamps "/0bec0302/08e40288/1214036a/")) @@ -1980,14 +2088,14 @@ (property (name "edg_value") (value "DG468DV")) (sheetpath (names "/control/isense/ranges[1]/sense_sw/") (tstamps "/0bec0302/08e40288/1214036a/0f440368/")) (tstamps "013700cd")) -(comp (ref "C60") +(comp (ref "C61") (value "control.isense.ranges[1].sense_sw.vdd_cap") (footprint "Capacitor_SMD:C_0805_2012Metric") (property (name "Sheetname") (value "sense_sw")) (property (name "Sheetfile") (value "edg.abstract_parts.AbstractAnalogSwitch.AnalogMuxer")) (property (name "edg_path") (value "control.isense.ranges[1].sense_sw.device.vdd_cap.cap")) (property (name "edg_short_path") (value "control.isense.ranges[1].sense_sw.vdd_cap")) - (property (name "edg_refdes") (value "C60")) + (property (name "edg_refdes") (value "C61")) (property (name "edg_part") (value "CL21B104KCFNNNE (Samsung Electro-Mechanics)")) (property (name "edg_value") (value "100V 100nF X7R ±10% 0805 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/control/isense/ranges[1]/sense_sw/") (tstamps "/0bec0302/08e40288/1214036a/0f440368/")) @@ -2004,26 +2112,26 @@ (property (name "edg_value") (value "TLP170AM(TPL,E")) (sheetpath (names "/control/isense/ranges[1]/pwr_sw/") (tstamps "/0bec0302/08e40288/1214036a/093b02a3/")) (tstamps "013700cd")) -(comp (ref "R48") +(comp (ref "R56") (value "control.isense.ranges[1].pwr_sw.res") (footprint "Resistor_SMD:R_0603_1608Metric") (property (name "Sheetname") (value "pwr_sw")) (property (name "Sheetfile") (value "edg.abstract_parts.AbstractSolidStateRelay.VoltageIsolatedSwitch")) (property (name "edg_path") (value "control.isense.ranges[1].pwr_sw.res")) (property (name "edg_short_path") (value "control.isense.ranges[1].pwr_sw.res")) - (property (name "edg_refdes") (value "R48")) + (property (name "edg_refdes") (value "R56")) (property (name "edg_part") (value "0603WAF1001T5E (UNI-ROYAL(Uniroyal Elec))")) (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 1kΩ 0603 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/control/isense/ranges[1]/pwr_sw/") (tstamps "/0bec0302/08e40288/1214036a/093b02a3/")) (tstamps "0296014b")) -(comp (ref "R49") +(comp (ref "R57") (value "control.isense.ranges[2].isense") (footprint "Resistor_SMD:R_0603_1608Metric") (property (name "Sheetname") (value "ranges[2]")) (property (name "Sheetfile") (value "examples.test_usb_source_measure.SourceMeasureRangingCell")) (property (name "edg_path") (value "control.isense.ranges[2].isense.res.res")) (property (name "edg_short_path") (value "control.isense.ranges[2].isense")) - (property (name "edg_refdes") (value "R49")) + (property (name "edg_refdes") (value "R57")) (property (name "edg_part") (value "0603WAF100JT5E (UNI-ROYAL(Uniroyal Elec))")) (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±400ppm/℃ -55℃~+155℃ 10Ω 0603 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/control/isense/ranges[2]/") (tstamps "/0bec0302/08e40288/1216036b/")) @@ -2040,14 +2148,14 @@ (property (name "edg_value") (value "DG468DV")) (sheetpath (names "/control/isense/ranges[2]/sense_sw/") (tstamps "/0bec0302/08e40288/1216036b/0f440368/")) (tstamps "013700cd")) -(comp (ref "C61") +(comp (ref "C62") (value "control.isense.ranges[2].sense_sw.vdd_cap") (footprint "Capacitor_SMD:C_0805_2012Metric") (property (name "Sheetname") (value "sense_sw")) (property (name "Sheetfile") (value "edg.abstract_parts.AbstractAnalogSwitch.AnalogMuxer")) (property (name "edg_path") (value "control.isense.ranges[2].sense_sw.device.vdd_cap.cap")) (property (name "edg_short_path") (value "control.isense.ranges[2].sense_sw.vdd_cap")) - (property (name "edg_refdes") (value "C61")) + (property (name "edg_refdes") (value "C62")) (property (name "edg_part") (value "CL21B104KCFNNNE (Samsung Electro-Mechanics)")) (property (name "edg_value") (value "100V 100nF X7R ±10% 0805 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/control/isense/ranges[2]/sense_sw/") (tstamps "/0bec0302/08e40288/1216036b/0f440368/")) @@ -2064,50 +2172,50 @@ (property (name "edg_value") (value "TLP170AM(TPL,E")) (sheetpath (names "/control/isense/ranges[2]/pwr_sw/") (tstamps "/0bec0302/08e40288/1216036b/093b02a3/")) (tstamps "013700cd")) -(comp (ref "R50") +(comp (ref "R58") (value "control.isense.ranges[2].pwr_sw.res") (footprint "Resistor_SMD:R_0603_1608Metric") (property (name "Sheetname") (value "pwr_sw")) (property (name "Sheetfile") (value "edg.abstract_parts.AbstractSolidStateRelay.VoltageIsolatedSwitch")) (property (name "edg_path") (value "control.isense.ranges[2].pwr_sw.res")) (property (name "edg_short_path") (value "control.isense.ranges[2].pwr_sw.res")) - (property (name "edg_refdes") (value "R50")) + (property (name "edg_refdes") (value "R58")) (property (name "edg_part") (value "0603WAF1001T5E (UNI-ROYAL(Uniroyal Elec))")) (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 1kΩ 0603 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/control/isense/ranges[2]/pwr_sw/") (tstamps "/0bec0302/08e40288/1216036b/093b02a3/")) (tstamps "0296014b")) -(comp (ref "R51") +(comp (ref "R59") (value "control.ifilt.rp") (footprint "Resistor_SMD:R_0603_1608Metric") (property (name "Sheetname") (value "ifilt")) (property (name "Sheetfile") (value "edg.abstract_parts.PassiveFilters.LowPassAnalogDifferentialRc")) (property (name "edg_path") (value "control.ifilt.rp")) (property (name "edg_short_path") (value "control.ifilt.rp")) - (property (name "edg_refdes") (value "R51")) + (property (name "edg_refdes") (value "R59")) (property (name "edg_part") (value "0603WAF1000T5E (UNI-ROYAL(Uniroyal Elec))")) (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±200ppm/℃ -55℃~+155℃ 100Ω 0603 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/control/ifilt/") (tstamps "/0bec0302/06310219/")) (tstamps "015600e3")) -(comp (ref "R52") +(comp (ref "R60") (value "control.ifilt.rn") (footprint "Resistor_SMD:R_0603_1608Metric") (property (name "Sheetname") (value "ifilt")) (property (name "Sheetfile") (value "edg.abstract_parts.PassiveFilters.LowPassAnalogDifferentialRc")) (property (name "edg_path") (value "control.ifilt.rn")) (property (name "edg_short_path") (value "control.ifilt.rn")) - (property (name "edg_refdes") (value "R52")) + (property (name "edg_refdes") (value "R60")) (property (name "edg_part") (value "0603WAF1000T5E (UNI-ROYAL(Uniroyal Elec))")) (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±200ppm/℃ -55℃~+155℃ 100Ω 0603 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/control/ifilt/") (tstamps "/0bec0302/06310219/")) (tstamps "015400e1")) -(comp (ref "C62") +(comp (ref "C63") (value "control.ifilt.c") (footprint "Capacitor_SMD:C_0603_1608Metric") (property (name "Sheetname") (value "ifilt")) (property (name "Sheetfile") (value "edg.abstract_parts.PassiveFilters.LowPassAnalogDifferentialRc")) (property (name "edg_path") (value "control.ifilt.c")) (property (name "edg_short_path") (value "control.ifilt.c")) - (property (name "edg_refdes") (value "C62")) + (property (name "edg_refdes") (value "C63")) (property (name "edg_part") (value "0603B471K500NT (FH(Guangdong Fenghua Advanced Tech))")) (property (name "edg_value") (value "50V 470pF X7R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/control/ifilt/") (tstamps "/0bec0302/06310219/")) @@ -2124,26 +2232,26 @@ (property (name "edg_value") (value "INA826AIDR")) (sheetpath (names "/control/vmeas/") (tstamps "/0bec0302/066b021d/")) (tstamps "013700cd")) -(comp (ref "C63") +(comp (ref "C64") (value "control.vmeas.vdd_cap") (footprint "Capacitor_SMD:C_0805_2012Metric") (property (name "Sheetname") (value "vmeas")) (property (name "Sheetfile") (value "edg.parts.Inamp_Ina826.Ina826")) (property (name "edg_path") (value "control.vmeas.vdd_cap.cap")) (property (name "edg_short_path") (value "control.vmeas.vdd_cap")) - (property (name "edg_refdes") (value "C63")) + (property (name "edg_refdes") (value "C64")) (property (name "edg_part") (value "CL21B104KCFNNNE (Samsung Electro-Mechanics)")) (property (name "edg_value") (value "100V 100nF X7R ±10% 0805 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/control/vmeas/") (tstamps "/0bec0302/066b021d/")) (tstamps "0b6402d2")) -(comp (ref "R53") +(comp (ref "R61") (value "control.vmeas.rg") (footprint "Resistor_SMD:R_0603_1608Metric") (property (name "Sheetname") (value "vmeas")) (property (name "Sheetfile") (value "edg.parts.Inamp_Ina826.Ina826")) (property (name "edg_path") (value "control.vmeas.rg")) (property (name "edg_short_path") (value "control.vmeas.rg")) - (property (name "edg_refdes") (value "R53")) + (property (name "edg_refdes") (value "R61")) (property (name "edg_part") (value "0603WAF4703T5E (UNI-ROYAL(Uniroyal Elec))")) (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 470kΩ 0603 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/control/vmeas/") (tstamps "/0bec0302/066b021d/")) @@ -2160,26 +2268,26 @@ (property (name "edg_value") (value "INA826AIDR")) (sheetpath (names "/control/imeas/") (tstamps "/0bec0302/062a0210/")) (tstamps "013700cd")) -(comp (ref "C64") +(comp (ref "C65") (value "control.imeas.vdd_cap") (footprint "Capacitor_SMD:C_0805_2012Metric") (property (name "Sheetname") (value "imeas")) (property (name "Sheetfile") (value "edg.parts.Inamp_Ina826.Ina826")) (property (name "edg_path") (value "control.imeas.vdd_cap.cap")) (property (name "edg_short_path") (value "control.imeas.vdd_cap")) - (property (name "edg_refdes") (value "C64")) + (property (name "edg_refdes") (value "C65")) (property (name "edg_part") (value "CL21B104KCFNNNE (Samsung Electro-Mechanics)")) (property (name "edg_value") (value "100V 100nF X7R ±10% 0805 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/control/imeas/") (tstamps "/0bec0302/062a0210/")) (tstamps "0b6402d2")) -(comp (ref "R54") +(comp (ref "R62") (value "control.imeas.rg") (footprint "Resistor_SMD:R_0603_1608Metric") (property (name "Sheetname") (value "imeas")) (property (name "Sheetfile") (value "edg.parts.Inamp_Ina826.Ina826")) (property (name "edg_path") (value "control.imeas.rg")) (property (name "edg_short_path") (value "control.imeas.rg")) - (property (name "edg_refdes") (value "R54")) + (property (name "edg_refdes") (value "R62")) (property (name "edg_part") (value "0603WAF1202T5E (UNI-ROYAL(Uniroyal Elec))")) (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 12kΩ 0603 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/control/imeas/") (tstamps "/0bec0302/062a0210/")) @@ -2196,14 +2304,14 @@ (property (name "edg_value") (value "MMBFJ112")) (sheetpath (names "/control/vclamp/") (tstamps "/0bec0302/08d60284/")) (tstamps "00d50083")) -(comp (ref "R55") +(comp (ref "R63") (value "control.vclamp.r") (footprint "Resistor_SMD:R_0603_1608Metric") (property (name "Sheetname") (value "vclamp")) (property (name "Sheetfile") (value "examples.test_usb_source_measure.JfetCurrentClamp")) (property (name "edg_path") (value "control.vclamp.r")) (property (name "edg_short_path") (value "control.vclamp.r")) - (property (name "edg_refdes") (value "R55")) + (property (name "edg_refdes") (value "R63")) (property (name "edg_part") (value "0603WAF470JT5E (UNI-ROYAL(Uniroyal Elec))")) (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 47Ω 0603 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/control/vclamp/") (tstamps "/0bec0302/08d60284/")) @@ -2220,26 +2328,26 @@ (property (name "edg_value") (value "MMBFJ112")) (sheetpath (names "/control/vclamp/") (tstamps "/0bec0302/08d60284/")) (tstamps "00d60084")) -(comp (ref "R56") +(comp (ref "R64") (value "control.snub_r") (footprint "Resistor_SMD:R_0603_1608Metric") (property (name "Sheetname") (value "control")) (property (name "Sheetfile") (value "examples.test_usb_source_measure.SourceMeasureControl")) (property (name "edg_path") (value "control.snub_r.res")) (property (name "edg_short_path") (value "control.snub_r")) - (property (name "edg_refdes") (value "R56")) + (property (name "edg_refdes") (value "R64")) (property (name "edg_part") (value "0603WAF100KT5E (UNI-ROYAL(Uniroyal Elec))")) (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±400ppm/℃ -55℃~+155℃ 1Ω 0603 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/control/") (tstamps "/0bec0302/")) (tstamps "0908028a")) -(comp (ref "C65") +(comp (ref "C66") (value "control.snub_c") (footprint "Capacitor_SMD:C_0603_1608Metric") (property (name "Sheetname") (value "control")) (property (name "Sheetfile") (value "examples.test_usb_source_measure.SourceMeasureControl")) (property (name "edg_path") (value "control.snub_c.cap")) (property (name "edg_short_path") (value "control.snub_c")) - (property (name "edg_refdes") (value "C65")) + (property (name "edg_refdes") (value "C66")) (property (name "edg_part") (value "0603B103K500NT (FH(Guangdong Fenghua Advanced Tech))")) (property (name "edg_value") (value "50V 10nF X7R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/control/") (tstamps "/0bec0302/")) @@ -2256,14 +2364,14 @@ (property (name "edg_value") (value "MMBFJ112")) (sheetpath (names "/control/iclamp/") (tstamps "/0bec0302/08880277/")) (tstamps "00d50083")) -(comp (ref "R57") +(comp (ref "R65") (value "control.iclamp.r") (footprint "Resistor_SMD:R_0603_1608Metric") (property (name "Sheetname") (value "iclamp")) (property (name "Sheetfile") (value "examples.test_usb_source_measure.JfetCurrentClamp")) (property (name "edg_path") (value "control.iclamp.r")) (property (name "edg_short_path") (value "control.iclamp.r")) - (property (name "edg_refdes") (value "R57")) + (property (name "edg_refdes") (value "R65")) (property (name "edg_part") (value "0603WAF470JT5E (UNI-ROYAL(Uniroyal Elec))")) (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 47Ω 0603 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/control/iclamp/") (tstamps "/0bec0302/08880277/")) @@ -2340,26 +2448,26 @@ (property (name "edg_value") (value "FUSB302B11MPX")) (sheetpath (names "/pd/") (tstamps "/014600d5/")) (tstamps "013700cd")) -(comp (ref "C66") +(comp (ref "C67") (value "pd.vdd_cap[0]") (footprint "Capacitor_SMD:C_0603_1608Metric") (property (name "Sheetname") (value "pd")) (property (name "Sheetfile") (value "edg.parts.Fusb302b.Fusb302b")) (property (name "edg_path") (value "pd.vdd_cap[0].cap")) (property (name "edg_short_path") (value "pd.vdd_cap[0]")) - (property (name "edg_refdes") (value "C66")) + (property (name "edg_refdes") (value "C67")) (property (name "edg_part") (value "CC0603KRX7R9BB104 (YAGEO)")) (property (name "edg_value") (value "50V 100nF X7R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/pd/") (tstamps "/014600d5/")) (tstamps "15a803ba")) -(comp (ref "C67") +(comp (ref "C68") (value "pd.vdd_cap[1]") (footprint "Capacitor_SMD:C_0805_2012Metric") (property (name "Sheetname") (value "pd")) (property (name "Sheetfile") (value "edg.parts.Fusb302b.Fusb302b")) (property (name "edg_path") (value "pd.vdd_cap[1].cap")) (property (name "edg_short_path") (value "pd.vdd_cap[1]")) - (property (name "edg_refdes") (value "C67")) + (property (name "edg_refdes") (value "C68")) (property (name "edg_part") (value "CL21A106KAYNNNE (Samsung Electro-Mechanics)")) (property (name "edg_value") (value "X5R 25V ±10% 10uF 0805 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/pd/") (tstamps "/014600d5/")) @@ -2376,26 +2484,26 @@ (property (name "edg_value") (value "ESP32-S3-WROOM-1-N16R8")) (sheetpath (names "/mcu/") (tstamps "/02850146/")) (tstamps "013700cd")) -(comp (ref "C68") +(comp (ref "C69") (value "mcu.vcc_cap0") (footprint "Capacitor_SMD:C_1206_3216Metric") (property (name "Sheetname") (value "mcu")) (property (name "Sheetfile") (value "edg.parts.Microcontroller_Esp32s3.Esp32s3_Wroom_1")) (property (name "edg_path") (value "mcu.vcc_cap0.cap")) (property (name "edg_short_path") (value "mcu.vcc_cap0")) - (property (name "edg_refdes") (value "C68")) + (property (name "edg_refdes") (value "C69")) (property (name "edg_part") (value "CL31A226KPHNNNE (Samsung Electro-Mechanics)")) (property (name "edg_value") (value "10V 22uF X5R ±10% 1206 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/mcu/") (tstamps "/02850146/")) (tstamps "0e590300")) -(comp (ref "C69") +(comp (ref "C70") (value "mcu.vcc_cap1") (footprint "Capacitor_SMD:C_0603_1608Metric") (property (name "Sheetname") (value "mcu")) (property (name "Sheetfile") (value "edg.parts.Microcontroller_Esp32s3.Esp32s3_Wroom_1")) (property (name "edg_path") (value "mcu.vcc_cap1.cap")) (property (name "edg_short_path") (value "mcu.vcc_cap1")) - (property (name "edg_refdes") (value "C69")) + (property (name "edg_refdes") (value "C70")) (property (name "edg_part") (value "CC0603KRX7R9BB104 (YAGEO)")) (property (name "edg_value") (value "50V 100nF X7R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/mcu/") (tstamps "/02850146/")) @@ -2412,26 +2520,26 @@ (property (name "edg_value") (value "")) (sheetpath (names "/mcu/") (tstamps "/02850146/")) (tstamps "045f01b9")) -(comp (ref "R58") +(comp (ref "R66") (value "mcu.en_pull.r") (footprint "Resistor_SMD:R_0603_1608Metric") (property (name "Sheetname") (value "en_pull")) (property (name "Sheetfile") (value "edg.abstract_parts.PassiveFilters.PullupDelayRc")) (property (name "edg_path") (value "mcu.en_pull.rc.r")) (property (name "edg_short_path") (value "mcu.en_pull.r")) - (property (name "edg_refdes") (value "R58")) + (property (name "edg_refdes") (value "R66")) (property (name "edg_part") (value "0603WAF1002T5E (UNI-ROYAL(Uniroyal Elec))")) (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 10kΩ 0603 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/mcu/en_pull/") (tstamps "/02850146/0b9c02f0/")) (tstamps "00730073")) -(comp (ref "C70") +(comp (ref "C71") (value "mcu.en_pull.c") (footprint "Capacitor_SMD:C_0603_1608Metric") (property (name "Sheetname") (value "en_pull")) (property (name "Sheetfile") (value "edg.abstract_parts.PassiveFilters.PullupDelayRc")) (property (name "edg_path") (value "mcu.en_pull.rc.c")) (property (name "edg_short_path") (value "mcu.en_pull.c")) - (property (name "edg_refdes") (value "C70")) + (property (name "edg_refdes") (value "C71")) (property (name "edg_part") (value "CL10A105KB8NNNC (Samsung Electro-Mechanics)")) (property (name "edg_value") (value "50V 1uF X5R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/mcu/en_pull/") (tstamps "/02850146/0b9c02f0/")) @@ -2448,14 +2556,14 @@ (property (name "edg_value") (value "Red 615~630nm 1.9~2.2V 0603 Light Emitting Diodes (LED) RoHS")) (sheetpath (names "/led/") (tstamps "/02750136/")) (tstamps "0b4e02cd")) -(comp (ref "R59") +(comp (ref "R67") (value "led.res") (footprint "Resistor_SMD:R_0603_1608Metric") (property (name "Sheetname") (value "led")) (property (name "Sheetfile") (value "edg.abstract_parts.AbstractLed.IndicatorSinkLedResistor")) (property (name "edg_path") (value "led.res")) (property (name "edg_short_path") (value "led.res")) - (property (name "edg_refdes") (value "R59")) + (property (name "edg_refdes") (value "R67")) (property (name "edg_part") (value "0603WAF1001T5E (UNI-ROYAL(Uniroyal Elec))")) (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 1kΩ 0603 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/led/") (tstamps "/02750136/")) @@ -2496,26 +2604,26 @@ (property (name "edg_value") (value "i2c.sda")) (sheetpath (names "/i2c_tp/") (tstamps "/07770242/")) (tstamps "08ec027c")) -(comp (ref "R60") +(comp (ref "R68") (value "i2c_pull.scl_res") (footprint "Resistor_SMD:R_0603_1608Metric") (property (name "Sheetname") (value "i2c_pull")) (property (name "Sheetfile") (value "edg.abstract_parts.I2cPullup.I2cPullup")) (property (name "edg_path") (value "i2c_pull.scl_res.res")) (property (name "edg_short_path") (value "i2c_pull.scl_res")) - (property (name "edg_refdes") (value "R60")) + (property (name "edg_refdes") (value "R68")) (property (name "edg_part") (value "0603WAF4701T5E (UNI-ROYAL(Uniroyal Elec))")) (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 4.7kΩ 0603 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/i2c_pull/") (tstamps "/0d3e031b/")) (tstamps "0ba902ec")) -(comp (ref "R61") +(comp (ref "R69") (value "i2c_pull.sda_res") (footprint "Resistor_SMD:R_0603_1608Metric") (property (name "Sheetname") (value "i2c_pull")) (property (name "Sheetfile") (value "edg.abstract_parts.I2cPullup.I2cPullup")) (property (name "edg_path") (value "i2c_pull.sda_res.res")) (property (name "edg_short_path") (value "i2c_pull.sda_res")) - (property (name "edg_refdes") (value "R61")) + (property (name "edg_refdes") (value "R69")) (property (name "edg_part") (value "0603WAF4701T5E (UNI-ROYAL(Uniroyal Elec))")) (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 4.7kΩ 0603 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/i2c_pull/") (tstamps "/0d3e031b/")) @@ -2544,98 +2652,98 @@ (property (name "edg_value") (value "ER-OLED022-1")) (sheetpath (names "/oled/") (tstamps "/043201a5/")) (tstamps "02710134")) -(comp (ref "R62") +(comp (ref "R70") (value "oled.iref_res") (footprint "Resistor_SMD:R_0603_1608Metric") (property (name "Sheetname") (value "oled")) (property (name "Sheetfile") (value "edg.parts.Oled_Er_Oled_022.Er_Oled022_1")) (property (name "edg_path") (value "oled.iref_res")) (property (name "edg_short_path") (value "oled.iref_res")) - (property (name "edg_refdes") (value "R62")) + (property (name "edg_refdes") (value "R70")) (property (name "edg_part") (value "0603WAF1004T5E (UNI-ROYAL(Uniroyal Elec))")) (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 1MΩ 0603 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/oled/") (tstamps "/043201a5/")) (tstamps "0ed90350")) -(comp (ref "C71") +(comp (ref "C72") (value "oled.vcomh_cap") (footprint "Capacitor_SMD:C_1206_3216Metric") (property (name "Sheetname") (value "oled")) (property (name "Sheetfile") (value "edg.parts.Oled_Er_Oled_022.Er_Oled022_1")) (property (name "edg_path") (value "oled.vcomh_cap.cap")) (property (name "edg_short_path") (value "oled.vcomh_cap")) - (property (name "edg_refdes") (value "C71")) + (property (name "edg_refdes") (value "C72")) (property (name "edg_part") (value "1206B475K500NT (FH(Guangdong Fenghua Advanced Tech))")) (property (name "edg_value") (value "50V 4.7uF X7R ±10% 1206 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/oled/") (tstamps "/043201a5/")) (tstamps "12bd03b1")) -(comp (ref "C72") +(comp (ref "C73") (value "oled.vdd_cap1") (footprint "Capacitor_SMD:C_0603_1608Metric") (property (name "Sheetname") (value "oled")) (property (name "Sheetfile") (value "edg.parts.Oled_Er_Oled_022.Er_Oled022_1")) (property (name "edg_path") (value "oled.vdd_cap1.cap")) (property (name "edg_short_path") (value "oled.vdd_cap1")) - (property (name "edg_refdes") (value "C72")) + (property (name "edg_refdes") (value "C73")) (property (name "edg_part") (value "CC0603KRX7R9BB104 (YAGEO)")) (property (name "edg_value") (value "50V 100nF X7R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/oled/") (tstamps "/043201a5/")) (tstamps "0e670303")) -(comp (ref "C73") +(comp (ref "C74") (value "oled.vdd_cap2") (footprint "Capacitor_SMD:C_0805_2012Metric") (property (name "Sheetname") (value "oled")) (property (name "Sheetfile") (value "edg.parts.Oled_Er_Oled_022.Er_Oled022_1")) (property (name "edg_path") (value "oled.vdd_cap2.cap")) (property (name "edg_short_path") (value "oled.vdd_cap2")) - (property (name "edg_refdes") (value "C73")) + (property (name "edg_refdes") (value "C74")) (property (name "edg_part") (value "CL21A475KAQNNNE (Samsung Electro-Mechanics)")) (property (name "edg_value") (value "25V 4.7uF X5R ±10% 0805 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/oled/") (tstamps "/043201a5/")) (tstamps "0e680304")) -(comp (ref "C74") +(comp (ref "C75") (value "oled.vcc_cap1") (footprint "Capacitor_SMD:C_0603_1608Metric") (property (name "Sheetname") (value "oled")) (property (name "Sheetfile") (value "edg.parts.Oled_Er_Oled_022.Er_Oled022_1")) (property (name "edg_path") (value "oled.vcc_cap1.cap")) (property (name "edg_short_path") (value "oled.vcc_cap1")) - (property (name "edg_refdes") (value "C74")) + (property (name "edg_refdes") (value "C75")) (property (name "edg_part") (value "CC0603KRX7R9BB104 (YAGEO)")) (property (name "edg_value") (value "50V 100nF X7R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/oled/") (tstamps "/043201a5/")) (tstamps "0e5a0301")) -(comp (ref "C75") +(comp (ref "C76") (value "oled.vcc_cap2") (footprint "Capacitor_SMD:C_0805_2012Metric") (property (name "Sheetname") (value "oled")) (property (name "Sheetfile") (value "edg.parts.Oled_Er_Oled_022.Er_Oled022_1")) (property (name "edg_path") (value "oled.vcc_cap2.cap")) (property (name "edg_short_path") (value "oled.vcc_cap2")) - (property (name "edg_refdes") (value "C75")) + (property (name "edg_refdes") (value "C76")) (property (name "edg_part") (value "GRM21BR61H106KE43L (Murata Electronics)")) (property (name "edg_value") (value "50V 10uF X5R ±10% 0805 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/oled/") (tstamps "/043201a5/")) (tstamps "0e5b0302")) -(comp (ref "R63") +(comp (ref "R71") (value "oled_rc.r") (footprint "Resistor_SMD:R_0603_1608Metric") (property (name "Sheetname") (value "oled_rc")) (property (name "Sheetfile") (value "edg.abstract_parts.PassiveFilters.PullupDelayRc")) (property (name "edg_path") (value "oled_rc.rc.r")) (property (name "edg_short_path") (value "oled_rc.r")) - (property (name "edg_refdes") (value "R63")) + (property (name "edg_refdes") (value "R71")) (property (name "edg_part") (value "0603WAF1002T5E (UNI-ROYAL(Uniroyal Elec))")) (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 10kΩ 0603 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/oled_rc/") (tstamps "/0b8502d9/")) (tstamps "00730073")) -(comp (ref "C76") +(comp (ref "C77") (value "oled_rc.c") (footprint "Capacitor_SMD:C_0603_1608Metric") (property (name "Sheetname") (value "oled_rc")) (property (name "Sheetfile") (value "edg.abstract_parts.PassiveFilters.PullupDelayRc")) (property (name "edg_path") (value "oled_rc.rc.c")) (property (name "edg_short_path") (value "oled_rc.c")) - (property (name "edg_refdes") (value "C76")) + (property (name "edg_refdes") (value "C77")) (property (name "edg_part") (value "CL10A105KB8NNNC (Samsung Electro-Mechanics)")) (property (name "edg_value") (value "50V 1uF X5R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/oled_rc/") (tstamps "/0b8502d9/")) @@ -2652,74 +2760,74 @@ (property (name "edg_value") (value "PCA9554APW,118")) (sheetpath (names "/ioe_ctl/") (tstamps "/0b7202e0/")) (tstamps "013700cd")) -(comp (ref "C77") +(comp (ref "C78") (value "ioe_ctl.vdd_cap") (footprint "Capacitor_SMD:C_0603_1608Metric") (property (name "Sheetname") (value "ioe_ctl")) (property (name "Sheetfile") (value "edg.parts.IoExpander_Pca9554.Pca9554")) (property (name "edg_path") (value "ioe_ctl.vdd_cap.cap")) (property (name "edg_short_path") (value "ioe_ctl.vdd_cap")) - (property (name "edg_refdes") (value "C77")) + (property (name "edg_refdes") (value "C78")) (property (name "edg_part") (value "CC0603KRX7R9BB104 (YAGEO)")) (property (name "edg_value") (value "50V 100nF X7R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/ioe_ctl/") (tstamps "/0b7202e0/")) (tstamps "0b6402d2")) -(comp (ref "R64") +(comp (ref "R72") (value "ramp_pull") (footprint "Resistor_SMD:R_0603_1608Metric") (property (name "Sheetname") (value "")) (property (name "Sheetfile") (value "")) (property (name "edg_path") (value "ramp_pull.res")) (property (name "edg_short_path") (value "ramp_pull")) - (property (name "edg_refdes") (value "R64")) + (property (name "edg_refdes") (value "R72")) (property (name "edg_part") (value "0603WAF1002T5E (UNI-ROYAL(Uniroyal Elec))")) (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 10kΩ 0603 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/") (tstamps "/")) (tstamps "12ec03cd")) -(comp (ref "R65") +(comp (ref "R73") (value "buck_rc.r") (footprint "Resistor_SMD:R_0603_1608Metric") (property (name "Sheetname") (value "buck_rc")) (property (name "Sheetfile") (value "edg.abstract_parts.PassiveFilters.DigitalLowPassRc")) (property (name "edg_path") (value "buck_rc.rc.r")) (property (name "edg_short_path") (value "buck_rc.r")) - (property (name "edg_refdes") (value "R65")) + (property (name "edg_refdes") (value "R73")) (property (name "edg_part") (value "0603WAF1500T5E (UNI-ROYAL(Uniroyal Elec))")) (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 150Ω 0603 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/buck_rc/") (tstamps "/0b7202da/")) (tstamps "00730073")) -(comp (ref "C78") +(comp (ref "C79") (value "buck_rc.c") (footprint "Capacitor_SMD:C_0603_1608Metric") (property (name "Sheetname") (value "buck_rc")) (property (name "Sheetfile") (value "edg.abstract_parts.PassiveFilters.DigitalLowPassRc")) (property (name "edg_path") (value "buck_rc.rc.c")) (property (name "edg_short_path") (value "buck_rc.c")) - (property (name "edg_refdes") (value "C78")) + (property (name "edg_refdes") (value "C79")) (property (name "edg_part") (value "0603B151K500NT (FH(Guangdong Fenghua Advanced Tech))")) (property (name "edg_value") (value "50V 150pF X7R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/buck_rc/") (tstamps "/0b7202da/")) (tstamps "00640064")) -(comp (ref "R66") +(comp (ref "R74") (value "boost_rc.r") (footprint "Resistor_SMD:R_0603_1608Metric") (property (name "Sheetname") (value "boost_rc")) (property (name "Sheetfile") (value "edg.abstract_parts.PassiveFilters.DigitalLowPassRc")) (property (name "edg_path") (value "boost_rc.rc.r")) (property (name "edg_short_path") (value "boost_rc.r")) - (property (name "edg_refdes") (value "R66")) + (property (name "edg_refdes") (value "R74")) (property (name "edg_part") (value "0603WAF1500T5E (UNI-ROYAL(Uniroyal Elec))")) (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 150Ω 0603 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/boost_rc/") (tstamps "/0f2e035c/")) (tstamps "00730073")) -(comp (ref "C79") +(comp (ref "C80") (value "boost_rc.c") (footprint "Capacitor_SMD:C_0603_1608Metric") (property (name "Sheetname") (value "boost_rc")) (property (name "Sheetfile") (value "edg.abstract_parts.PassiveFilters.DigitalLowPassRc")) (property (name "edg_path") (value "boost_rc.rc.c")) (property (name "edg_short_path") (value "boost_rc.c")) - (property (name "edg_refdes") (value "C79")) + (property (name "edg_refdes") (value "C80")) (property (name "edg_part") (value "0603B151K500NT (FH(Guangdong Fenghua Advanced Tech))")) (property (name "edg_value") (value "50V 150pF X7R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/boost_rc/") (tstamps "/0f2e035c/")) @@ -2736,62 +2844,62 @@ (property (name "edg_value") (value "LMV331IDCKR")) (sheetpath (names "/conv_ovp/comp/") (tstamps "/0f30036b/042701b0/")) (tstamps "013700cd")) -(comp (ref "C80") +(comp (ref "C81") (value "conv_ovp.comp.vdd_cap") (footprint "Capacitor_SMD:C_0603_1608Metric") (property (name "Sheetname") (value "comp")) (property (name "Sheetfile") (value "edg.parts.Comparator_Lmv331.Lmv331")) (property (name "edg_path") (value "conv_ovp.comp.vdd_cap.cap")) (property (name "edg_short_path") (value "conv_ovp.comp.vdd_cap")) - (property (name "edg_refdes") (value "C80")) + (property (name "edg_refdes") (value "C81")) (property (name "edg_part") (value "CC0603KRX7R9BB104 (YAGEO)")) (property (name "edg_value") (value "50V 100nF X7R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/conv_ovp/comp/") (tstamps "/0f30036b/042701b0/")) (tstamps "0b6402d2")) -(comp (ref "R67") +(comp (ref "R75") (value "conv_ovp.ref_div.top_res") (footprint "Resistor_SMD:R_0603_1608Metric") (property (name "Sheetname") (value "ref_div")) (property (name "Sheetfile") (value "edg.abstract_parts.ResistiveDivider.VoltageDivider")) (property (name "edg_path") (value "conv_ovp.ref_div.div.top_res")) (property (name "edg_short_path") (value "conv_ovp.ref_div.top_res")) - (property (name "edg_refdes") (value "R67")) + (property (name "edg_refdes") (value "R75")) (property (name "edg_part") (value "0603WAF1002T5E (UNI-ROYAL(Uniroyal Elec))")) (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 10kΩ 0603 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/conv_ovp/ref_div/") (tstamps "/0f30036b/0b7102e0/")) (tstamps "0c0c02fd")) -(comp (ref "R68") +(comp (ref "R76") (value "conv_ovp.ref_div.bottom_res") (footprint "Resistor_SMD:R_0603_1608Metric") (property (name "Sheetname") (value "ref_div")) (property (name "Sheetfile") (value "edg.abstract_parts.ResistiveDivider.VoltageDivider")) (property (name "edg_path") (value "conv_ovp.ref_div.div.bottom_res")) (property (name "edg_short_path") (value "conv_ovp.ref_div.bottom_res")) - (property (name "edg_refdes") (value "R68")) + (property (name "edg_refdes") (value "R76")) (property (name "edg_part") (value "0603WAF1002T5E (UNI-ROYAL(Uniroyal Elec))")) (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 10kΩ 0603 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/conv_ovp/ref_div/") (tstamps "/0f30036b/0b7102e0/")) (tstamps "175b043f")) -(comp (ref "R69") +(comp (ref "R77") (value "conv_ovp.comp_div.top_res") (footprint "Resistor_SMD:R_0603_1608Metric") (property (name "Sheetname") (value "comp_div")) (property (name "Sheetfile") (value "edg.abstract_parts.ResistiveDivider.FeedbackVoltageDivider")) (property (name "edg_path") (value "conv_ovp.comp_div.div.top_res")) (property (name "edg_short_path") (value "conv_ovp.comp_div.top_res")) - (property (name "edg_refdes") (value "R69")) + (property (name "edg_refdes") (value "R77")) (property (name "edg_part") (value "0603WAF4703T5E (UNI-ROYAL(Uniroyal Elec))")) (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 470kΩ 0603 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/conv_ovp/comp_div/") (tstamps "/0f30036b/0ed70352/")) (tstamps "0c0c02fd")) -(comp (ref "R70") +(comp (ref "R78") (value "conv_ovp.comp_div.bottom_res") (footprint "Resistor_SMD:R_0603_1608Metric") (property (name "Sheetname") (value "comp_div")) (property (name "Sheetfile") (value "edg.abstract_parts.ResistiveDivider.FeedbackVoltageDivider")) (property (name "edg_path") (value "conv_ovp.comp_div.div.bottom_res")) (property (name "edg_short_path") (value "conv_ovp.comp_div.bottom_res")) - (property (name "edg_refdes") (value "R70")) + (property (name "edg_refdes") (value "R78")) (property (name "edg_part") (value "0603WAF2202T5E (UNI-ROYAL(Uniroyal Elec))")) (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 22kΩ 0603 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/conv_ovp/comp_div/") (tstamps "/0f30036b/0ed70352/")) @@ -2808,38 +2916,38 @@ (property (name "edg_value") (value "SN74LVC2G02DCUR")) (sheetpath (names "/conv_latch/") (tstamps "/16dd0422/")) (tstamps "013700cd")) -(comp (ref "C81") +(comp (ref "C82") (value "conv_latch.vdd_cap") (footprint "Capacitor_SMD:C_0603_1608Metric") (property (name "Sheetname") (value "conv_latch")) (property (name "Sheetfile") (value "examples.test_usb_source_measure.SrLatchInverted")) (property (name "edg_path") (value "conv_latch.ic.vdd_cap.cap")) (property (name "edg_short_path") (value "conv_latch.vdd_cap")) - (property (name "edg_refdes") (value "C81")) + (property (name "edg_refdes") (value "C82")) (property (name "edg_part") (value "CC0603KRX7R9BB104 (YAGEO)")) (property (name "edg_value") (value "50V 100nF X7R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/conv_latch/") (tstamps "/16dd0422/")) (tstamps "0b6402d2")) -(comp (ref "R71") +(comp (ref "R79") (value "conv_en_pull") (footprint "Resistor_SMD:R_0603_1608Metric") (property (name "Sheetname") (value "")) (property (name "Sheetfile") (value "")) (property (name "edg_path") (value "conv_en_pull.res")) (property (name "edg_short_path") (value "conv_en_pull")) - (property (name "edg_refdes") (value "R71")) + (property (name "edg_refdes") (value "R79")) (property (name "edg_part") (value "0603WAF1002T5E (UNI-ROYAL(Uniroyal Elec))")) (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 10kΩ 0603 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/") (tstamps "/")) (tstamps "20740505")) -(comp (ref "R72") +(comp (ref "R80") (value "comp_pull") (footprint "Resistor_SMD:R_0603_1608Metric") (property (name "Sheetname") (value "")) (property (name "Sheetfile") (value "")) (property (name "edg_path") (value "comp_pull.res")) (property (name "edg_short_path") (value "comp_pull")) - (property (name "edg_refdes") (value "R72")) + (property (name "edg_refdes") (value "R80")) (property (name "edg_part") (value "0603WAF1002T5E (UNI-ROYAL(Uniroyal Elec))")) (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 10kΩ 0603 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/") (tstamps "/")) @@ -2856,14 +2964,14 @@ (property (name "edg_value") (value "TMP1075N")) (sheetpath (names "/pass_temp/") (tstamps "/12fc03cd/")) (tstamps "013700cd")) -(comp (ref "C82") +(comp (ref "C83") (value "pass_temp.vdd_cap") (footprint "Capacitor_SMD:C_0603_1608Metric") (property (name "Sheetname") (value "pass_temp")) (property (name "Sheetfile") (value "edg.parts.EnvironmentalSensor_Ti.Tmp1075n")) (property (name "edg_path") (value "pass_temp.vdd_cap.cap")) (property (name "edg_short_path") (value "pass_temp.vdd_cap")) - (property (name "edg_refdes") (value "C82")) + (property (name "edg_refdes") (value "C83")) (property (name "edg_part") (value "0603B103K500NT (FH(Guangdong Fenghua Advanced Tech))")) (property (name "edg_value") (value "50V 10nF X7R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/pass_temp/") (tstamps "/12fc03cd/")) @@ -2880,38 +2988,38 @@ (property (name "edg_value") (value "TMP1075N")) (sheetpath (names "/conv_temp/") (tstamps "/12e603cc/")) (tstamps "013700cd")) -(comp (ref "C83") +(comp (ref "C84") (value "conv_temp.vdd_cap") (footprint "Capacitor_SMD:C_0603_1608Metric") (property (name "Sheetname") (value "conv_temp")) (property (name "Sheetfile") (value "edg.parts.EnvironmentalSensor_Ti.Tmp1075n")) (property (name "edg_path") (value "conv_temp.vdd_cap.cap")) (property (name "edg_short_path") (value "conv_temp.vdd_cap")) - (property (name "edg_refdes") (value "C83")) + (property (name "edg_refdes") (value "C84")) (property (name "edg_part") (value "0603B103K500NT (FH(Guangdong Fenghua Advanced Tech))")) (property (name "edg_value") (value "50V 10nF X7R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/conv_temp/") (tstamps "/12e603cc/")) (tstamps "0b6402d2")) -(comp (ref "R73") +(comp (ref "R81") (value "conv_sense.top_res") (footprint "Resistor_SMD:R_0603_1608Metric") (property (name "Sheetname") (value "conv_sense")) (property (name "Sheetfile") (value "edg.abstract_parts.ResistiveDivider.VoltageSenseDivider")) (property (name "edg_path") (value "conv_sense.div.top_res")) (property (name "edg_short_path") (value "conv_sense.top_res")) - (property (name "edg_refdes") (value "R73")) + (property (name "edg_refdes") (value "R81")) (property (name "edg_part") (value "0603WAF1203T5E (UNI-ROYAL(Uniroyal Elec))")) (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 120kΩ 0603 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/conv_sense/") (tstamps "/171b0434/")) (tstamps "0c0c02fd")) -(comp (ref "R74") +(comp (ref "R82") (value "conv_sense.bottom_res") (footprint "Resistor_SMD:R_0603_1608Metric") (property (name "Sheetname") (value "conv_sense")) (property (name "Sheetfile") (value "edg.abstract_parts.ResistiveDivider.VoltageSenseDivider")) (property (name "edg_path") (value "conv_sense.div.bottom_res")) (property (name "edg_short_path") (value "conv_sense.bottom_res")) - (property (name "edg_refdes") (value "R74")) + (property (name "edg_refdes") (value "R82")) (property (name "edg_part") (value "0603WAF1002T5E (UNI-ROYAL(Uniroyal Elec))")) (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 10kΩ 0603 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/conv_sense/") (tstamps "/171b0434/")) @@ -2928,14 +3036,14 @@ (property (name "edg_value") (value "PCA9554APW,118")) (sheetpath (names "/ioe_ui/") (tstamps "/08ab027b/")) (tstamps "013700cd")) -(comp (ref "C84") +(comp (ref "C85") (value "ioe_ui.vdd_cap") (footprint "Capacitor_SMD:C_0603_1608Metric") (property (name "Sheetname") (value "ioe_ui")) (property (name "Sheetfile") (value "edg.parts.IoExpander_Pca9554.Pca9554")) (property (name "edg_path") (value "ioe_ui.vdd_cap.cap")) (property (name "edg_short_path") (value "ioe_ui.vdd_cap")) - (property (name "edg_refdes") (value "C84")) + (property (name "edg_refdes") (value "C85")) (property (name "edg_part") (value "CC0603KRX7R9BB104 (YAGEO)")) (property (name "edg_value") (value "50V 100nF X7R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/ioe_ui/") (tstamps "/08ab027b/")) @@ -2964,26 +3072,26 @@ (property (name "edg_value") (value "SKRHABE010")) (sheetpath (names "/") (tstamps "/")) (tstamps "02730140")) -(comp (ref "R75") +(comp (ref "R83") (value "qwiic_pull.scl_res") (footprint "Resistor_SMD:R_0603_1608Metric") (property (name "Sheetname") (value "qwiic_pull")) (property (name "Sheetfile") (value "edg.abstract_parts.I2cPullup.I2cPullup")) (property (name "edg_path") (value "qwiic_pull.scl_res.res")) (property (name "edg_short_path") (value "qwiic_pull.scl_res")) - (property (name "edg_refdes") (value "R75")) + (property (name "edg_refdes") (value "R83")) (property (name "edg_part") (value "0603WAF4701T5E (UNI-ROYAL(Uniroyal Elec))")) (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 4.7kΩ 0603 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/qwiic_pull/") (tstamps "/175a043a/")) (tstamps "0ba902ec")) -(comp (ref "R76") +(comp (ref "R84") (value "qwiic_pull.sda_res") (footprint "Resistor_SMD:R_0603_1608Metric") (property (name "Sheetname") (value "qwiic_pull")) (property (name "Sheetfile") (value "edg.abstract_parts.I2cPullup.I2cPullup")) (property (name "edg_path") (value "qwiic_pull.sda_res.res")) (property (name "edg_short_path") (value "qwiic_pull.sda_res")) - (property (name "edg_refdes") (value "R76")) + (property (name "edg_refdes") (value "R84")) (property (name "edg_part") (value "0603WAF4701T5E (UNI-ROYAL(Uniroyal Elec))")) (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 4.7kΩ 0603 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/qwiic_pull/") (tstamps "/175a043a/")) @@ -3012,26 +3120,26 @@ (property (name "edg_value") (value "PinHeader2.54 1x3 Horizontal")) (sheetpath (names "/") (tstamps "/")) (tstamps "066a0226")) -(comp (ref "R77") +(comp (ref "R85") (value "dut0_clamp") (footprint "Resistor_SMD:R_0603_1608Metric") (property (name "Sheetname") (value "")) (property (name "Sheetfile") (value "")) (property (name "edg_path") (value "dut0_clamp.res")) (property (name "edg_short_path") (value "dut0_clamp")) - (property (name "edg_refdes") (value "R77")) + (property (name "edg_refdes") (value "R85")) (property (name "edg_part") (value "0603WAF1002T5E (UNI-ROYAL(Uniroyal Elec))")) (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 10kΩ 0603 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/") (tstamps "/")) (tstamps "154503ea")) -(comp (ref "R78") +(comp (ref "R86") (value "dut1_clamp") (footprint "Resistor_SMD:R_0603_1608Metric") (property (name "Sheetname") (value "")) (property (name "Sheetfile") (value "")) (property (name "edg_path") (value "dut1_clamp.res")) (property (name "edg_short_path") (value "dut1_clamp")) - (property (name "edg_refdes") (value "R78")) + (property (name "edg_refdes") (value "R86")) (property (name "edg_part") (value "0603WAF1002T5E (UNI-ROYAL(Uniroyal Elec))")) (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 10kΩ 0603 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/") (tstamps "/")) @@ -3060,14 +3168,14 @@ (property (name "edg_value") (value "WS2812C-2020-V1")) (sheetpath (names "/rgbs/led[0]/") (tstamps "/043801af/07e5021e/")) (tstamps "08950271")) -(comp (ref "C85") +(comp (ref "C86") (value "rgbs.led[0].cap") (footprint "Capacitor_SMD:C_0603_1608Metric") (property (name "Sheetname") (value "led[0]")) (property (name "Sheetfile") (value "edg.parts.Neopixel.Ws2812c_2020")) (property (name "edg_path") (value "rgbs.led[0].cap.cap")) (property (name "edg_short_path") (value "rgbs.led[0].cap")) - (property (name "edg_refdes") (value "C85")) + (property (name "edg_refdes") (value "C86")) (property (name "edg_part") (value "CC0603KRX7R9BB104 (YAGEO)")) (property (name "edg_value") (value "50V 100nF X7R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/rgbs/led[0]/") (tstamps "/043801af/07e5021e/")) @@ -3084,14 +3192,14 @@ (property (name "edg_value") (value "WS2812C-2020-V1")) (sheetpath (names "/rgbs/led[1]/") (tstamps "/043801af/07e7021f/")) (tstamps "08950271")) -(comp (ref "C86") +(comp (ref "C87") (value "rgbs.led[1].cap") (footprint "Capacitor_SMD:C_0603_1608Metric") (property (name "Sheetname") (value "led[1]")) (property (name "Sheetfile") (value "edg.parts.Neopixel.Ws2812c_2020")) (property (name "edg_path") (value "rgbs.led[1].cap.cap")) (property (name "edg_short_path") (value "rgbs.led[1].cap")) - (property (name "edg_refdes") (value "C86")) + (property (name "edg_refdes") (value "C87")) (property (name "edg_part") (value "CC0603KRX7R9BB104 (YAGEO)")) (property (name "edg_value") (value "50V 100nF X7R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/rgbs/led[1]/") (tstamps "/043801af/07e7021f/")) @@ -3108,14 +3216,14 @@ (property (name "edg_value") (value "WS2812C-2020-V1")) (sheetpath (names "/rgbs/led[2]/") (tstamps "/043801af/07e90220/")) (tstamps "08950271")) -(comp (ref "C87") +(comp (ref "C88") (value "rgbs.led[2].cap") (footprint "Capacitor_SMD:C_0603_1608Metric") (property (name "Sheetname") (value "led[2]")) (property (name "Sheetfile") (value "edg.parts.Neopixel.Ws2812c_2020")) (property (name "edg_path") (value "rgbs.led[2].cap.cap")) (property (name "edg_short_path") (value "rgbs.led[2].cap")) - (property (name "edg_refdes") (value "C87")) + (property (name "edg_refdes") (value "C88")) (property (name "edg_part") (value "CC0603KRX7R9BB104 (YAGEO)")) (property (name "edg_value") (value "50V 100nF X7R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/rgbs/led[2]/") (tstamps "/043801af/07e90220/")) @@ -3132,14 +3240,14 @@ (property (name "edg_value") (value "WS2812C-2020-V1")) (sheetpath (names "/rgbs/led[3]/") (tstamps "/043801af/07eb0221/")) (tstamps "08950271")) -(comp (ref "C88") +(comp (ref "C89") (value "rgbs.led[3].cap") (footprint "Capacitor_SMD:C_0603_1608Metric") (property (name "Sheetname") (value "led[3]")) (property (name "Sheetfile") (value "edg.parts.Neopixel.Ws2812c_2020")) (property (name "edg_path") (value "rgbs.led[3].cap.cap")) (property (name "edg_short_path") (value "rgbs.led[3].cap")) - (property (name "edg_refdes") (value "C88")) + (property (name "edg_refdes") (value "C89")) (property (name "edg_part") (value "CC0603KRX7R9BB104 (YAGEO)")) (property (name "edg_value") (value "50V 100nF X7R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/rgbs/led[3]/") (tstamps "/043801af/07eb0221/")) @@ -3156,14 +3264,14 @@ (property (name "edg_value") (value "WS2812C-2020-V1")) (sheetpath (names "/rgbs/led[4]/") (tstamps "/043801af/07ed0222/")) (tstamps "08950271")) -(comp (ref "C89") +(comp (ref "C90") (value "rgbs.led[4].cap") (footprint "Capacitor_SMD:C_0603_1608Metric") (property (name "Sheetname") (value "led[4]")) (property (name "Sheetfile") (value "edg.parts.Neopixel.Ws2812c_2020")) (property (name "edg_path") (value "rgbs.led[4].cap.cap")) (property (name "edg_short_path") (value "rgbs.led[4].cap")) - (property (name "edg_refdes") (value "C89")) + (property (name "edg_refdes") (value "C90")) (property (name "edg_part") (value "CC0603KRX7R9BB104 (YAGEO)")) (property (name "edg_value") (value "50V 100nF X7R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/rgbs/led[4]/") (tstamps "/043801af/07ed0222/")) @@ -3180,26 +3288,26 @@ (property (name "edg_value") (value "WS2812C-2020-V1")) (sheetpath (names "/rgbs/led[5]/") (tstamps "/043801af/07ef0223/")) (tstamps "08950271")) -(comp (ref "C90") +(comp (ref "C91") (value "rgbs.led[5].cap") (footprint "Capacitor_SMD:C_0603_1608Metric") (property (name "Sheetname") (value "led[5]")) (property (name "Sheetfile") (value "edg.parts.Neopixel.Ws2812c_2020")) (property (name "edg_path") (value "rgbs.led[5].cap.cap")) (property (name "edg_short_path") (value "rgbs.led[5].cap")) - (property (name "edg_refdes") (value "C90")) + (property (name "edg_refdes") (value "C91")) (property (name "edg_part") (value "CC0603KRX7R9BB104 (YAGEO)")) (property (name "edg_value") (value "50V 100nF X7R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/rgbs/led[5]/") (tstamps "/043801af/07ef0223/")) (tstamps "025e0135")) -(comp (ref "C91") +(comp (ref "C92") (value "fan_cap") (footprint "Capacitor_SMD:C_0603_1608Metric") (property (name "Sheetname") (value "")) (property (name "Sheetfile") (value "")) (property (name "edg_path") (value "fan_cap.cap")) (property (name "edg_short_path") (value "fan_cap")) - (property (name "edg_refdes") (value "C91")) + (property (name "edg_refdes") (value "C92")) (property (name "edg_part") (value "CL10A105KB8NNNC (Samsung Electro-Mechanics)")) (property (name "edg_value") (value "50V 1uF X5R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/") (tstamps "/")) @@ -3216,14 +3324,14 @@ (property (name "edg_value") (value "60V 115mA 200mW 7.5Ω@10V,500mA 2.5V@250μA N Channel SOT-23(SOT-23-3) MOSFETs ROHS")) (sheetpath (names "/fan_drv/") (tstamps "/0b3f02e1/")) (tstamps "029c0148")) -(comp (ref "R79") +(comp (ref "R87") (value "fan_drv.pull") (footprint "Resistor_SMD:R_0603_1608Metric") (property (name "Sheetname") (value "fan_drv")) (property (name "Sheetfile") (value "edg.abstract_parts.DigitalAmplifiers.HighSideSwitch")) (property (name "edg_path") (value "fan_drv.pull")) (property (name "edg_short_path") (value "fan_drv.pull")) - (property (name "edg_refdes") (value "R79")) + (property (name "edg_refdes") (value "R87")) (property (name "edg_part") (value "0603WAF1002T5E (UNI-ROYAL(Uniroyal Elec))")) (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 10kΩ 0603 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/fan_drv/") (tstamps "/0b3f02e1/")) @@ -3264,26 +3372,26 @@ (property (name "edg_value") (value "MAX98357AETE+T")) (sheetpath (names "/spk_drv/") (tstamps "/0be502fa/")) (tstamps "013700cd")) -(comp (ref "C92") +(comp (ref "C93") (value "spk_drv.pwr_cap0") (footprint "Capacitor_SMD:C_0603_1608Metric") (property (name "Sheetname") (value "spk_drv")) (property (name "Sheetfile") (value "edg.parts.SpeakerDriver_Max98357a.Max98357a")) (property (name "edg_path") (value "spk_drv.pwr_cap0.cap")) (property (name "edg_short_path") (value "spk_drv.pwr_cap0")) - (property (name "edg_refdes") (value "C92")) + (property (name "edg_refdes") (value "C93")) (property (name "edg_part") (value "CC0603KRX7R9BB104 (YAGEO)")) (property (name "edg_value") (value "50V 100nF X7R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/spk_drv/") (tstamps "/0be502fa/")) (tstamps "0f0f031d")) -(comp (ref "C93") +(comp (ref "C94") (value "spk_drv.pwr_cap1") (footprint "Capacitor_SMD:C_0805_2012Metric") (property (name "Sheetname") (value "spk_drv")) (property (name "Sheetfile") (value "edg.parts.SpeakerDriver_Max98357a.Max98357a")) (property (name "edg_path") (value "spk_drv.pwr_cap1.cap")) (property (name "edg_short_path") (value "spk_drv.pwr_cap1")) - (property (name "edg_refdes") (value "C93")) + (property (name "edg_refdes") (value "C94")) (property (name "edg_part") (value "CL21A106KAYNNNE (Samsung Electro-Mechanics)")) (property (name "edg_value") (value "X5R 25V ±10% 10uF 0805 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/spk_drv/") (tstamps "/0be502fa/")) @@ -3312,74 +3420,74 @@ (property (name "edg_value") (value "MCP4728T-E/UN")) (sheetpath (names "/dac/") (tstamps "/02540129/")) (tstamps "013700cd")) -(comp (ref "C94") +(comp (ref "C95") (value "dac.vdd_cap[0]") (footprint "Capacitor_SMD:C_0603_1608Metric") (property (name "Sheetname") (value "dac")) (property (name "Sheetfile") (value "edg.parts.DacI2c_Mcp4728.Mcp4728")) (property (name "edg_path") (value "dac.vdd_cap[0].cap")) (property (name "edg_short_path") (value "dac.vdd_cap[0]")) - (property (name "edg_refdes") (value "C94")) + (property (name "edg_refdes") (value "C95")) (property (name "edg_part") (value "CC0603KRX7R9BB104 (YAGEO)")) (property (name "edg_value") (value "50V 100nF X7R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/dac/") (tstamps "/02540129/")) (tstamps "15a803ba")) -(comp (ref "C95") +(comp (ref "C96") (value "dac.vdd_cap[1]") (footprint "Capacitor_SMD:C_0805_2012Metric") (property (name "Sheetname") (value "dac")) (property (name "Sheetfile") (value "edg.parts.DacI2c_Mcp4728.Mcp4728")) (property (name "edg_path") (value "dac.vdd_cap[1].cap")) (property (name "edg_short_path") (value "dac.vdd_cap[1]")) - (property (name "edg_refdes") (value "C95")) + (property (name "edg_refdes") (value "C96")) (property (name "edg_part") (value "CL21A106KAYNNNE (Samsung Electro-Mechanics)")) (property (name "edg_value") (value "X5R 25V ±10% 10uF 0805 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/dac/") (tstamps "/02540129/")) (tstamps "15aa03bb")) -(comp (ref "C96") +(comp (ref "C97") (value "dac.out_cap[0]") (footprint "Capacitor_SMD:C_0603_1608Metric") (property (name "Sheetname") (value "dac")) (property (name "Sheetfile") (value "edg.parts.DacI2c_Mcp4728.Mcp4728")) (property (name "edg_path") (value "dac.out_cap[0]")) (property (name "edg_short_path") (value "dac.out_cap[0]")) - (property (name "edg_refdes") (value "C96")) + (property (name "edg_refdes") (value "C97")) (property (name "edg_part") (value "CC0603KRX7R9BB104 (YAGEO)")) (property (name "edg_value") (value "50V 100nF X7R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/dac/") (tstamps "/02540129/")) (tstamps "167b03d4")) -(comp (ref "C97") +(comp (ref "C98") (value "dac.out_cap[1]") (footprint "Capacitor_SMD:C_0603_1608Metric") (property (name "Sheetname") (value "dac")) (property (name "Sheetfile") (value "edg.parts.DacI2c_Mcp4728.Mcp4728")) (property (name "edg_path") (value "dac.out_cap[1]")) (property (name "edg_short_path") (value "dac.out_cap[1]")) - (property (name "edg_refdes") (value "C97")) + (property (name "edg_refdes") (value "C98")) (property (name "edg_part") (value "CC0603KRX7R9BB104 (YAGEO)")) (property (name "edg_value") (value "50V 100nF X7R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/dac/") (tstamps "/02540129/")) (tstamps "167d03d5")) -(comp (ref "C98") +(comp (ref "C99") (value "dac.out_cap[2]") (footprint "Capacitor_SMD:C_0603_1608Metric") (property (name "Sheetname") (value "dac")) (property (name "Sheetfile") (value "edg.parts.DacI2c_Mcp4728.Mcp4728")) (property (name "edg_path") (value "dac.out_cap[2]")) (property (name "edg_short_path") (value "dac.out_cap[2]")) - (property (name "edg_refdes") (value "C98")) + (property (name "edg_refdes") (value "C99")) (property (name "edg_part") (value "CC0603KRX7R9BB104 (YAGEO)")) (property (name "edg_value") (value "50V 100nF X7R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/dac/") (tstamps "/02540129/")) (tstamps "167f03d6")) -(comp (ref "C99") +(comp (ref "C100") (value "dac.out_cap[3]") (footprint "Capacitor_SMD:C_0603_1608Metric") (property (name "Sheetname") (value "dac")) (property (name "Sheetfile") (value "edg.parts.DacI2c_Mcp4728.Mcp4728")) (property (name "edg_path") (value "dac.out_cap[3]")) (property (name "edg_short_path") (value "dac.out_cap[3]")) - (property (name "edg_refdes") (value "C99")) + (property (name "edg_refdes") (value "C100")) (property (name "edg_part") (value "CC0603KRX7R9BB104 (YAGEO)")) (property (name "edg_value") (value "50V 100nF X7R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/dac/") (tstamps "/02540129/")) @@ -3408,86 +3516,86 @@ (property (name "edg_value") (value "MCP3562-*/ST")) (sheetpath (names "/adc/") (tstamps "/02510129/")) (tstamps "013700cd")) -(comp (ref "R80") +(comp (ref "R88") (value "adc.avdd_res") (footprint "Resistor_SMD:R_0603_1608Metric") (property (name "Sheetname") (value "adc")) (property (name "Sheetfile") (value "edg.parts.AdcSpi_Mcp3561.Mcp3561")) (property (name "edg_path") (value "adc.avdd_res.res")) (property (name "edg_short_path") (value "adc.avdd_res")) - (property (name "edg_refdes") (value "R80")) + (property (name "edg_refdes") (value "R88")) (property (name "edg_part") (value "0603WAF100JT5E (UNI-ROYAL(Uniroyal Elec))")) (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±400ppm/℃ -55℃~+155℃ 10Ω 0603 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/adc/") (tstamps "/02510129/")) (tstamps "0ea50349")) -(comp (ref "R81") +(comp (ref "R89") (value "adc.dvdd_res") (footprint "Resistor_SMD:R_0603_1608Metric") (property (name "Sheetname") (value "adc")) (property (name "Sheetfile") (value "edg.parts.AdcSpi_Mcp3561.Mcp3561")) (property (name "edg_path") (value "adc.dvdd_res.res")) (property (name "edg_short_path") (value "adc.dvdd_res")) - (property (name "edg_refdes") (value "R81")) + (property (name "edg_refdes") (value "R89")) (property (name "edg_part") (value "0603WAF100JT5E (UNI-ROYAL(Uniroyal Elec))")) (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±400ppm/℃ -55℃~+155℃ 10Ω 0603 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/adc/") (tstamps "/02510129/")) (tstamps "0ebd034c")) -(comp (ref "C100") +(comp (ref "C101") (value "adc.avdd_cap_0") (footprint "Capacitor_SMD:C_0603_1608Metric") (property (name "Sheetname") (value "adc")) (property (name "Sheetfile") (value "edg.parts.AdcSpi_Mcp3561.Mcp3561")) (property (name "edg_path") (value "adc.avdd_cap_0.cap")) (property (name "edg_short_path") (value "adc.avdd_cap_0")) - (property (name "edg_refdes") (value "C100")) + (property (name "edg_refdes") (value "C101")) (property (name "edg_part") (value "CC0603KRX7R9BB104 (YAGEO)")) (property (name "edg_value") (value "50V 100nF X7R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/adc/") (tstamps "/02510129/")) (tstamps "15c103c2")) -(comp (ref "C101") +(comp (ref "C102") (value "adc.avdd_cap_1") (footprint "Capacitor_SMD:C_0603_1608Metric") (property (name "Sheetname") (value "adc")) (property (name "Sheetfile") (value "edg.parts.AdcSpi_Mcp3561.Mcp3561")) (property (name "edg_path") (value "adc.avdd_cap_1.cap")) (property (name "edg_short_path") (value "adc.avdd_cap_1")) - (property (name "edg_refdes") (value "C101")) + (property (name "edg_refdes") (value "C102")) (property (name "edg_part") (value "CC0603KRX7R9BB104 (YAGEO)")) (property (name "edg_value") (value "50V 100nF X7R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/adc/") (tstamps "/02510129/")) (tstamps "15c203c3")) -(comp (ref "C102") +(comp (ref "C103") (value "adc.dvdd_cap_0") (footprint "Capacitor_SMD:C_0603_1608Metric") (property (name "Sheetname") (value "adc")) (property (name "Sheetfile") (value "edg.parts.AdcSpi_Mcp3561.Mcp3561")) (property (name "edg_path") (value "adc.dvdd_cap_0.cap")) (property (name "edg_short_path") (value "adc.dvdd_cap_0")) - (property (name "edg_refdes") (value "C102")) + (property (name "edg_refdes") (value "C103")) (property (name "edg_part") (value "CC0603KRX7R9BB104 (YAGEO)")) (property (name "edg_value") (value "50V 100nF X7R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/adc/") (tstamps "/02510129/")) (tstamps "15df03c5")) -(comp (ref "C103") +(comp (ref "C104") (value "adc.dvdd_cap_1") (footprint "Capacitor_SMD:C_0603_1608Metric") (property (name "Sheetname") (value "adc")) (property (name "Sheetfile") (value "edg.parts.AdcSpi_Mcp3561.Mcp3561")) (property (name "edg_path") (value "adc.dvdd_cap_1.cap")) (property (name "edg_short_path") (value "adc.dvdd_cap_1")) - (property (name "edg_refdes") (value "C103")) + (property (name "edg_refdes") (value "C104")) (property (name "edg_part") (value "CC0603KRX7R9BB104 (YAGEO)")) (property (name "edg_value") (value "50V 100nF X7R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/adc/") (tstamps "/02510129/")) (tstamps "15e003c6")) -(comp (ref "C104") +(comp (ref "C105") (value "adc.vref_cap") (footprint "Capacitor_SMD:C_0805_2012Metric") (property (name "Sheetname") (value "adc")) (property (name "Sheetfile") (value "edg.parts.AdcSpi_Mcp3561.Mcp3561")) (property (name "edg_path") (value "adc.vref_cap.cap")) (property (name "edg_short_path") (value "adc.vref_cap")) - (property (name "edg_refdes") (value "C104")) + (property (name "edg_refdes") (value "C105")) (property (name "edg_part") (value "CL21A106KAYNNNE (Samsung Electro-Mechanics)")) (property (name "edg_value") (value "X5R 25V ±10% 10uF 0805 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/adc/") (tstamps "/02510129/")) @@ -3504,26 +3612,26 @@ (property (name "edg_value") (value "cen")) (sheetpath (names "/") (tstamps "/")) (tstamps "0be702f0")) -(comp (ref "R82") +(comp (ref "R90") (value "vcen_rc.r") (footprint "Resistor_SMD:R_0603_1608Metric") (property (name "Sheetname") (value "vcen_rc")) (property (name "Sheetfile") (value "edg.abstract_parts.PassiveFilters.AnalogLowPassRc")) (property (name "edg_path") (value "vcen_rc.rc.r")) (property (name "edg_short_path") (value "vcen_rc.r")) - (property (name "edg_refdes") (value "R82")) + (property (name "edg_refdes") (value "R90")) (property (name "edg_part") (value "0603WAF1001T5E (UNI-ROYAL(Uniroyal Elec))")) (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 1kΩ 0603 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/vcen_rc/") (tstamps "/0ba802e1/")) (tstamps "00730073")) -(comp (ref "C105") +(comp (ref "C106") (value "vcen_rc.c") (footprint "Capacitor_SMD:C_0603_1608Metric") (property (name "Sheetname") (value "vcen_rc")) (property (name "Sheetfile") (value "edg.abstract_parts.PassiveFilters.AnalogLowPassRc")) (property (name "edg_path") (value "vcen_rc.rc.c")) (property (name "edg_short_path") (value "vcen_rc.c")) - (property (name "edg_refdes") (value "C105")) + (property (name "edg_refdes") (value "C106")) (property (name "edg_part") (value "0603B103K500NT (FH(Guangdong Fenghua Advanced Tech))")) (property (name "edg_value") (value "50V 10nF X7R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/vcen_rc/") (tstamps "/0ba802e1/")) @@ -3540,26 +3648,26 @@ (property (name "edg_value") (value "mv")) (sheetpath (names "/") (tstamps "/")) (tstamps "06760227")) -(comp (ref "R83") +(comp (ref "R91") (value "mv_rc.r") (footprint "Resistor_SMD:R_0603_1608Metric") (property (name "Sheetname") (value "mv_rc")) (property (name "Sheetfile") (value "edg.abstract_parts.PassiveFilters.AnalogLowPassRc")) (property (name "edg_path") (value "mv_rc.rc.r")) (property (name "edg_short_path") (value "mv_rc.r")) - (property (name "edg_refdes") (value "R83")) + (property (name "edg_refdes") (value "R91")) (property (name "edg_part") (value "0603WAF1001T5E (UNI-ROYAL(Uniroyal Elec))")) (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 1kΩ 0603 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/mv_rc/") (tstamps "/06620218/")) (tstamps "00730073")) -(comp (ref "C106") +(comp (ref "C107") (value "mv_rc.c") (footprint "Capacitor_SMD:C_0603_1608Metric") (property (name "Sheetname") (value "mv_rc")) (property (name "Sheetfile") (value "edg.abstract_parts.PassiveFilters.AnalogLowPassRc")) (property (name "edg_path") (value "mv_rc.rc.c")) (property (name "edg_short_path") (value "mv_rc.c")) - (property (name "edg_refdes") (value "C106")) + (property (name "edg_refdes") (value "C107")) (property (name "edg_part") (value "0603B103K500NT (FH(Guangdong Fenghua Advanced Tech))")) (property (name "edg_value") (value "50V 10nF X7R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/mv_rc/") (tstamps "/06620218/")) @@ -3576,26 +3684,26 @@ (property (name "edg_value") (value "mi")) (sheetpath (names "/") (tstamps "/")) (tstamps "0669021a")) -(comp (ref "R84") +(comp (ref "R92") (value "mi_rc.r") (footprint "Resistor_SMD:R_0603_1608Metric") (property (name "Sheetname") (value "mi_rc")) (property (name "Sheetfile") (value "edg.abstract_parts.PassiveFilters.AnalogLowPassRc")) (property (name "edg_path") (value "mi_rc.rc.r")) (property (name "edg_short_path") (value "mi_rc.r")) - (property (name "edg_refdes") (value "R84")) + (property (name "edg_refdes") (value "R92")) (property (name "edg_part") (value "0603WAF1001T5E (UNI-ROYAL(Uniroyal Elec))")) (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 1kΩ 0603 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/mi_rc/") (tstamps "/062e020b/")) (tstamps "00730073")) -(comp (ref "C107") +(comp (ref "C108") (value "mi_rc.c") (footprint "Capacitor_SMD:C_0603_1608Metric") (property (name "Sheetname") (value "mi_rc")) (property (name "Sheetfile") (value "edg.abstract_parts.PassiveFilters.AnalogLowPassRc")) (property (name "edg_path") (value "mi_rc.rc.c")) (property (name "edg_short_path") (value "mi_rc.c")) - (property (name "edg_refdes") (value "C107")) + (property (name "edg_refdes") (value "C108")) (property (name "edg_part") (value "0603B103K500NT (FH(Guangdong Fenghua Advanced Tech))")) (property (name "edg_value") (value "50V 10nF X7R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/mi_rc/") (tstamps "/062e020b/")) @@ -3648,14 +3756,14 @@ (property (name "edg_value") (value "OPA2197IDR")) (sheetpath (names "/vimeas_amps/") (tstamps "/1b860496/")) (tstamps "013700cd")) -(comp (ref "C108") +(comp (ref "C109") (value "vimeas_amps.vdd_cap") (footprint "Capacitor_SMD:C_0805_2012Metric") (property (name "Sheetname") (value "vimeas_amps")) (property (name "Sheetfile") (value "edg.parts.Opamp_Opax189.Opa2189")) (property (name "edg_path") (value "vimeas_amps.vdd_cap.cap")) (property (name "edg_short_path") (value "vimeas_amps.vdd_cap")) - (property (name "edg_refdes") (value "C108")) + (property (name "edg_refdes") (value "C109")) (property (name "edg_part") (value "CL21B104KCFNNNE (Samsung Electro-Mechanics)")) (property (name "edg_value") (value "100V 100nF X7R ±10% 0805 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/vimeas_amps/") (tstamps "/1b860496/")) @@ -3672,14 +3780,14 @@ (property (name "edg_value") (value "TLV9152IDR")) (sheetpath (names "/cv_amps/") (tstamps "/0b7902ea/")) (tstamps "013700cd")) -(comp (ref "C109") +(comp (ref "C110") (value "cv_amps.vdd_cap") (footprint "Capacitor_SMD:C_0603_1608Metric") (property (name "Sheetname") (value "cv_amps")) (property (name "Sheetfile") (value "edg.parts.Opamp_Tlv915x.Tlv9152")) (property (name "edg_path") (value "cv_amps.vdd_cap.cap")) (property (name "edg_short_path") (value "cv_amps.vdd_cap")) - (property (name "edg_refdes") (value "C109")) + (property (name "edg_refdes") (value "C110")) (property (name "edg_part") (value "CC0603KRX7R9BB104 (YAGEO)")) (property (name "edg_value") (value "50V 100nF X7R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/cv_amps/") (tstamps "/0b7902ea/")) @@ -3696,14 +3804,14 @@ (property (name "edg_value") (value "TLV9152IDR")) (sheetpath (names "/ci_amps/") (tstamps "/0b2b02dd/")) (tstamps "013700cd")) -(comp (ref "C110") +(comp (ref "C111") (value "ci_amps.vdd_cap") (footprint "Capacitor_SMD:C_0603_1608Metric") (property (name "Sheetname") (value "ci_amps")) (property (name "Sheetfile") (value "edg.parts.Opamp_Tlv915x.Tlv9152")) (property (name "edg_path") (value "ci_amps.vdd_cap.cap")) (property (name "edg_short_path") (value "ci_amps.vdd_cap")) - (property (name "edg_refdes") (value "C110")) + (property (name "edg_refdes") (value "C111")) (property (name "edg_part") (value "CC0603KRX7R9BB104 (YAGEO)")) (property (name "edg_value") (value "50V 100nF X7R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/ci_amps/") (tstamps "/0b2b02dd/")) @@ -3720,14 +3828,14 @@ (property (name "edg_value") (value "TLV9152IDR")) (sheetpath (names "/cintref_amps/") (tstamps "/204304fc/")) (tstamps "013700cd")) -(comp (ref "C111") +(comp (ref "C112") (value "cintref_amps.vdd_cap") (footprint "Capacitor_SMD:C_0603_1608Metric") (property (name "Sheetname") (value "cintref_amps")) (property (name "Sheetfile") (value "edg.parts.Opamp_Tlv915x.Tlv9152")) (property (name "edg_path") (value "cintref_amps.vdd_cap.cap")) (property (name "edg_short_path") (value "cintref_amps.vdd_cap")) - (property (name "edg_refdes") (value "C111")) + (property (name "edg_refdes") (value "C112")) (property (name "edg_part") (value "CC0603KRX7R9BB104 (YAGEO)")) (property (name "edg_value") (value "50V 100nF X7R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/cintref_amps/") (tstamps "/204304fc/")) @@ -3774,8 +3882,8 @@ (node (ref U29) (pin 2)) (node (ref U29) (pin 3)) (node (ref U29) (pin 8)) - (node (ref R64) (pin 1)) - (node (ref R71) (pin 1)) + (node (ref R72) (pin 1)) + (node (ref R79) (pin 1)) (node (ref U32) (pin 2)) (node (ref U32) (pin 4)) (node (ref U33) (pin 2)) @@ -3787,7 +3895,7 @@ (node (ref SW2) (pin 5)) (node (ref J6) (pin 1)) (node (ref J7) (pin 1)) - (node (ref C91) (pin 2)) + (node (ref C92) (pin 2)) (node (ref Q13) (pin 2)) (node (ref J8) (pin 1)) (node (ref U36) (pin 3)) @@ -3801,21 +3909,21 @@ (node (ref R18) (pin 2)) (node (ref U40) (pin 4)) (node (ref C40) (pin 2)) - (node (ref C76) (pin 2)) - (node (ref C78) (pin 2)) + (node (ref C77) (pin 2)) (node (ref C79) (pin 2)) + (node (ref C80) (pin 2)) (node (ref U31) (pin 4)) - (node (ref R74) (pin 2)) - (node (ref C105) (pin 2)) + (node (ref R82) (pin 2)) (node (ref C106) (pin 2)) (node (ref C107) (pin 2)) + (node (ref C108) (pin 2)) (node (ref J1) (pin S1)) (node (ref D13) (pin 1)) - (node (ref R62) (pin 2)) - (node (ref C96) (pin 2)) + (node (ref R70) (pin 2)) (node (ref C97) (pin 2)) (node (ref C98) (pin 2)) (node (ref C99) (pin 2)) + (node (ref C100) (pin 2)) (node (ref C1) (pin 2)) (node (ref C5) (pin 2)) (node (ref C9) (pin 2)) @@ -3827,47 +3935,47 @@ (node (ref U12) (pin 2)) (node (ref U13) (pin 2)) (node (ref U23) (pin 1)) - (node (ref C65) (pin 2)) - (node (ref C58) (pin 2)) (node (ref C66) (pin 2)) + (node (ref C59) (pin 2)) (node (ref C67) (pin 2)) (node (ref C68) (pin 2)) (node (ref C69) (pin 2)) + (node (ref C70) (pin 2)) (node (ref J4) (pin 5)) - (node (ref C71) (pin 2)) (node (ref C72) (pin 2)) (node (ref C73) (pin 2)) (node (ref C74) (pin 2)) (node (ref C75) (pin 2)) - (node (ref C77) (pin 2)) + (node (ref C76) (pin 2)) + (node (ref C78) (pin 2)) (node (ref U30) (pin 2)) - (node (ref C82) (pin 2)) (node (ref C83) (pin 2)) (node (ref C84) (pin 2)) + (node (ref C85) (pin 2)) (node (ref D15) (pin 2)) (node (ref D16) (pin 2)) (node (ref D17) (pin 2)) (node (ref D18) (pin 2)) (node (ref D19) (pin 2)) (node (ref D20) (pin 2)) - (node (ref C92) (pin 2)) (node (ref C93) (pin 2)) (node (ref C94) (pin 2)) (node (ref C95) (pin 2)) - (node (ref C100) (pin 2)) + (node (ref C96) (pin 2)) (node (ref C101) (pin 2)) (node (ref C102) (pin 2)) (node (ref C103) (pin 2)) (node (ref C104) (pin 2)) + (node (ref C105) (pin 2)) (node (ref R5) (pin 2)) (node (ref R8) (pin 2)) (node (ref R11) (pin 2)) - (node (ref C109) (pin 2)) + (node (ref C110) (pin 2)) (node (ref R21) (pin 2)) (node (ref U42) (pin 4)) - (node (ref R44) (pin 2)) + (node (ref R52) (pin 2)) (node (ref U14) (pin 2)) - (node (ref C70) (pin 2)) + (node (ref C71) (pin 2)) (node (ref J5) (pin 22)) (node (ref J5) (pin 24)) (node (ref J5) (pin 1)) @@ -3879,9 +3987,9 @@ (node (ref J5) (pin 7)) (node (ref J5) (pin 6)) (node (ref J5) (pin 5)) - (node (ref R68) (pin 2)) - (node (ref R70) (pin 2)) - (node (ref C81) (pin 2)) + (node (ref R76) (pin 2)) + (node (ref R78) (pin 2)) + (node (ref C82) (pin 2)) (node (ref U15) (pin 4)) (node (ref U16) (pin 4)) (node (ref Q3) (pin 1)) @@ -3905,21 +4013,21 @@ (node (ref C48) (pin 2)) (node (ref U41) (pin 4)) (node (ref C47) (pin 2)) - (node (ref C55) (pin 2)) (node (ref C56) (pin 2)) (node (ref C57) (pin 2)) + (node (ref C58) (pin 2)) (node (ref C46) (pin 2)) (node (ref J5) (pin 18)) (node (ref J5) (pin 15)) (node (ref J5) (pin 17)) - (node (ref C80) (pin 2)) - (node (ref C85) (pin 2)) + (node (ref C81) (pin 2)) (node (ref C86) (pin 2)) (node (ref C87) (pin 2)) (node (ref C88) (pin 2)) (node (ref C89) (pin 2)) (node (ref C90) (pin 2)) - (node (ref C111) (pin 2)) + (node (ref C91) (pin 2)) + (node (ref C112) (pin 2)) (node (ref C51) (pin 2)) (node (ref C11) (pin 2)) (node (ref C12) (pin 2)) @@ -3940,19 +4048,19 @@ (node (ref C32) (pin 2)) (node (ref C33) (pin 2)) (node (ref C35) (pin 2)) - (node (ref C110) (pin 2)) - (node (ref R46) (pin 2)) - (node (ref R48) (pin 2)) - (node (ref R50) (pin 2)) + (node (ref C111) (pin 2)) + (node (ref R54) (pin 2)) + (node (ref R56) (pin 2)) + (node (ref R58) (pin 2)) (node (ref U17) (pin 2)) (node (ref U17) (pin 4)) (node (ref U19) (pin 2)) (node (ref U19) (pin 4)) (node (ref U21) (pin 2)) (node (ref U21) (pin 4)) - (node (ref C59) (pin 2)) (node (ref C60) (pin 2)) - (node (ref C61) (pin 2))) + (node (ref C61) (pin 2)) + (node (ref C62) (pin 2))) (net (code 2) (name "vusb") (node (ref U25) (pin 2)) (node (ref C3) (pin 1)) @@ -3984,8 +4092,8 @@ (node (ref U8) (pin 1)) (node (ref U9) (pin 1)) (node (ref U10) (pin 5)) - (node (ref C91) (pin 1)) - (node (ref R79) (pin 1)) + (node (ref C92) (pin 1)) + (node (ref R87) (pin 1)) (node (ref Q14) (pin 2)) (node (ref U36) (pin 4)) (node (ref U36) (pin 7)) @@ -4002,8 +4110,8 @@ (node (ref D18) (pin 4)) (node (ref D19) (pin 4)) (node (ref D20) (pin 4)) - (node (ref C92) (pin 1)) (node (ref C93) (pin 1)) + (node (ref C94) (pin 1)) (node (ref U6) (pin 4)) (node (ref U7) (pin 4)) (node (ref L3) (pin 1)) @@ -4012,12 +4120,12 @@ (node (ref D4) (pin 2)) (node (ref D5) (pin 2)) (node (ref C41) (pin 1)) - (node (ref C85) (pin 1)) (node (ref C86) (pin 1)) (node (ref C87) (pin 1)) (node (ref C88) (pin 1)) (node (ref C89) (pin 1)) (node (ref C90) (pin 1)) + (node (ref C91) (pin 1)) (node (ref C33) (pin 1)) (node (ref C35) (pin 1)) (node (ref L1) (pin 2)) @@ -4033,41 +4141,41 @@ (node (ref U26) (pin 2)) (node (ref D14) (pin 2)) (node (ref U29) (pin 16)) - (node (ref R72) (pin 1)) + (node (ref R80) (pin 1)) (node (ref U32) (pin 5)) (node (ref U33) (pin 4)) (node (ref U33) (pin 5)) (node (ref U34) (pin 2)) (node (ref U34) (pin 16)) (node (ref J6) (pin 2)) - (node (ref R63) (pin 1)) + (node (ref R71) (pin 1)) (node (ref U31) (pin 8)) - (node (ref R81) (pin 1)) + (node (ref R89) (pin 1)) (node (ref R7) (pin 1)) (node (ref C1) (pin 1)) (node (ref C17) (pin 1)) - (node (ref C66) (pin 1)) (node (ref C67) (pin 1)) (node (ref C68) (pin 1)) (node (ref C69) (pin 1)) + (node (ref C70) (pin 1)) (node (ref J4) (pin 1)) - (node (ref R60) (pin 1)) - (node (ref R61) (pin 1)) - (node (ref C72) (pin 1)) + (node (ref R68) (pin 1)) + (node (ref R69) (pin 1)) (node (ref C73) (pin 1)) - (node (ref C77) (pin 1)) + (node (ref C74) (pin 1)) + (node (ref C78) (pin 1)) (node (ref U30) (pin 5)) - (node (ref C82) (pin 1)) (node (ref C83) (pin 1)) (node (ref C84) (pin 1)) - (node (ref R75) (pin 1)) - (node (ref R76) (pin 1)) - (node (ref R58) (pin 1)) + (node (ref C85) (pin 1)) + (node (ref R83) (pin 1)) + (node (ref R84) (pin 1)) + (node (ref R66) (pin 1)) (node (ref J5) (pin 20)) - (node (ref R67) (pin 1)) - (node (ref C81) (pin 1)) + (node (ref R75) (pin 1)) + (node (ref C82) (pin 1)) (node (ref J5) (pin 19)) - (node (ref C80) (pin 1)) + (node (ref C81) (pin 1)) (node (ref L2) (pin 2)) (node (ref C13) (pin 1))) (net (code 6) (name "v12") @@ -4075,8 +4183,8 @@ (node (ref C16) (pin 1)) (node (ref R10) (pin 1)) (node (ref C15) (pin 1)) - (node (ref C74) (pin 1)) (node (ref C75) (pin 1)) + (node (ref C76) (pin 1)) (node (ref J5) (pin 2))) (net (code 7) (name "vconvin") (node (ref R12) (pin 2)) @@ -4092,12 +4200,12 @@ (net (code 8) (name "vconv") (node (ref D6) (pin 1)) (node (ref TP5) (pin 1)) - (node (ref R73) (pin 1)) + (node (ref R81) (pin 1)) (node (ref Q7) (pin 2)) - (node (ref C55) (pin 1)) (node (ref C56) (pin 1)) (node (ref C57) (pin 1)) - (node (ref R69) (pin 1)) + (node (ref C58) (pin 1)) + (node (ref R77) (pin 1)) (node (ref Q6) (pin 5)) (node (ref C25) (pin 1)) (node (ref C26) (pin 1)) @@ -4112,36 +4220,36 @@ (node (ref TP6) (pin 1)) (node (ref FB2) (pin 1)) (node (ref U40) (pin 8)) - (node (ref R80) (pin 1)) + (node (ref R88) (pin 1)) (node (ref C38) (pin 1)) (node (ref U13) (pin 5)) (node (ref U12) (pin 5)) - (node (ref C109) (pin 1)) + (node (ref C110) (pin 1)) (node (ref U14) (pin 5)) (node (ref U42) (pin 8)) (node (ref U41) (pin 8)) (node (ref C50) (pin 1)) (node (ref C49) (pin 1)) (node (ref C51) (pin 1)) - (node (ref C111) (pin 1)) - (node (ref C110) (pin 1))) + (node (ref C112) (pin 1)) + (node (ref C111) (pin 1))) (net (code 10) (name "vref") (node (ref U9) (pin 2)) (node (ref TP7) (pin 1)) (node (ref FB3) (pin 1)) (node (ref U38) (pin 4)) (node (ref R17) (pin 1)) - (node (ref C104) (pin 1))) + (node (ref C105) (pin 1))) (net (code 11) (name "vcenter") (node (ref J10) (pin 1)) (node (ref U23) (pin 6)) (node (ref U24) (pin 6)) - (node (ref R82) (pin 1)) + (node (ref R90) (pin 1)) (node (ref U42) (pin 3)) (node (ref R19) (pin 2)) (node (ref C40) (pin 1)) (node (ref R25) (pin 1)) - (node (ref R37) (pin 2))) + (node (ref R38) (pin 2))) (net (code 12) (name "vcontrol") (node (ref TP8) (pin 1)) (node (ref D7) (pin 1)) @@ -4151,19 +4259,19 @@ (node (ref U23) (pin 8)) (node (ref U24) (pin 8)) (node (ref U39) (pin 8)) - (node (ref C63) (pin 1)) (node (ref C64) (pin 1)) - (node (ref C108) (pin 1)) + (node (ref C65) (pin 1)) + (node (ref C109) (pin 1)) (node (ref U15) (pin 5)) (node (ref U16) (pin 5)) (node (ref U17) (pin 5)) (node (ref U19) (pin 5)) (node (ref U21) (pin 5)) - (node (ref C53) (pin 1)) (node (ref C54) (pin 1)) - (node (ref C59) (pin 1)) + (node (ref C55) (pin 1)) (node (ref C60) (pin 1)) - (node (ref C61) (pin 1))) + (node (ref C61) (pin 1)) + (node (ref C62) (pin 1))) (net (code 13) (name "vcontroln") (node (ref U11) (pin 2)) (node (ref TP9) (pin 1)) @@ -4171,13 +4279,13 @@ (node (ref U24) (pin 5)) (node (ref U39) (pin 4)) (node (ref C45) (pin 1)) - (node (ref C63) (pin 2)) (node (ref C64) (pin 2)) - (node (ref C108) (pin 2)) + (node (ref C65) (pin 2)) + (node (ref C109) (pin 2)) (node (ref U15) (pin 2)) (node (ref U16) (pin 2)) - (node (ref C53) (pin 2)) - (node (ref C54) (pin 2))) + (node (ref C54) (pin 2)) + (node (ref C55) (pin 2))) (net (code 14) (name "usb.pwr") (node (ref J1) (pin A4)) (node (ref J1) (pin B9)) @@ -4212,7 +4320,8 @@ (node (ref U39) (pin 3)) (node (ref J3) (pin 1)) (node (ref U42) (pin 1)) - (node (ref C52) (pin 1))) + (node (ref C52) (pin 1)) + (node (ref C53) (pin 1))) (net (code 22) (name "usb.cc.cc1") (node (ref J1) (pin A5)) (node (ref U25) (pin 10)) @@ -4222,7 +4331,7 @@ (node (ref U25) (pin 1)) (node (ref U25) (pin 14))) (net (code 24) (name "mcu.program_boot_node") - (node (ref R59) (pin 2)) + (node (ref R67) (pin 2)) (node (ref U26) (pin 27)) (node (ref J4) (pin 2))) (net (code 25) (name "usb_chain_0.d_P") @@ -4245,7 +4354,7 @@ (node (ref U33) (pin 1)) (node (ref U34) (pin 14)) (node (ref U37) (pin 2)) - (node (ref R60) (pin 2)) + (node (ref R68) (pin 2)) (node (ref TP10) (pin 1)) (node (ref J5) (pin 12))) (net (code 28) (name "i2c_pull.i2c.sda") @@ -4258,7 +4367,7 @@ (node (ref U33) (pin 6)) (node (ref U34) (pin 15)) (node (ref U37) (pin 3)) - (node (ref R61) (pin 2)) + (node (ref R69) (pin 2)) (node (ref TP11) (pin 1)) (node (ref J5) (pin 11)) (node (ref J5) (pin 10))) @@ -4267,8 +4376,8 @@ (node (ref U25) (pin 5))) (net (code 30) (name "oled.reset") (node (ref J5) (pin 16)) - (node (ref R63) (pin 2)) - (node (ref C76) (pin 1))) + (node (ref R71) (pin 2)) + (node (ref C77) (pin 1))) (net (code 31) (name "control.high_gate_ctl") (node (ref U29) (pin 11)) (node (ref U15) (pin 3))) @@ -4280,30 +4389,30 @@ (node (ref U14) (pin 6))) (net (code 34) (name "ramp_pull.io") (node (ref U29) (pin 4)) - (node (ref R64) (pin 2)) + (node (ref R72) (pin 2)) (node (ref Q2) (pin 1))) (net (code 35) (name "buck_rc.input") (node (ref U26) (pin 10)) - (node (ref R65) (pin 1))) + (node (ref R73) (pin 1))) (net (code 36) (name "buck_rc.output") (node (ref U6) (pin 2)) - (node (ref R65) (pin 2)) - (node (ref C78) (pin 1))) + (node (ref R73) (pin 2)) + (node (ref C79) (pin 1))) (net (code 37) (name "boost_rc.input") (node (ref U26) (pin 11)) - (node (ref R66) (pin 1))) + (node (ref R74) (pin 1))) (net (code 38) (name "boost_rc.output") (node (ref U7) (pin 2)) - (node (ref R66) (pin 2)) - (node (ref C79) (pin 1))) + (node (ref R74) (pin 2)) + (node (ref C80) (pin 1))) (net (code 39) (name "conv_en_pull.io") (node (ref U29) (pin 6)) (node (ref U31) (pin 5)) - (node (ref R71) (pin 2))) + (node (ref R79) (pin 2))) (net (code 40) (name "conv_ovp.output") (node (ref U30) (pin 4)) (node (ref U31) (pin 1)) - (node (ref R72) (pin 2))) + (node (ref R80) (pin 2))) (net (code 41) (name "conv_latch.out") (node (ref U29) (pin 7)) (node (ref U31) (pin 7)) @@ -4312,8 +4421,8 @@ (node (ref U7) (pin 3))) (net (code 42) (name "conv_sense.output") (node (ref U26) (pin 12)) - (node (ref R73) (pin 2)) - (node (ref R74) (pin 1))) + (node (ref R81) (pin 2)) + (node (ref R82) (pin 1))) (net (code 43) (name "enc.a") (node (ref U26) (pin 35)) (node (ref SW1) (pin A))) @@ -4352,24 +4461,24 @@ (node (ref U22) (pin 1))) (net (code 54) (name "qwiic_pull.i2c.scl") (node (ref U26) (pin 39)) - (node (ref R75) (pin 2)) + (node (ref R83) (pin 2)) (node (ref J6) (pin 4))) (net (code 55) (name "qwiic_pull.i2c.sda") (node (ref U26) (pin 38)) (node (ref J6) (pin 3)) - (node (ref R76) (pin 2))) + (node (ref R84) (pin 2))) (net (code 56) (name "dutio.io0") (node (ref J7) (pin 2)) - (node (ref R77) (pin 1))) + (node (ref R85) (pin 1))) (net (code 57) (name "dut0_clamp.signal_out") (node (ref U26) (pin 24)) - (node (ref R77) (pin 2))) + (node (ref R85) (pin 2))) (net (code 58) (name "dutio.io1") (node (ref J7) (pin 3)) - (node (ref R78) (pin 1))) + (node (ref R86) (pin 1))) (net (code 59) (name "dut1_clamp.signal_out") (node (ref U26) (pin 25)) - (node (ref R78) (pin 2))) + (node (ref R86) (pin 2))) (net (code 60) (name "touch_duck.pad") (node (ref U26) (pin 21)) (node (ref U35) (pin 1))) @@ -4401,24 +4510,24 @@ (node (ref FB3) (pin 2)) (node (ref U37) (pin 1)) (node (ref U37) (pin 4)) - (node (ref C94) (pin 1)) - (node (ref C95) (pin 1))) + (node (ref C95) (pin 1)) + (node (ref C96) (pin 1))) (net (code 70) (name "dac.out0") (node (ref U37) (pin 6)) (node (ref R26) (pin 1)) - (node (ref C96) (pin 1))) + (node (ref C97) (pin 1))) (net (code 71) (name "dac.out2") (node (ref U37) (pin 8)) (node (ref R29) (pin 1)) - (node (ref C98) (pin 1))) + (node (ref C99) (pin 1))) (net (code 72) (name "dac.out1") (node (ref U37) (pin 7)) (node (ref R32) (pin 1)) - (node (ref C97) (pin 1))) + (node (ref C98) (pin 1))) (net (code 73) (name "dac.out3") (node (ref U37) (pin 9)) (node (ref R30) (pin 1)) - (node (ref C99) (pin 1))) + (node (ref C100) (pin 1))) (net (code 74) (name "adc.spi.sck") (node (ref U38) (pin 14)) (node (ref U26) (pin 17))) @@ -4436,27 +4545,27 @@ (node (ref U26) (pin 20))) (net (code 79) (name "vcen_rc.output") (node (ref U38) (pin 7)) - (node (ref R82) (pin 2)) - (node (ref C105) (pin 1))) + (node (ref R90) (pin 2)) + (node (ref C106) (pin 1))) (net (code 80) (name "control.meas_v") (node (ref J11) (pin 1)) - (node (ref R83) (pin 1)) + (node (ref R91) (pin 1)) (node (ref Q10) (pin 2)) (node (ref R27) (pin 1))) (net (code 81) (name "mv_rc.output") (node (ref U38) (pin 5)) - (node (ref R83) (pin 2)) - (node (ref C106) (pin 1))) + (node (ref R91) (pin 2)) + (node (ref C107) (pin 1))) (net (code 82) (name "control.meas_i") (node (ref J12) (pin 1)) - (node (ref R84) (pin 1)) + (node (ref R92) (pin 1)) (node (ref Q12) (pin 2)) (node (ref R31) (pin 1)) (node (ref R33) (pin 1))) (net (code 83) (name "mi_rc.output") (node (ref U38) (pin 6)) - (node (ref R84) (pin 2)) - (node (ref C107) (pin 1))) + (node (ref R92) (pin 2)) + (node (ref C108) (pin 1))) (net (code 84) (name "control.limit_source") (node (ref U12) (pin 4)) (node (ref U26) (pin 22))) @@ -4467,28 +4576,28 @@ (node (ref J14) (pin 1)) (node (ref J15) (pin 2)) (node (ref D12) (pin 1)) - (node (ref R56) (pin 1)) - (node (ref R35) (pin 1)) + (node (ref R64) (pin 1)) + (node (ref R36) (pin 1)) (node (ref U18) (pin 6)) (node (ref U20) (pin 4)) (node (ref U22) (pin 4))) (net (code 87) (name "vimeas_amps.inn.0") (node (ref U39) (pin 2)) - (node (ref R36) (pin 2)) - (node (ref R37) (pin 1))) + (node (ref R37) (pin 2)) + (node (ref R38) (pin 1))) (net (code 88) (name "control.drive") (node (ref U39) (pin 1)) - (node (ref R36) (pin 1)) + (node (ref R37) (pin 1)) (node (ref R23) (pin 1)) - (node (ref R38) (pin 1))) + (node (ref R39) (pin 1))) (net (code 89) (name "vimeas_amps.inp.1") (node (ref U39) (pin 5)) - (node (ref R35) (pin 2))) + (node (ref R36) (pin 2))) (net (code 90) (name "control.outa") (node (ref U39) (pin 6)) (node (ref U39) (pin 7)) (node (ref R22) (pin 1)) - (node (ref R43) (pin 1))) + (node (ref R51) (pin 1))) (net (code 91) (name "cv_amps.inp.1") (node (ref U40) (pin 5)) (node (ref R26) (pin 2)) @@ -4529,6 +4638,7 @@ (net (code 98) (name "cintref_amps.inn.0") (node (ref U42) (pin 2)) (node (ref R34) (pin 2)) + (node (ref R35) (pin 1)) (node (ref C52) (pin 2))) (net (code 99) (name "cintref_amps.inp.1") (node (ref U42) (pin 5)) @@ -4652,33 +4762,33 @@ (node (ref C44) (pin 1)) (node (ref U11) (pin 6))) (net (code 130) (name "control.driver.out") - (node (ref R41) (pin 2)) + (node (ref R49) (pin 2)) (node (ref Q7) (pin 3)) (node (ref D11) (pin 2)) (node (ref Q8) (pin 3)) - (node (ref R42) (pin 2)) - (node (ref R45) (pin 1)) - (node (ref R47) (pin 1)) - (node (ref R49) (pin 1)) - (node (ref R51) (pin 1))) + (node (ref R50) (pin 2)) + (node (ref R53) (pin 1)) + (node (ref R55) (pin 1)) + (node (ref R57) (pin 1)) + (node (ref R59) (pin 1))) (net (code 131) (name "control.vdiv.output") (node (ref U23) (pin 4)) - (node (ref C58) (pin 1)) - (node (ref R43) (pin 2)) - (node (ref R44) (pin 1))) + (node (ref C59) (pin 1)) + (node (ref R51) (pin 2)) + (node (ref R52) (pin 1))) (net (code 132) (name "control.isense.sense_out") - (node (ref R52) (pin 1)) + (node (ref R60) (pin 1)) (node (ref U17) (pin 6)) (node (ref U19) (pin 6)) (node (ref U21) (pin 6))) (net (code 133) (name "control.ifilt.outp") (node (ref U24) (pin 4)) - (node (ref R51) (pin 2)) - (node (ref C62) (pin 1))) + (node (ref R59) (pin 2)) + (node (ref C63) (pin 1))) (net (code 134) (name "control.ifilt.outn") (node (ref U24) (pin 1)) - (node (ref R52) (pin 2)) - (node (ref C62) (pin 2))) + (node (ref R60) (pin 2)) + (node (ref C63) (pin 2))) (net (code 135) (name "control.vmeas.output") (node (ref U23) (pin 7)) (node (ref Q9) (pin 2))) @@ -4686,161 +4796,185 @@ (node (ref U24) (pin 7)) (node (ref Q11) (pin 2))) (net (code 137) (name "control.snub_r.pwr_out") - (node (ref R56) (pin 2)) - (node (ref C65) (pin 1))) + (node (ref R64) (pin 2)) + (node (ref C66) (pin 1))) (net (code 138) (name "control.tvs_p.ports.2") (node (ref D12) (pin 2)) (node (ref D13) (pin 2))) -(net (code 139) (name "control.driver.res.b") - (node (ref R40) (pin 2)) +(net (code 139) (name "control.int.r2.b") + (node (ref R35) (pin 2)) + (node (ref C53) (pin 2))) +(net (code 140) (name "control.driver.res.b") + (node (ref R48) (pin 2)) (node (ref D10) (pin 2)) (node (ref U16) (pin 1)) (node (ref U15) (pin 1))) -(net (code 140) (name "control.driver.high_fet.gate") +(net (code 141) (name "control.driver.high_fet.gate") (node (ref Q7) (pin 1)) - (node (ref R41) (pin 1)) + (node (ref R49) (pin 1)) (node (ref U15) (pin 6))) -(net (code 141) (name "control.driver.low_fet.gate") +(net (code 142) (name "control.driver.low_fet.gate") (node (ref Q8) (pin 1)) - (node (ref R42) (pin 1)) + (node (ref R50) (pin 1)) (node (ref U16) (pin 6))) -(net (code 142) (name "control.driver.clamp1.cathode") +(net (code 143) (name "control.driver.clamp1.cathode") (node (ref D10) (pin 1)) (node (ref D11) (pin 1))) -(net (code 143) (name "control.driver.res.res[0].b") - (node (ref R38) (pin 2)) - (node (ref R39) (pin 1))) -(net (code 144) (name "control.driver.res.res[1].b") +(net (code 144) (name "control.driver.res.res[0].b") (node (ref R39) (pin 2)) (node (ref R40) (pin 1))) -(net (code 145) (name "control.isense.ranges[0].isense.pwr_out") - (node (ref U18) (pin 4)) +(net (code 145) (name "control.driver.res.res[1].b") + (node (ref R40) (pin 2)) + (node (ref R41) (pin 1))) +(net (code 146) (name "control.driver.res.res[2].b") + (node (ref R41) (pin 2)) + (node (ref R42) (pin 1))) +(net (code 147) (name "control.driver.res.res[3].b") + (node (ref R42) (pin 2)) + (node (ref R43) (pin 1))) +(net (code 148) (name "control.driver.res.res[4].b") + (node (ref R43) (pin 2)) + (node (ref R44) (pin 1))) +(net (code 149) (name "control.driver.res.res[5].b") + (node (ref R44) (pin 2)) + (node (ref R45) (pin 1))) +(net (code 150) (name "control.driver.res.res[6].b") (node (ref R45) (pin 2)) + (node (ref R46) (pin 1))) +(net (code 151) (name "control.driver.res.res[7].b") + (node (ref R46) (pin 2)) + (node (ref R47) (pin 1))) +(net (code 152) (name "control.driver.res.res[8].b") + (node (ref R47) (pin 2)) + (node (ref R48) (pin 1))) +(net (code 153) (name "control.isense.ranges[0].isense.pwr_out") + (node (ref U18) (pin 4)) + (node (ref R53) (pin 2)) (node (ref U17) (pin 1))) -(net (code 146) (name "control.isense.ranges[0].pwr_sw.res.a") - (node (ref R46) (pin 1)) +(net (code 154) (name "control.isense.ranges[0].pwr_sw.res.a") + (node (ref R54) (pin 1)) (node (ref U18) (pin 2))) -(net (code 147) (name "control.isense.ranges[1].isense.pwr_out") +(net (code 155) (name "control.isense.ranges[1].isense.pwr_out") (node (ref U20) (pin 3)) - (node (ref R47) (pin 2)) + (node (ref R55) (pin 2)) (node (ref U19) (pin 1))) -(net (code 148) (name "control.isense.ranges[1].pwr_sw.res.a") - (node (ref R48) (pin 1)) +(net (code 156) (name "control.isense.ranges[1].pwr_sw.res.a") + (node (ref R56) (pin 1)) (node (ref U20) (pin 2))) -(net (code 149) (name "control.isense.ranges[2].isense.pwr_out") +(net (code 157) (name "control.isense.ranges[2].isense.pwr_out") (node (ref U22) (pin 3)) - (node (ref R49) (pin 2)) + (node (ref R57) (pin 2)) (node (ref U21) (pin 1))) -(net (code 150) (name "control.isense.ranges[2].pwr_sw.res.a") - (node (ref R50) (pin 1)) +(net (code 158) (name "control.isense.ranges[2].pwr_sw.res.a") + (node (ref R58) (pin 1)) (node (ref U22) (pin 2))) -(net (code 151) (name "control.vmeas.rg.a") - (node (ref R53) (pin 1)) +(net (code 159) (name "control.vmeas.rg.a") + (node (ref R61) (pin 1)) (node (ref U23) (pin 2))) -(net (code 152) (name "control.vmeas.rg.b") - (node (ref R53) (pin 2)) +(net (code 160) (name "control.vmeas.rg.b") + (node (ref R61) (pin 2)) (node (ref U23) (pin 3))) -(net (code 153) (name "control.imeas.rg.a") - (node (ref R54) (pin 1)) +(net (code 161) (name "control.imeas.rg.a") + (node (ref R62) (pin 1)) (node (ref U24) (pin 2))) -(net (code 154) (name "control.imeas.rg.b") - (node (ref R54) (pin 2)) +(net (code 162) (name "control.imeas.rg.b") + (node (ref R62) (pin 2)) (node (ref U24) (pin 3))) -(net (code 155) (name "control.vclamp.r.a") +(net (code 163) (name "control.vclamp.r.a") (node (ref Q9) (pin 1)) - (node (ref R55) (pin 1)) + (node (ref R63) (pin 1)) (node (ref Q10) (pin 3))) -(net (code 156) (name "control.vclamp.r.b") +(net (code 164) (name "control.vclamp.r.b") (node (ref Q9) (pin 3)) - (node (ref R55) (pin 2)) + (node (ref R63) (pin 2)) (node (ref Q10) (pin 1))) -(net (code 157) (name "control.iclamp.r.a") +(net (code 165) (name "control.iclamp.r.a") (node (ref Q11) (pin 1)) - (node (ref R57) (pin 1)) + (node (ref R65) (pin 1)) (node (ref Q12) (pin 3))) -(net (code 158) (name "control.iclamp.r.b") +(net (code 166) (name "control.iclamp.r.b") (node (ref Q11) (pin 3)) - (node (ref R57) (pin 2)) + (node (ref R65) (pin 2)) (node (ref Q12) (pin 1))) -(net (code 159) (name "pd.ic.vconn") +(net (code 167) (name "pd.ic.vconn") (node (ref U25) (pin 12)) (node (ref U25) (pin 13))) -(net (code 160) (name "mcu.program_uart_node.a_tx") +(net (code 168) (name "mcu.program_uart_node.a_tx") (node (ref U26) (pin 37)) (node (ref J4) (pin 3))) -(net (code 161) (name "mcu.program_uart_node.b_tx") +(net (code 169) (name "mcu.program_uart_node.b_tx") (node (ref U26) (pin 36)) (node (ref J4) (pin 4))) -(net (code 162) (name "mcu.program_en_node") +(net (code 170) (name "mcu.program_en_node") (node (ref U26) (pin 3)) (node (ref J4) (pin 6)) - (node (ref R58) (pin 2)) - (node (ref C70) (pin 1))) -(net (code 163) (name "led.res.a") - (node (ref R59) (pin 1)) + (node (ref R66) (pin 2)) + (node (ref C71) (pin 1))) +(net (code 171) (name "led.res.a") + (node (ref R67) (pin 1)) (node (ref D14) (pin 1))) -(net (code 164) (name "oled.iref_res.a") - (node (ref R62) (pin 1)) +(net (code 172) (name "oled.iref_res.a") + (node (ref R70) (pin 1)) (node (ref J5) (pin 4))) -(net (code 165) (name "oled.device.vcomh") +(net (code 173) (name "oled.device.vcomh") (node (ref J5) (pin 3)) - (node (ref C71) (pin 1))) -(net (code 166) (name "conv_ovp.comp.inp") + (node (ref C72) (pin 1))) +(net (code 174) (name "conv_ovp.comp.inp") (node (ref U30) (pin 1)) - (node (ref R69) (pin 2)) - (node (ref R70) (pin 1))) -(net (code 167) (name "conv_ovp.comp.inn") + (node (ref R77) (pin 2)) + (node (ref R78) (pin 1))) +(net (code 175) (name "conv_ovp.comp.inn") (node (ref U30) (pin 3)) - (node (ref R67) (pin 2)) - (node (ref R68) (pin 1))) -(net (code 168) (name "conv_latch.ic.out2") + (node (ref R75) (pin 2)) + (node (ref R76) (pin 1))) +(net (code 176) (name "conv_latch.ic.out2") (node (ref U31) (pin 3)) (node (ref U31) (pin 2))) -(net (code 169) (name "pass_temp.alert") +(net (code 177) (name "pass_temp.alert") (node (ref U32) (pin 3))) -(net (code 170) (name "conv_temp.alert") +(net (code 178) (name "conv_temp.alert") (node (ref U33) (pin 3))) -(net (code 171) (name "rgbs.led[0].dout") +(net (code 179) (name "rgbs.led[0].dout") (node (ref D15) (pin 1)) (node (ref D16) (pin 3))) -(net (code 172) (name "rgbs.led[1].dout") +(net (code 180) (name "rgbs.led[1].dout") (node (ref D16) (pin 1)) (node (ref D17) (pin 3))) -(net (code 173) (name "rgbs.led[2].dout") +(net (code 181) (name "rgbs.led[2].dout") (node (ref D17) (pin 1)) (node (ref D18) (pin 3))) -(net (code 174) (name "rgbs.led[3].dout") +(net (code 182) (name "rgbs.led[3].dout") (node (ref D18) (pin 1)) (node (ref D19) (pin 3))) -(net (code 175) (name "rgbs.led[4].dout") +(net (code 183) (name "rgbs.led[4].dout") (node (ref D19) (pin 1)) (node (ref D20) (pin 3))) -(net (code 176) (name "rgbs.dout") +(net (code 184) (name "rgbs.dout") (node (ref D20) (pin 1))) -(net (code 177) (name "fan_drv.pre.drain") +(net (code 185) (name "fan_drv.pre.drain") (node (ref Q13) (pin 3)) - (node (ref R79) (pin 2)) + (node (ref R87) (pin 2)) (node (ref Q14) (pin 1))) -(net (code 178) (name "dac.rdy") +(net (code 186) (name "dac.rdy") (node (ref U37) (pin 5))) -(net (code 179) (name "adc.vins.3") +(net (code 187) (name "adc.vins.3") (node (ref U38) (pin 8))) -(net (code 180) (name "adc.vins.4") +(net (code 188) (name "adc.vins.4") (node (ref U38) (pin 9))) -(net (code 181) (name "adc.vins.5") +(net (code 189) (name "adc.vins.5") (node (ref U38) (pin 10))) -(net (code 182) (name "adc.vins.6") +(net (code 190) (name "adc.vins.6") (node (ref U38) (pin 11))) -(net (code 183) (name "adc.vins.7") +(net (code 191) (name "adc.vins.7") (node (ref U38) (pin 12))) -(net (code 184) (name "adc.ic.avdd") +(net (code 192) (name "adc.ic.avdd") (node (ref U38) (pin 1)) - (node (ref R80) (pin 2)) - (node (ref C100) (pin 1)) - (node (ref C101) (pin 1))) -(net (code 185) (name "adc.ic.dvdd") + (node (ref R88) (pin 2)) + (node (ref C101) (pin 1)) + (node (ref C102) (pin 1))) +(net (code 193) (name "adc.ic.dvdd") (node (ref U38) (pin 20)) - (node (ref R81) (pin 2)) - (node (ref C102) (pin 1)) - (node (ref C103) (pin 1)))) + (node (ref R89) (pin 2)) + (node (ref C103) (pin 1)) + (node (ref C104) (pin 1)))) ) \ No newline at end of file diff --git a/examples/UsbSourceMeasure/UsbSourceMeasure.svgpcb.js b/examples/UsbSourceMeasure/UsbSourceMeasure.svgpcb.js index 692b7cd52..e8ab70bca 100644 --- a/examples/UsbSourceMeasure/UsbSourceMeasure.svgpcb.js +++ b/examples/UsbSourceMeasure/UsbSourceMeasure.svgpcb.js @@ -670,31 +670,41 @@ const C51 = board.add(C_0603_1608Metric, { translate: pt(0.058, 3.044), rotate: 0, id: 'C51' }) -// control.int.r +// control.int.r1 const R34 = board.add(R_0603_1608Metric, { translate: pt(0.214, 3.044), rotate: 0, id: 'R34' }) -// control.int.c +// control.int.c2 const C52 = board.add(C_0603_1608Metric, { translate: pt(0.370, 3.044), rotate: 0, id: 'C52' }) -// control.hvclamp.res -const R35 = board.add(R_0603_1608Metric, { +// control.int.c1 +const C53 = board.add(C_0603_1608Metric, { translate: pt(0.526, 3.044), rotate: 0, + id: 'C53' +}) +// control.int.r2 +const R35 = board.add(R_0603_1608Metric, { + translate: pt(0.682, 3.044), rotate: 0, id: 'R35' }) -// control.amp.r1 +// control.hvclamp.res const R36 = board.add(R_0603_1608Metric, { - translate: pt(0.682, 3.044), rotate: 0, + translate: pt(0.838, 3.044), rotate: 0, id: 'R36' }) -// control.amp.r2 +// control.amp.r1 const R37 = board.add(R_0603_1608Metric, { - translate: pt(0.838, 3.044), rotate: 0, + translate: pt(0.994, 3.044), rotate: 0, id: 'R37' }) +// control.amp.r2 +const R38 = board.add(R_0603_1608Metric, { + translate: pt(1.150, 3.044), rotate: 0, + id: 'R38' +}) // control.driver.clamp1 const D10 = board.add(D_SOD_323, { translate: pt(1.434, 2.839), rotate: 0, @@ -716,29 +726,64 @@ const Q8 = board.add(TO_220_3_Horizontal_TabUp, { id: 'Q8' }) // control.driver.res.res[0] -const R38 = board.add(R_0603_1608Metric, { - translate: pt(0.994, 3.044), rotate: 0, - id: 'R38' -}) -// control.driver.res.res[1] const R39 = board.add(R_0603_1608Metric, { - translate: pt(1.150, 3.044), rotate: 0, + translate: pt(1.306, 3.044), rotate: 0, id: 'R39' }) -// control.driver.res.res[2] +// control.driver.res.res[1] const R40 = board.add(R_0603_1608Metric, { - translate: pt(1.306, 3.044), rotate: 0, + translate: pt(1.461, 3.044), rotate: 0, id: 'R40' }) +// control.driver.res.res[2] +const R41 = board.add(R_0603_1608Metric, { + translate: pt(1.617, 3.044), rotate: 0, + id: 'R41' +}) +// control.driver.res.res[3] +const R42 = board.add(R_0603_1608Metric, { + translate: pt(1.773, 3.044), rotate: 0, + id: 'R42' +}) +// control.driver.res.res[4] +const R43 = board.add(R_0603_1608Metric, { + translate: pt(1.929, 3.044), rotate: 0, + id: 'R43' +}) +// control.driver.res.res[5] +const R44 = board.add(R_0603_1608Metric, { + translate: pt(2.085, 3.044), rotate: 0, + id: 'R44' +}) +// control.driver.res.res[6] +const R45 = board.add(R_0603_1608Metric, { + translate: pt(0.058, 3.141), rotate: 0, + id: 'R45' +}) +// control.driver.res.res[7] +const R46 = board.add(R_0603_1608Metric, { + translate: pt(0.214, 3.141), rotate: 0, + id: 'R46' +}) +// control.driver.res.res[8] +const R47 = board.add(R_0603_1608Metric, { + translate: pt(0.370, 3.141), rotate: 0, + id: 'R47' +}) +// control.driver.res.res[9] +const R48 = board.add(R_0603_1608Metric, { + translate: pt(0.526, 3.141), rotate: 0, + id: 'R48' +}) // control.driver.high_gate.device.ic const U15 = board.add(SOT_23_6, { translate: pt(1.617, 2.445), rotate: 0, id: 'U15' }) // control.driver.high_gate.device.vdd_cap.cap -const C53 = board.add(C_0805_2012Metric, { +const C54 = board.add(C_0805_2012Metric, { translate: pt(1.946, 2.667), rotate: 0, - id: 'C53' + id: 'C54' }) // control.driver.low_gate.device.ic const U16 = board.add(SOT_23_6, { @@ -746,54 +791,54 @@ const U16 = board.add(SOT_23_6, { id: 'U16' }) // control.driver.low_gate.device.vdd_cap.cap -const C54 = board.add(C_0805_2012Metric, { +const C55 = board.add(C_0805_2012Metric, { translate: pt(2.119, 2.667), rotate: 0, - id: 'C54' + id: 'C55' }) // control.driver.high_res -const R41 = board.add(R_0603_1608Metric, { - translate: pt(1.461, 3.044), rotate: 0, - id: 'R41' +const R49 = board.add(R_0603_1608Metric, { + translate: pt(0.682, 3.141), rotate: 0, + id: 'R49' }) // control.driver.low_res -const R42 = board.add(R_0603_1608Metric, { - translate: pt(1.617, 3.044), rotate: 0, - id: 'R42' +const R50 = board.add(R_0603_1608Metric, { + translate: pt(0.838, 3.141), rotate: 0, + id: 'R50' }) // control.driver.cap_in1.cap -const C55 = board.add(CP_Elec_6_3x7_7, { +const C56 = board.add(CP_Elec_6_3x7_7, { translate: pt(1.531, 1.904), rotate: 0, - id: 'C55' + id: 'C56' }) // control.driver.cap_in2.cap -const C56 = board.add(C_0805_2012Metric, { +const C57 = board.add(C_0805_2012Metric, { translate: pt(0.067, 2.841), rotate: 0, - id: 'C56' + id: 'C57' }) // control.driver.cap_in3.cap -const C57 = board.add(C_0603_1608Metric, { - translate: pt(1.773, 3.044), rotate: 0, - id: 'C57' +const C58 = board.add(C_0603_1608Metric, { + translate: pt(0.994, 3.141), rotate: 0, + id: 'C58' }) // control.vdiv.div.top_res -const R43 = board.add(R_0603_1608Metric, { - translate: pt(1.929, 3.044), rotate: 0, - id: 'R43' +const R51 = board.add(R_0603_1608Metric, { + translate: pt(1.150, 3.141), rotate: 0, + id: 'R51' }) // control.vdiv.div.bottom_res -const R44 = board.add(R_0603_1608Metric, { - translate: pt(2.085, 3.044), rotate: 0, - id: 'R44' +const R52 = board.add(R_0603_1608Metric, { + translate: pt(1.306, 3.141), rotate: 0, + id: 'R52' }) // control.cdiv.cap -const C58 = board.add(C_0603_1608Metric, { - translate: pt(0.058, 3.141), rotate: 0, - id: 'C58' +const C59 = board.add(C_0603_1608Metric, { + translate: pt(1.461, 3.141), rotate: 0, + id: 'C59' }) // control.isense.ranges[0].isense.res.res -const R45 = board.add(R_1206_3216Metric, { +const R53 = board.add(R_1206_3216Metric, { translate: pt(1.750, 2.673), rotate: 0, - id: 'R45' + id: 'R53' }) // control.isense.ranges[0].sense_sw.device.ic const U17 = board.add(SOT_23_6, { @@ -801,9 +846,9 @@ const U17 = board.add(SOT_23_6, { id: 'U17' }) // control.isense.ranges[0].sense_sw.device.vdd_cap.cap -const C59 = board.add(C_0805_2012Metric, { +const C60 = board.add(C_0805_2012Metric, { translate: pt(0.240, 2.841), rotate: 0, - id: 'C59' + id: 'C60' }) // control.isense.ranges[0].pwr_sw.ic const U18 = board.add(SMDIP_6_W7_62mm, { @@ -811,14 +856,14 @@ const U18 = board.add(SMDIP_6_W7_62mm, { id: 'U18' }) // control.isense.ranges[0].pwr_sw.res -const R46 = board.add(R_0603_1608Metric, { - translate: pt(0.214, 3.141), rotate: 0, - id: 'R46' +const R54 = board.add(R_0603_1608Metric, { + translate: pt(1.617, 3.141), rotate: 0, + id: 'R54' }) // control.isense.ranges[1].isense.res.res -const R47 = board.add(R_0603_1608Metric, { - translate: pt(0.370, 3.141), rotate: 0, - id: 'R47' +const R55 = board.add(R_0603_1608Metric, { + translate: pt(1.773, 3.141), rotate: 0, + id: 'R55' }) // control.isense.ranges[1].sense_sw.device.ic const U19 = board.add(SOT_23_6, { @@ -826,9 +871,9 @@ const U19 = board.add(SOT_23_6, { id: 'U19' }) // control.isense.ranges[1].sense_sw.device.vdd_cap.cap -const C60 = board.add(C_0805_2012Metric, { +const C61 = board.add(C_0805_2012Metric, { translate: pt(0.413, 2.841), rotate: 0, - id: 'C60' + id: 'C61' }) // control.isense.ranges[1].pwr_sw.ic const U20 = board.add(SO_4_4_4x3_6mm_P2_54mm, { @@ -836,14 +881,14 @@ const U20 = board.add(SO_4_4_4x3_6mm_P2_54mm, { id: 'U20' }) // control.isense.ranges[1].pwr_sw.res -const R48 = board.add(R_0603_1608Metric, { - translate: pt(0.526, 3.141), rotate: 0, - id: 'R48' +const R56 = board.add(R_0603_1608Metric, { + translate: pt(1.929, 3.141), rotate: 0, + id: 'R56' }) // control.isense.ranges[2].isense.res.res -const R49 = board.add(R_0603_1608Metric, { - translate: pt(0.682, 3.141), rotate: 0, - id: 'R49' +const R57 = board.add(R_0603_1608Metric, { + translate: pt(2.085, 3.141), rotate: 0, + id: 'R57' }) // control.isense.ranges[2].sense_sw.device.ic const U21 = board.add(SOT_23_6, { @@ -851,9 +896,9 @@ const U21 = board.add(SOT_23_6, { id: 'U21' }) // control.isense.ranges[2].sense_sw.device.vdd_cap.cap -const C61 = board.add(C_0805_2012Metric, { +const C62 = board.add(C_0805_2012Metric, { translate: pt(0.587, 2.841), rotate: 0, - id: 'C61' + id: 'C62' }) // control.isense.ranges[2].pwr_sw.ic const U22 = board.add(SO_4_4_4x3_6mm_P2_54mm, { @@ -861,24 +906,24 @@ const U22 = board.add(SO_4_4_4x3_6mm_P2_54mm, { id: 'U22' }) // control.isense.ranges[2].pwr_sw.res -const R50 = board.add(R_0603_1608Metric, { - translate: pt(0.838, 3.141), rotate: 0, - id: 'R50' +const R58 = board.add(R_0603_1608Metric, { + translate: pt(0.058, 3.238), rotate: 0, + id: 'R58' }) // control.ifilt.rp -const R51 = board.add(R_0603_1608Metric, { - translate: pt(0.994, 3.141), rotate: 0, - id: 'R51' +const R59 = board.add(R_0603_1608Metric, { + translate: pt(0.214, 3.238), rotate: 0, + id: 'R59' }) // control.ifilt.rn -const R52 = board.add(R_0603_1608Metric, { - translate: pt(1.150, 3.141), rotate: 0, - id: 'R52' +const R60 = board.add(R_0603_1608Metric, { + translate: pt(0.370, 3.238), rotate: 0, + id: 'R60' }) // control.ifilt.c -const C62 = board.add(C_0603_1608Metric, { - translate: pt(1.306, 3.141), rotate: 0, - id: 'C62' +const C63 = board.add(C_0603_1608Metric, { + translate: pt(0.526, 3.238), rotate: 0, + id: 'C63' }) // control.vmeas.ic const U23 = board.add(SOIC_8_3_9x4_9mm_P1_27mm, { @@ -886,14 +931,14 @@ const U23 = board.add(SOIC_8_3_9x4_9mm_P1_27mm, { id: 'U23' }) // control.vmeas.vdd_cap.cap -const C63 = board.add(C_0805_2012Metric, { +const C64 = board.add(C_0805_2012Metric, { translate: pt(0.760, 2.841), rotate: 0, - id: 'C63' + id: 'C64' }) // control.vmeas.rg -const R53 = board.add(R_0603_1608Metric, { - translate: pt(1.461, 3.141), rotate: 0, - id: 'R53' +const R61 = board.add(R_0603_1608Metric, { + translate: pt(0.682, 3.238), rotate: 0, + id: 'R61' }) // control.imeas.ic const U24 = board.add(SOIC_8_3_9x4_9mm_P1_27mm, { @@ -901,14 +946,14 @@ const U24 = board.add(SOIC_8_3_9x4_9mm_P1_27mm, { id: 'U24' }) // control.imeas.vdd_cap.cap -const C64 = board.add(C_0805_2012Metric, { +const C65 = board.add(C_0805_2012Metric, { translate: pt(0.933, 2.841), rotate: 0, - id: 'C64' + id: 'C65' }) // control.imeas.rg -const R54 = board.add(R_0603_1608Metric, { - translate: pt(1.617, 3.141), rotate: 0, - id: 'R54' +const R62 = board.add(R_0603_1608Metric, { + translate: pt(0.838, 3.238), rotate: 0, + id: 'R62' }) // control.vclamp.Q1 const Q9 = board.add(SOT_23, { @@ -916,9 +961,9 @@ const Q9 = board.add(SOT_23, { id: 'Q9' }) // control.vclamp.r -const R55 = board.add(R_0603_1608Metric, { - translate: pt(1.773, 3.141), rotate: 0, - id: 'R55' +const R63 = board.add(R_0603_1608Metric, { + translate: pt(0.994, 3.238), rotate: 0, + id: 'R63' }) // control.vclamp.Q2 const Q10 = board.add(SOT_23, { @@ -926,14 +971,14 @@ const Q10 = board.add(SOT_23, { id: 'Q10' }) // control.snub_r.res -const R56 = board.add(R_0603_1608Metric, { - translate: pt(1.929, 3.141), rotate: 0, - id: 'R56' +const R64 = board.add(R_0603_1608Metric, { + translate: pt(1.150, 3.238), rotate: 0, + id: 'R64' }) // control.snub_c.cap -const C65 = board.add(C_0603_1608Metric, { - translate: pt(2.085, 3.141), rotate: 0, - id: 'C65' +const C66 = board.add(C_0603_1608Metric, { + translate: pt(1.306, 3.238), rotate: 0, + id: 'C66' }) // control.iclamp.Q1 const Q11 = board.add(SOT_23, { @@ -941,9 +986,9 @@ const Q11 = board.add(SOT_23, { id: 'Q11' }) // control.iclamp.r -const R57 = board.add(R_0603_1608Metric, { - translate: pt(0.058, 3.238), rotate: 0, - id: 'R57' +const R65 = board.add(R_0603_1608Metric, { + translate: pt(1.461, 3.238), rotate: 0, + id: 'R65' }) // control.iclamp.Q2 const Q12 = board.add(SOT_23, { @@ -976,14 +1021,14 @@ const U25 = board.add(WQFN_14_1EP_2_5x2_5mm_P0_5mm_EP1_45x1_45mm, { id: 'U25' }) // pd.vdd_cap[0].cap -const C66 = board.add(C_0603_1608Metric, { +const C67 = board.add(C_0603_1608Metric, { translate: pt(6.161, 4.209), rotate: 0, - id: 'C66' + id: 'C67' }) // pd.vdd_cap[1].cap -const C67 = board.add(C_0805_2012Metric, { +const C68 = board.add(C_0805_2012Metric, { translate: pt(5.997, 4.219), rotate: 0, - id: 'C67' + id: 'C68' }) // mcu.ic const U26 = board.add(ESP32_S3_WROOM_1, { @@ -991,14 +1036,14 @@ const U26 = board.add(ESP32_S3_WROOM_1, { id: 'U26' }) // mcu.vcc_cap0.cap -const C68 = board.add(C_1206_3216Metric, { +const C69 = board.add(C_1206_3216Metric, { translate: pt(4.579, 0.242), rotate: 0, - id: 'C68' + id: 'C69' }) // mcu.vcc_cap1.cap -const C69 = board.add(C_0603_1608Metric, { +const C70 = board.add(C_0603_1608Metric, { translate: pt(4.767, 0.226), rotate: 0, - id: 'C69' + id: 'C70' }) // mcu.prog.conn const J4 = board.add(Tag_Connect_TC2030_IDC_NL_2x03_P1_27mm_Vertical, { @@ -1006,14 +1051,14 @@ const J4 = board.add(Tag_Connect_TC2030_IDC_NL_2x03_P1_27mm_Vertical, { id: 'J4' }) // mcu.en_pull.rc.r -const R58 = board.add(R_0603_1608Metric, { +const R66 = board.add(R_0603_1608Metric, { translate: pt(4.546, 0.356), rotate: 0, - id: 'R58' + id: 'R66' }) // mcu.en_pull.rc.c -const C70 = board.add(C_0603_1608Metric, { +const C71 = board.add(C_0603_1608Metric, { translate: pt(4.702, 0.356), rotate: 0, - id: 'C70' + id: 'C71' }) // led.package const D14 = board.add(LED_0603_1608Metric, { @@ -1021,9 +1066,9 @@ const D14 = board.add(LED_0603_1608Metric, { id: 'D14' }) // led.res -const R59 = board.add(R_0603_1608Metric, { +const R67 = board.add(R_0603_1608Metric, { translate: pt(4.641, 4.584), rotate: 0, - id: 'R59' + id: 'R67' }) // usb_esd const U27 = board.add(SOT_23, { @@ -1041,14 +1086,14 @@ const TP11 = board.add(TestPoint_TE_RCT_0805, { id: 'TP11' }) // i2c_pull.scl_res.res -const R60 = board.add(R_0603_1608Metric, { +const R68 = board.add(R_0603_1608Metric, { translate: pt(5.345, 4.487), rotate: 0, - id: 'R60' + id: 'R68' }) // i2c_pull.sda_res.res -const R61 = board.add(R_0603_1608Metric, { +const R69 = board.add(R_0603_1608Metric, { translate: pt(5.345, 4.583), rotate: 0, - id: 'R61' + id: 'R69' }) // oled.device.conn.conn const J5 = board.add(TE_2_1734839_4_1x24_1MP_P0_5mm_Horizontal, { @@ -1061,44 +1106,44 @@ const U28 = board.add(Lcd_Er_Oled022_1_Outline, { id: 'U28' }) // oled.iref_res -const R62 = board.add(R_0603_1608Metric, { +const R70 = board.add(R_0603_1608Metric, { translate: pt(1.391, 1.413), rotate: 0, - id: 'R62' + id: 'R70' }) // oled.vcomh_cap.cap -const C71 = board.add(C_1206_3216Metric, { +const C72 = board.add(C_1206_3216Metric, { translate: pt(0.856, 1.430), rotate: 0, - id: 'C71' + id: 'C72' }) // oled.vdd_cap1.cap -const C72 = board.add(C_0603_1608Metric, { +const C73 = board.add(C_0603_1608Metric, { translate: pt(1.546, 1.413), rotate: 0, - id: 'C72' + id: 'C73' }) // oled.vdd_cap2.cap -const C73 = board.add(C_0805_2012Metric, { +const C74 = board.add(C_0805_2012Metric, { translate: pt(1.053, 1.423), rotate: 0, - id: 'C73' + id: 'C74' }) // oled.vcc_cap1.cap -const C74 = board.add(C_0603_1608Metric, { +const C75 = board.add(C_0603_1608Metric, { translate: pt(1.702, 1.413), rotate: 0, - id: 'C74' + id: 'C75' }) // oled.vcc_cap2.cap -const C75 = board.add(C_0805_2012Metric, { +const C76 = board.add(C_0805_2012Metric, { translate: pt(1.226, 1.423), rotate: 0, - id: 'C75' + id: 'C76' }) // oled_rc.rc.r -const R63 = board.add(R_0603_1608Metric, { +const R71 = board.add(R_0603_1608Metric, { translate: pt(5.579, 4.487), rotate: 0, - id: 'R63' + id: 'R71' }) // oled_rc.rc.c -const C76 = board.add(C_0603_1608Metric, { +const C77 = board.add(C_0603_1608Metric, { translate: pt(5.579, 4.583), rotate: 0, - id: 'C76' + id: 'C77' }) // ioe_ctl.ic const U29 = board.add(TSSOP_16_4_4x5mm_P0_65mm, { @@ -1106,34 +1151,34 @@ const U29 = board.add(TSSOP_16_4_4x5mm_P0_65mm, { id: 'U29' }) // ioe_ctl.vdd_cap.cap -const C77 = board.add(C_0603_1608Metric, { +const C78 = board.add(C_0603_1608Metric, { translate: pt(2.196, 4.280), rotate: 0, - id: 'C77' + id: 'C78' }) // ramp_pull.res -const R64 = board.add(R_0603_1608Metric, { +const R72 = board.add(R_0603_1608Metric, { translate: pt(4.736, 4.835), rotate: 0, - id: 'R64' + id: 'R72' }) // buck_rc.rc.r -const R65 = board.add(R_0603_1608Metric, { +const R73 = board.add(R_0603_1608Metric, { translate: pt(5.814, 4.487), rotate: 0, - id: 'R65' + id: 'R73' }) // buck_rc.rc.c -const C78 = board.add(C_0603_1608Metric, { +const C79 = board.add(C_0603_1608Metric, { translate: pt(5.814, 4.583), rotate: 0, - id: 'C78' + id: 'C79' }) // boost_rc.rc.r -const R66 = board.add(R_0603_1608Metric, { +const R74 = board.add(R_0603_1608Metric, { translate: pt(6.049, 4.487), rotate: 0, - id: 'R66' + id: 'R74' }) // boost_rc.rc.c -const C79 = board.add(C_0603_1608Metric, { +const C80 = board.add(C_0603_1608Metric, { translate: pt(6.049, 4.583), rotate: 0, - id: 'C79' + id: 'C80' }) // conv_ovp.comp.ic const U30 = board.add(SOT_353_SC_70_5, { @@ -1141,29 +1186,29 @@ const U30 = board.add(SOT_353_SC_70_5, { id: 'U30' }) // conv_ovp.comp.vdd_cap.cap -const C80 = board.add(C_0603_1608Metric, { +const C81 = board.add(C_0603_1608Metric, { translate: pt(4.857, 4.024), rotate: 0, - id: 'C80' + id: 'C81' }) // conv_ovp.ref_div.div.top_res -const R67 = board.add(R_0603_1608Metric, { +const R75 = board.add(R_0603_1608Metric, { translate: pt(4.692, 4.173), rotate: 0, - id: 'R67' + id: 'R75' }) // conv_ovp.ref_div.div.bottom_res -const R68 = board.add(R_0603_1608Metric, { +const R76 = board.add(R_0603_1608Metric, { translate: pt(4.848, 4.173), rotate: 0, - id: 'R68' + id: 'R76' }) // conv_ovp.comp_div.div.top_res -const R69 = board.add(R_0603_1608Metric, { +const R77 = board.add(R_0603_1608Metric, { translate: pt(4.692, 4.270), rotate: 0, - id: 'R69' + id: 'R77' }) // conv_ovp.comp_div.div.bottom_res -const R70 = board.add(R_0603_1608Metric, { +const R78 = board.add(R_0603_1608Metric, { translate: pt(4.848, 4.270), rotate: 0, - id: 'R70' + id: 'R78' }) // conv_latch.ic.ic const U31 = board.add(VSSOP_8_2_3x2mm_P0_5mm, { @@ -1171,19 +1216,19 @@ const U31 = board.add(VSSOP_8_2_3x2mm_P0_5mm, { id: 'U31' }) // conv_latch.ic.vdd_cap.cap -const C81 = board.add(C_0603_1608Metric, { +const C82 = board.add(C_0603_1608Metric, { translate: pt(3.100, 4.624), rotate: 0, - id: 'C81' + id: 'C82' }) // conv_en_pull.res -const R71 = board.add(R_0603_1608Metric, { +const R79 = board.add(R_0603_1608Metric, { translate: pt(4.970, 4.835), rotate: 0, - id: 'R71' + id: 'R79' }) // comp_pull.res -const R72 = board.add(R_0603_1608Metric, { +const R80 = board.add(R_0603_1608Metric, { translate: pt(5.205, 4.835), rotate: 0, - id: 'R72' + id: 'R80' }) // pass_temp.ic const U32 = board.add(SOT_563, { @@ -1191,9 +1236,9 @@ const U32 = board.add(SOT_563, { id: 'U32' }) // pass_temp.vdd_cap.cap -const C82 = board.add(C_0603_1608Metric, { +const C83 = board.add(C_0603_1608Metric, { translate: pt(3.646, 4.613), rotate: 0, - id: 'C82' + id: 'C83' }) // conv_temp.ic const U33 = board.add(SOT_563, { @@ -1201,19 +1246,19 @@ const U33 = board.add(SOT_563, { id: 'U33' }) // conv_temp.vdd_cap.cap -const C83 = board.add(C_0603_1608Metric, { +const C84 = board.add(C_0603_1608Metric, { translate: pt(3.880, 4.613), rotate: 0, - id: 'C83' + id: 'C84' }) // conv_sense.div.top_res -const R73 = board.add(R_0603_1608Metric, { +const R81 = board.add(R_0603_1608Metric, { translate: pt(6.283, 4.487), rotate: 0, - id: 'R73' + id: 'R81' }) // conv_sense.div.bottom_res -const R74 = board.add(R_0603_1608Metric, { +const R82 = board.add(R_0603_1608Metric, { translate: pt(6.283, 4.583), rotate: 0, - id: 'R74' + id: 'R82' }) // ioe_ui.ic const U34 = board.add(TSSOP_16_4_4x5mm_P0_65mm, { @@ -1221,9 +1266,9 @@ const U34 = board.add(TSSOP_16_4_4x5mm_P0_65mm, { id: 'U34' }) // ioe_ui.vdd_cap.cap -const C84 = board.add(C_0603_1608Metric, { +const C85 = board.add(C_0603_1608Metric, { translate: pt(2.617, 4.280), rotate: 0, - id: 'C84' + id: 'C85' }) // enc.package const SW1 = board.add(RotaryEncoder_Bourns_PEC11S, { @@ -1236,14 +1281,14 @@ const SW2 = board.add(DirectionSwitch_Alps_SKRH, { id: 'SW2' }) // qwiic_pull.scl_res.res -const R75 = board.add(R_0603_1608Metric, { +const R83 = board.add(R_0603_1608Metric, { translate: pt(6.518, 4.487), rotate: 0, - id: 'R75' + id: 'R83' }) // qwiic_pull.sda_res.res -const R76 = board.add(R_0603_1608Metric, { +const R84 = board.add(R_0603_1608Metric, { translate: pt(6.518, 4.583), rotate: 0, - id: 'R76' + id: 'R84' }) // qwiic.conn const J6 = board.add(JST_SH_SM04B_SRSS_TB_1x04_1MP_P1_00mm_Horizontal, { @@ -1256,14 +1301,14 @@ const J7 = board.add(PinHeader_1x03_P2_54mm_Horizontal, { id: 'J7' }) // dut0_clamp.res -const R77 = board.add(R_0603_1608Metric, { +const R85 = board.add(R_0603_1608Metric, { translate: pt(5.440, 4.835), rotate: 0, - id: 'R77' + id: 'R85' }) // dut1_clamp.res -const R78 = board.add(R_0603_1608Metric, { +const R86 = board.add(R_0603_1608Metric, { translate: pt(5.674, 4.835), rotate: 0, - id: 'R78' + id: 'R86' }) // touch_duck const U35 = board.add(Symbol_DucklingSolid, { @@ -1276,9 +1321,9 @@ const D15 = board.add(LED_WS2812B_2020_PLCC4_2_0x2_0mm, { id: 'D15' }) // rgbs.led[0].cap.cap -const C85 = board.add(C_0603_1608Metric, { +const C86 = board.add(C_0603_1608Metric, { translate: pt(3.131, 3.689), rotate: 0, - id: 'C85' + id: 'C86' }) // rgbs.led[1].device const D16 = board.add(LED_WS2812B_2020_PLCC4_2_0x2_0mm, { @@ -1286,9 +1331,9 @@ const D16 = board.add(LED_WS2812B_2020_PLCC4_2_0x2_0mm, { id: 'D16' }) // rgbs.led[1].cap.cap -const C86 = board.add(C_0603_1608Metric, { +const C87 = board.add(C_0603_1608Metric, { translate: pt(3.287, 3.689), rotate: 0, - id: 'C86' + id: 'C87' }) // rgbs.led[2].device const D17 = board.add(LED_WS2812B_2020_PLCC4_2_0x2_0mm, { @@ -1296,9 +1341,9 @@ const D17 = board.add(LED_WS2812B_2020_PLCC4_2_0x2_0mm, { id: 'D17' }) // rgbs.led[2].cap.cap -const C87 = board.add(C_0603_1608Metric, { +const C88 = board.add(C_0603_1608Metric, { translate: pt(3.443, 3.689), rotate: 0, - id: 'C87' + id: 'C88' }) // rgbs.led[3].device const D18 = board.add(LED_WS2812B_2020_PLCC4_2_0x2_0mm, { @@ -1306,9 +1351,9 @@ const D18 = board.add(LED_WS2812B_2020_PLCC4_2_0x2_0mm, { id: 'D18' }) // rgbs.led[3].cap.cap -const C88 = board.add(C_0603_1608Metric, { +const C89 = board.add(C_0603_1608Metric, { translate: pt(3.599, 3.689), rotate: 0, - id: 'C88' + id: 'C89' }) // rgbs.led[4].device const D19 = board.add(LED_WS2812B_2020_PLCC4_2_0x2_0mm, { @@ -1316,9 +1361,9 @@ const D19 = board.add(LED_WS2812B_2020_PLCC4_2_0x2_0mm, { id: 'D19' }) // rgbs.led[4].cap.cap -const C89 = board.add(C_0603_1608Metric, { +const C90 = board.add(C_0603_1608Metric, { translate: pt(3.131, 3.786), rotate: 0, - id: 'C89' + id: 'C90' }) // rgbs.led[5].device const D20 = board.add(LED_WS2812B_2020_PLCC4_2_0x2_0mm, { @@ -1326,14 +1371,14 @@ const D20 = board.add(LED_WS2812B_2020_PLCC4_2_0x2_0mm, { id: 'D20' }) // rgbs.led[5].cap.cap -const C90 = board.add(C_0603_1608Metric, { +const C91 = board.add(C_0603_1608Metric, { translate: pt(3.287, 3.786), rotate: 0, - id: 'C90' + id: 'C91' }) // fan_cap.cap -const C91 = board.add(C_0603_1608Metric, { +const C92 = board.add(C_0603_1608Metric, { translate: pt(5.909, 4.835), rotate: 0, - id: 'C91' + id: 'C92' }) // fan_drv.pre const Q13 = board.add(SOT_23, { @@ -1341,9 +1386,9 @@ const Q13 = board.add(SOT_23, { id: 'Q13' }) // fan_drv.pull -const R79 = board.add(R_0603_1608Metric, { +const R87 = board.add(R_0603_1608Metric, { translate: pt(4.457, 4.197), rotate: 0, - id: 'R79' + id: 'R87' }) // fan_drv.drv const Q14 = board.add(SOT_23, { @@ -1361,14 +1406,14 @@ const U36 = board.add(QFN_16_1EP_3x3mm_P0_5mm_EP1_45x1_45mm, { id: 'U36' }) // spk_drv.pwr_cap0.cap -const C92 = board.add(C_0603_1608Metric, { +const C93 = board.add(C_0603_1608Metric, { translate: pt(5.265, 4.231), rotate: 0, - id: 'C92' + id: 'C93' }) // spk_drv.pwr_cap1.cap -const C93 = board.add(C_0805_2012Metric, { +const C94 = board.add(C_0805_2012Metric, { translate: pt(5.101, 4.241), rotate: 0, - id: 'C93' + id: 'C94' }) // spk.conn const J9 = board.add(JST_PH_B2B_PH_K_1x02_P2_00mm_Vertical, { @@ -1381,34 +1426,34 @@ const U37 = board.add(MSOP_10_3x3mm_P0_5mm, { id: 'U37' }) // dac.vdd_cap[0].cap -const C94 = board.add(C_0603_1608Metric, { +const C95 = board.add(C_0603_1608Metric, { translate: pt(1.240, 4.201), rotate: 0, - id: 'C94' + id: 'C95' }) // dac.vdd_cap[1].cap -const C95 = board.add(C_0805_2012Metric, { +const C96 = board.add(C_0805_2012Metric, { translate: pt(1.539, 4.033), rotate: 0, - id: 'C95' + id: 'C96' }) // dac.out_cap[0] -const C96 = board.add(C_0603_1608Metric, { +const C97 = board.add(C_0603_1608Metric, { translate: pt(1.396, 4.201), rotate: 0, - id: 'C96' + id: 'C97' }) // dac.out_cap[1] -const C97 = board.add(C_0603_1608Metric, { +const C98 = board.add(C_0603_1608Metric, { translate: pt(1.552, 4.201), rotate: 0, - id: 'C97' + id: 'C98' }) // dac.out_cap[2] -const C98 = board.add(C_0603_1608Metric, { +const C99 = board.add(C_0603_1608Metric, { translate: pt(1.240, 4.298), rotate: 0, - id: 'C98' + id: 'C99' }) // dac.out_cap[3] -const C99 = board.add(C_0603_1608Metric, { +const C100 = board.add(C_0603_1608Metric, { translate: pt(1.396, 4.298), rotate: 0, - id: 'C99' + id: 'C100' }) // dac_ferrite.fb const FB3 = board.add(L_0603_1608Metric, { @@ -1421,39 +1466,39 @@ const U38 = board.add(TSSOP_20_4_4x6_5mm_P0_65mm, { id: 'U38' }) // adc.avdd_res.res -const R80 = board.add(R_0603_1608Metric, { +const R88 = board.add(R_0603_1608Metric, { translate: pt(1.593, 3.530), rotate: 0, - id: 'R80' + id: 'R88' }) // adc.dvdd_res.res -const R81 = board.add(R_0603_1608Metric, { +const R89 = board.add(R_0603_1608Metric, { translate: pt(1.593, 3.627), rotate: 0, - id: 'R81' + id: 'R89' }) // adc.avdd_cap_0.cap -const C100 = board.add(C_0603_1608Metric, { +const C101 = board.add(C_0603_1608Metric, { translate: pt(1.250, 3.728), rotate: 0, - id: 'C100' + id: 'C101' }) // adc.avdd_cap_1.cap -const C101 = board.add(C_0603_1608Metric, { +const C102 = board.add(C_0603_1608Metric, { translate: pt(1.406, 3.728), rotate: 0, - id: 'C101' + id: 'C102' }) // adc.dvdd_cap_0.cap -const C102 = board.add(C_0603_1608Metric, { +const C103 = board.add(C_0603_1608Metric, { translate: pt(1.562, 3.728), rotate: 0, - id: 'C102' + id: 'C103' }) // adc.dvdd_cap_1.cap -const C103 = board.add(C_0603_1608Metric, { +const C104 = board.add(C_0603_1608Metric, { translate: pt(1.250, 3.825), rotate: 0, - id: 'C103' + id: 'C104' }) // adc.vref_cap.cap -const C104 = board.add(C_0805_2012Metric, { +const C105 = board.add(C_0805_2012Metric, { translate: pt(1.602, 3.423), rotate: 0, - id: 'C104' + id: 'C105' }) // tp_vcen.conn const J10 = board.add(U_FL_Hirose_U_FL_R_SMT_1_Vertical, { @@ -1461,14 +1506,14 @@ const J10 = board.add(U_FL_Hirose_U_FL_R_SMT_1_Vertical, { id: 'J10' }) // vcen_rc.rc.r -const R82 = board.add(R_0603_1608Metric, { +const R90 = board.add(R_0603_1608Metric, { translate: pt(0.058, 4.835), rotate: 0, - id: 'R82' + id: 'R90' }) // vcen_rc.rc.c -const C105 = board.add(C_0603_1608Metric, { +const C106 = board.add(C_0603_1608Metric, { translate: pt(0.058, 4.932), rotate: 0, - id: 'C105' + id: 'C106' }) // tp_mv.conn const J11 = board.add(U_FL_Hirose_U_FL_R_SMT_1_Vertical, { @@ -1476,14 +1521,14 @@ const J11 = board.add(U_FL_Hirose_U_FL_R_SMT_1_Vertical, { id: 'J11' }) // mv_rc.rc.r -const R83 = board.add(R_0603_1608Metric, { +const R91 = board.add(R_0603_1608Metric, { translate: pt(0.293, 4.835), rotate: 0, - id: 'R83' + id: 'R91' }) // mv_rc.rc.c -const C106 = board.add(C_0603_1608Metric, { +const C107 = board.add(C_0603_1608Metric, { translate: pt(0.293, 4.932), rotate: 0, - id: 'C106' + id: 'C107' }) // tp_mi.conn const J12 = board.add(U_FL_Hirose_U_FL_R_SMT_1_Vertical, { @@ -1491,14 +1536,14 @@ const J12 = board.add(U_FL_Hirose_U_FL_R_SMT_1_Vertical, { id: 'J12' }) // mi_rc.rc.r -const R84 = board.add(R_0603_1608Metric, { +const R92 = board.add(R_0603_1608Metric, { translate: pt(0.528, 4.835), rotate: 0, - id: 'R84' + id: 'R92' }) // mi_rc.rc.c -const C107 = board.add(C_0603_1608Metric, { +const C108 = board.add(C_0603_1608Metric, { translate: pt(0.528, 4.932), rotate: 0, - id: 'C107' + id: 'C108' }) // outn const J13 = board.add(CalTest_CT3151, { @@ -1521,9 +1566,9 @@ const U39 = board.add(SOIC_8_3_9x4_9mm_P1_27mm, { id: 'U39' }) // vimeas_amps.vdd_cap.cap -const C108 = board.add(C_0805_2012Metric, { +const C109 = board.add(C_0805_2012Metric, { translate: pt(1.795, 4.285), rotate: 0, - id: 'C108' + id: 'C109' }) // cv_amps.ic const U40 = board.add(SOIC_8_3_9x4_9mm_P1_27mm, { @@ -1531,9 +1576,9 @@ const U40 = board.add(SOIC_8_3_9x4_9mm_P1_27mm, { id: 'U40' }) // cv_amps.vdd_cap.cap -const C109 = board.add(C_0603_1608Metric, { +const C110 = board.add(C_0603_1608Metric, { translate: pt(3.039, 4.276), rotate: 0, - id: 'C109' + id: 'C110' }) // ci_amps.ic const U41 = board.add(SOIC_8_3_9x4_9mm_P1_27mm, { @@ -1541,9 +1586,9 @@ const U41 = board.add(SOIC_8_3_9x4_9mm_P1_27mm, { id: 'U41' }) // ci_amps.vdd_cap.cap -const C110 = board.add(C_0603_1608Metric, { +const C111 = board.add(C_0603_1608Metric, { translate: pt(3.448, 4.276), rotate: 0, - id: 'C110' + id: 'C111' }) // cintref_amps.ic const U42 = board.add(SOIC_8_3_9x4_9mm_P1_27mm, { @@ -1551,25 +1596,25 @@ const U42 = board.add(SOIC_8_3_9x4_9mm_P1_27mm, { id: 'U42' }) // cintref_amps.vdd_cap.cap -const C111 = board.add(C_0603_1608Metric, { +const C112 = board.add(C_0603_1608Metric, { translate: pt(3.857, 4.276), rotate: 0, - id: 'C111' + id: 'C112' }) board.setNetlist([ - {name: "gnd", pads: [["U27", "3"], ["J2", "2"], ["J3", "2"], ["J10", "2"], ["J11", "2"], ["J12", "2"], ["J1", "A1"], ["J1", "B12"], ["J1", "B1"], ["J1", "A12"], ["J13", "1"], ["J15", "1"], ["TP1", "1"], ["U1", "3"], ["U1", "7"], ["U1", "8"], ["D1", "2"], ["Q2", "2"], ["C4", "2"], ["U2", "1"], ["U3", "1"], ["D2", "2"], ["U4", "2"], ["U5", "3"], ["U5", "7"], ["D6", "2"], ["U8", "2"], ["U9", "3"], ["U10", "2"], ["U11", "1"], ["U25", "8"], ["U25", "9"], ["U25", "15"], ["U26", "1"], ["U26", "40"], ["U26", "41"], ["U29", "1"], ["U29", "2"], ["U29", "3"], ["U29", "8"], ["R64", "1"], ["R71", "1"], ["U32", "2"], ["U32", "4"], ["U33", "2"], ["U34", "1"], ["U34", "3"], ["U34", "8"], ["SW1", "C"], ["SW1", "S2"], ["SW2", "5"], ["J6", "1"], ["J7", "1"], ["C91", "2"], ["Q13", "2"], ["J8", "1"], ["U36", "3"], ["U36", "11"], ["U36", "15"], ["U36", "17"], ["U37", "10"], ["U38", "2"], ["U38", "3"], ["U38", "19"], ["R18", "2"], ["U40", "4"], ["C40", "2"], ["C76", "2"], ["C78", "2"], ["C79", "2"], ["U31", "4"], ["R74", "2"], ["C105", "2"], ["C106", "2"], ["C107", "2"], ["J1", "S1"], ["D13", "1"], ["R62", "2"], ["C96", "2"], ["C97", "2"], ["C98", "2"], ["C99", "2"], ["C1", "2"], ["C5", "2"], ["C9", "2"], ["C17", "2"], ["C37", "2"], ["C38", "2"], ["C39", "2"], ["C45", "2"], ["U12", "2"], ["U13", "2"], ["U23", "1"], ["C65", "2"], ["C58", "2"], ["C66", "2"], ["C67", "2"], ["C68", "2"], ["C69", "2"], ["J4", "5"], ["C71", "2"], ["C72", "2"], ["C73", "2"], ["C74", "2"], ["C75", "2"], ["C77", "2"], ["U30", "2"], ["C82", "2"], ["C83", "2"], ["C84", "2"], ["D15", "2"], ["D16", "2"], ["D17", "2"], ["D18", "2"], ["D19", "2"], ["D20", "2"], ["C92", "2"], ["C93", "2"], ["C94", "2"], ["C95", "2"], ["C100", "2"], ["C101", "2"], ["C102", "2"], ["C103", "2"], ["C104", "2"], ["R5", "2"], ["R8", "2"], ["R11", "2"], ["C109", "2"], ["R21", "2"], ["U42", "4"], ["R44", "2"], ["U14", "2"], ["C70", "2"], ["J5", "22"], ["J5", "24"], ["J5", "1"], ["J5", "23"], ["J5", "13"], ["J5", "14"], ["J5", "9"], ["J5", "8"], ["J5", "7"], ["J5", "6"], ["J5", "5"], ["R68", "2"], ["R70", "2"], ["C81", "2"], ["U15", "4"], ["U16", "4"], ["Q3", "1"], ["Q3", "2"], ["Q3", "3"], ["Q5", "1"], ["Q5", "2"], ["Q5", "3"], ["Q8", "2"], ["C7", "2"], ["C8", "2"], ["C13", "2"], ["C14", "2"], ["C15", "2"], ["U6", "6"], ["U7", "6"], ["C41", "2"], ["C42", "2"], ["C49", "2"], ["C50", "2"], ["C48", "2"], ["U41", "4"], ["C47", "2"], ["C55", "2"], ["C56", "2"], ["C57", "2"], ["C46", "2"], ["J5", "18"], ["J5", "15"], ["J5", "17"], ["C80", "2"], ["C85", "2"], ["C86", "2"], ["C87", "2"], ["C88", "2"], ["C89", "2"], ["C90", "2"], ["C111", "2"], ["C51", "2"], ["C11", "2"], ["C12", "2"], ["C18", "2"], ["C19", "2"], ["C20", "2"], ["C21", "2"], ["C22", "2"], ["C23", "2"], ["C24", "2"], ["C25", "2"], ["C26", "2"], ["C27", "2"], ["C28", "2"], ["C29", "2"], ["C30", "2"], ["C31", "2"], ["C32", "2"], ["C33", "2"], ["C35", "2"], ["C110", "2"], ["R46", "2"], ["R48", "2"], ["R50", "2"], ["U17", "2"], ["U17", "4"], ["U19", "2"], ["U19", "4"], ["U21", "2"], ["U21", "4"], ["C59", "2"], ["C60", "2"], ["C61", "2"]]}, + {name: "gnd", pads: [["U27", "3"], ["J2", "2"], ["J3", "2"], ["J10", "2"], ["J11", "2"], ["J12", "2"], ["J1", "A1"], ["J1", "B12"], ["J1", "B1"], ["J1", "A12"], ["J13", "1"], ["J15", "1"], ["TP1", "1"], ["U1", "3"], ["U1", "7"], ["U1", "8"], ["D1", "2"], ["Q2", "2"], ["C4", "2"], ["U2", "1"], ["U3", "1"], ["D2", "2"], ["U4", "2"], ["U5", "3"], ["U5", "7"], ["D6", "2"], ["U8", "2"], ["U9", "3"], ["U10", "2"], ["U11", "1"], ["U25", "8"], ["U25", "9"], ["U25", "15"], ["U26", "1"], ["U26", "40"], ["U26", "41"], ["U29", "1"], ["U29", "2"], ["U29", "3"], ["U29", "8"], ["R72", "1"], ["R79", "1"], ["U32", "2"], ["U32", "4"], ["U33", "2"], ["U34", "1"], ["U34", "3"], ["U34", "8"], ["SW1", "C"], ["SW1", "S2"], ["SW2", "5"], ["J6", "1"], ["J7", "1"], ["C92", "2"], ["Q13", "2"], ["J8", "1"], ["U36", "3"], ["U36", "11"], ["U36", "15"], ["U36", "17"], ["U37", "10"], ["U38", "2"], ["U38", "3"], ["U38", "19"], ["R18", "2"], ["U40", "4"], ["C40", "2"], ["C77", "2"], ["C79", "2"], ["C80", "2"], ["U31", "4"], ["R82", "2"], ["C106", "2"], ["C107", "2"], ["C108", "2"], ["J1", "S1"], ["D13", "1"], ["R70", "2"], ["C97", "2"], ["C98", "2"], ["C99", "2"], ["C100", "2"], ["C1", "2"], ["C5", "2"], ["C9", "2"], ["C17", "2"], ["C37", "2"], ["C38", "2"], ["C39", "2"], ["C45", "2"], ["U12", "2"], ["U13", "2"], ["U23", "1"], ["C66", "2"], ["C59", "2"], ["C67", "2"], ["C68", "2"], ["C69", "2"], ["C70", "2"], ["J4", "5"], ["C72", "2"], ["C73", "2"], ["C74", "2"], ["C75", "2"], ["C76", "2"], ["C78", "2"], ["U30", "2"], ["C83", "2"], ["C84", "2"], ["C85", "2"], ["D15", "2"], ["D16", "2"], ["D17", "2"], ["D18", "2"], ["D19", "2"], ["D20", "2"], ["C93", "2"], ["C94", "2"], ["C95", "2"], ["C96", "2"], ["C101", "2"], ["C102", "2"], ["C103", "2"], ["C104", "2"], ["C105", "2"], ["R5", "2"], ["R8", "2"], ["R11", "2"], ["C110", "2"], ["R21", "2"], ["U42", "4"], ["R52", "2"], ["U14", "2"], ["C71", "2"], ["J5", "22"], ["J5", "24"], ["J5", "1"], ["J5", "23"], ["J5", "13"], ["J5", "14"], ["J5", "9"], ["J5", "8"], ["J5", "7"], ["J5", "6"], ["J5", "5"], ["R76", "2"], ["R78", "2"], ["C82", "2"], ["U15", "4"], ["U16", "4"], ["Q3", "1"], ["Q3", "2"], ["Q3", "3"], ["Q5", "1"], ["Q5", "2"], ["Q5", "3"], ["Q8", "2"], ["C7", "2"], ["C8", "2"], ["C13", "2"], ["C14", "2"], ["C15", "2"], ["U6", "6"], ["U7", "6"], ["C41", "2"], ["C42", "2"], ["C49", "2"], ["C50", "2"], ["C48", "2"], ["U41", "4"], ["C47", "2"], ["C56", "2"], ["C57", "2"], ["C58", "2"], ["C46", "2"], ["J5", "18"], ["J5", "15"], ["J5", "17"], ["C81", "2"], ["C86", "2"], ["C87", "2"], ["C88", "2"], ["C89", "2"], ["C90", "2"], ["C91", "2"], ["C112", "2"], ["C51", "2"], ["C11", "2"], ["C12", "2"], ["C18", "2"], ["C19", "2"], ["C20", "2"], ["C21", "2"], ["C22", "2"], ["C23", "2"], ["C24", "2"], ["C25", "2"], ["C26", "2"], ["C27", "2"], ["C28", "2"], ["C29", "2"], ["C30", "2"], ["C31", "2"], ["C32", "2"], ["C33", "2"], ["C35", "2"], ["C111", "2"], ["R54", "2"], ["R56", "2"], ["R58", "2"], ["U17", "2"], ["U17", "4"], ["U19", "2"], ["U19", "4"], ["U21", "2"], ["U21", "4"], ["C60", "2"], ["C61", "2"], ["C62", "2"]]}, {name: "vusb", pads: [["U25", "2"], ["C3", "1"], ["Q1", "1"], ["Q1", "2"], ["Q1", "3"], ["U3", "3"], ["R2", "1"], ["R1", "2"], ["U1", "2"], ["R9", "1"], ["C9", "1"], ["C11", "1"], ["C12", "1"]]}, {name: "vusb_ramp", pads: [["Q1", "5"], ["C2", "1"], ["C4", "1"], ["TP2", "1"], ["U2", "3"], ["R6", "1"], ["C5", "1"], ["C7", "1"], ["R12", "1"], ["U5", "1"]]}, - {name: "v5", pads: [["TP3", "1"], ["U4", "5"], ["U8", "1"], ["U9", "1"], ["U10", "5"], ["C91", "1"], ["R79", "1"], ["Q14", "2"], ["U36", "4"], ["U36", "7"], ["U36", "8"], ["R4", "1"], ["U4", "4"], ["U8", "3"], ["U10", "4"], ["C37", "1"], ["C39", "1"], ["D15", "4"], ["D16", "4"], ["D17", "4"], ["D18", "4"], ["D19", "4"], ["D20", "4"], ["C92", "1"], ["C93", "1"], ["U6", "4"], ["U7", "4"], ["L3", "1"], ["L5", "1"], ["C14", "1"], ["D4", "2"], ["D5", "2"], ["C41", "1"], ["C85", "1"], ["C86", "1"], ["C87", "1"], ["C88", "1"], ["C89", "1"], ["C90", "1"], ["C33", "1"], ["C35", "1"], ["L1", "2"], ["C8", "1"]]}, - {name: "v3v3", pads: [["D2", "1"], ["TP4", "1"], ["U1", "4"], ["U5", "4"], ["U5", "8"], ["U25", "3"], ["U25", "4"], ["U26", "2"], ["D14", "2"], ["U29", "16"], ["R72", "1"], ["U32", "5"], ["U33", "4"], ["U33", "5"], ["U34", "2"], ["U34", "16"], ["J6", "2"], ["R63", "1"], ["U31", "8"], ["R81", "1"], ["R7", "1"], ["C1", "1"], ["C17", "1"], ["C66", "1"], ["C67", "1"], ["C68", "1"], ["C69", "1"], ["J4", "1"], ["R60", "1"], ["R61", "1"], ["C72", "1"], ["C73", "1"], ["C77", "1"], ["U30", "5"], ["C82", "1"], ["C83", "1"], ["C84", "1"], ["R75", "1"], ["R76", "1"], ["R58", "1"], ["J5", "20"], ["R67", "1"], ["C81", "1"], ["J5", "19"], ["C80", "1"], ["L2", "2"], ["C13", "1"]]}, - {name: "v12", pads: [["D3", "1"], ["C16", "1"], ["R10", "1"], ["C15", "1"], ["C74", "1"], ["C75", "1"], ["J5", "2"]]}, + {name: "v5", pads: [["TP3", "1"], ["U4", "5"], ["U8", "1"], ["U9", "1"], ["U10", "5"], ["C92", "1"], ["R87", "1"], ["Q14", "2"], ["U36", "4"], ["U36", "7"], ["U36", "8"], ["R4", "1"], ["U4", "4"], ["U8", "3"], ["U10", "4"], ["C37", "1"], ["C39", "1"], ["D15", "4"], ["D16", "4"], ["D17", "4"], ["D18", "4"], ["D19", "4"], ["D20", "4"], ["C93", "1"], ["C94", "1"], ["U6", "4"], ["U7", "4"], ["L3", "1"], ["L5", "1"], ["C14", "1"], ["D4", "2"], ["D5", "2"], ["C41", "1"], ["C86", "1"], ["C87", "1"], ["C88", "1"], ["C89", "1"], ["C90", "1"], ["C91", "1"], ["C33", "1"], ["C35", "1"], ["L1", "2"], ["C8", "1"]]}, + {name: "v3v3", pads: [["D2", "1"], ["TP4", "1"], ["U1", "4"], ["U5", "4"], ["U5", "8"], ["U25", "3"], ["U25", "4"], ["U26", "2"], ["D14", "2"], ["U29", "16"], ["R80", "1"], ["U32", "5"], ["U33", "4"], ["U33", "5"], ["U34", "2"], ["U34", "16"], ["J6", "2"], ["R71", "1"], ["U31", "8"], ["R89", "1"], ["R7", "1"], ["C1", "1"], ["C17", "1"], ["C67", "1"], ["C68", "1"], ["C69", "1"], ["C70", "1"], ["J4", "1"], ["R68", "1"], ["R69", "1"], ["C73", "1"], ["C74", "1"], ["C78", "1"], ["U30", "5"], ["C83", "1"], ["C84", "1"], ["C85", "1"], ["R83", "1"], ["R84", "1"], ["R66", "1"], ["J5", "20"], ["R75", "1"], ["C82", "1"], ["J5", "19"], ["C81", "1"], ["L2", "2"], ["C13", "1"]]}, + {name: "v12", pads: [["D3", "1"], ["C16", "1"], ["R10", "1"], ["C15", "1"], ["C75", "1"], ["C76", "1"], ["J5", "2"]]}, {name: "vconvin", pads: [["R12", "2"], ["U5", "2"], ["Q4", "5"], ["C18", "1"], ["C19", "1"], ["C20", "1"], ["C21", "1"], ["C22", "1"], ["C23", "1"], ["C24", "1"]]}, - {name: "vconv", pads: [["D6", "1"], ["TP5", "1"], ["R73", "1"], ["Q7", "2"], ["C55", "1"], ["C56", "1"], ["C57", "1"], ["R69", "1"], ["Q6", "5"], ["C25", "1"], ["C26", "1"], ["C27", "1"], ["C28", "1"], ["C29", "1"], ["C30", "1"], ["C31", "1"], ["C32", "1"]]}, - {name: "vanalog", pads: [["U8", "5"], ["TP6", "1"], ["FB2", "1"], ["U40", "8"], ["R80", "1"], ["C38", "1"], ["U13", "5"], ["U12", "5"], ["C109", "1"], ["U14", "5"], ["U42", "8"], ["U41", "8"], ["C50", "1"], ["C49", "1"], ["C51", "1"], ["C111", "1"], ["C110", "1"]]}, - {name: "vref", pads: [["U9", "2"], ["TP7", "1"], ["FB3", "1"], ["U38", "4"], ["R17", "1"], ["C104", "1"]]}, - {name: "vcenter", pads: [["J10", "1"], ["U23", "6"], ["U24", "6"], ["R82", "1"], ["U42", "3"], ["R19", "2"], ["C40", "1"], ["R25", "1"], ["R37", "2"]]}, - {name: "vcontrol", pads: [["TP8", "1"], ["D7", "1"], ["C43", "1"], ["R20", "1"], ["C42", "1"], ["U23", "8"], ["U24", "8"], ["U39", "8"], ["C63", "1"], ["C64", "1"], ["C108", "1"], ["U15", "5"], ["U16", "5"], ["U17", "5"], ["U19", "5"], ["U21", "5"], ["C53", "1"], ["C54", "1"], ["C59", "1"], ["C60", "1"], ["C61", "1"]]}, - {name: "vcontroln", pads: [["U11", "2"], ["TP9", "1"], ["U23", "5"], ["U24", "5"], ["U39", "4"], ["C45", "1"], ["C63", "2"], ["C64", "2"], ["C108", "2"], ["U15", "2"], ["U16", "2"], ["C53", "2"], ["C54", "2"]]}, + {name: "vconv", pads: [["D6", "1"], ["TP5", "1"], ["R81", "1"], ["Q7", "2"], ["C56", "1"], ["C57", "1"], ["C58", "1"], ["R77", "1"], ["Q6", "5"], ["C25", "1"], ["C26", "1"], ["C27", "1"], ["C28", "1"], ["C29", "1"], ["C30", "1"], ["C31", "1"], ["C32", "1"]]}, + {name: "vanalog", pads: [["U8", "5"], ["TP6", "1"], ["FB2", "1"], ["U40", "8"], ["R88", "1"], ["C38", "1"], ["U13", "5"], ["U12", "5"], ["C110", "1"], ["U14", "5"], ["U42", "8"], ["U41", "8"], ["C50", "1"], ["C49", "1"], ["C51", "1"], ["C112", "1"], ["C111", "1"]]}, + {name: "vref", pads: [["U9", "2"], ["TP7", "1"], ["FB3", "1"], ["U38", "4"], ["R17", "1"], ["C105", "1"]]}, + {name: "vcenter", pads: [["J10", "1"], ["U23", "6"], ["U24", "6"], ["R90", "1"], ["U42", "3"], ["R19", "2"], ["C40", "1"], ["R25", "1"], ["R38", "2"]]}, + {name: "vcontrol", pads: [["TP8", "1"], ["D7", "1"], ["C43", "1"], ["R20", "1"], ["C42", "1"], ["U23", "8"], ["U24", "8"], ["U39", "8"], ["C64", "1"], ["C65", "1"], ["C109", "1"], ["U15", "5"], ["U16", "5"], ["U17", "5"], ["U19", "5"], ["U21", "5"], ["C54", "1"], ["C55", "1"], ["C60", "1"], ["C61", "1"], ["C62", "1"]]}, + {name: "vcontroln", pads: [["U11", "2"], ["TP9", "1"], ["U23", "5"], ["U24", "5"], ["U39", "4"], ["C45", "1"], ["C64", "2"], ["C65", "2"], ["C109", "2"], ["U15", "2"], ["U16", "2"], ["C54", "2"], ["C55", "2"]]}, {name: "usb.pwr", pads: [["J1", "A4"], ["J1", "B9"], ["J1", "B4"], ["J1", "A9"], ["F1", "1"]]}, {name: "fuse_vusb.pwr_out", pads: [["F1", "2"], ["FB1", "1"]]}, {name: "filt_vusb.pwr_out", pads: [["FB1", "2"], ["D1", "1"], ["R1", "1"], ["U1", "1"]]}, @@ -1577,28 +1622,28 @@ board.setNetlist([ {name: "ref_buf.output", pads: [["U40", "2"], ["R19", "1"], ["U40", "1"]]}, {name: "filt_vcontroln.pwr_out", pads: [["U11", "4"], ["U11", "5"], ["FB2", "2"]]}, {name: "control.int_link", pads: [["J2", "1"], ["R34", "1"], ["U14", "4"]]}, - {name: "control.tp_int", pads: [["U39", "3"], ["J3", "1"], ["U42", "1"], ["C52", "1"]]}, + {name: "control.tp_int", pads: [["U39", "3"], ["J3", "1"], ["U42", "1"], ["C52", "1"], ["C53", "1"]]}, {name: "usb.cc.cc1", pads: [["J1", "A5"], ["U25", "10"], ["U25", "11"]]}, {name: "usb.cc.cc2", pads: [["J1", "B5"], ["U25", "1"], ["U25", "14"]]}, - {name: "mcu.program_boot_node", pads: [["R59", "2"], ["U26", "27"], ["J4", "2"]]}, + {name: "mcu.program_boot_node", pads: [["R67", "2"], ["U26", "27"], ["J4", "2"]]}, {name: "usb_chain_0.d_P", pads: [["J1", "A6"], ["J1", "B6"], ["U27", "2"], ["U26", "14"]]}, {name: "usb_chain_0.d_N", pads: [["J1", "A7"], ["J1", "B7"], ["U27", "1"], ["U26", "13"]]}, - {name: "i2c_pull.i2c.scl", pads: [["U26", "8"], ["U25", "6"], ["U1", "5"], ["U5", "5"], ["U29", "14"], ["U32", "1"], ["U33", "1"], ["U34", "14"], ["U37", "2"], ["R60", "2"], ["TP10", "1"], ["J5", "12"]]}, - {name: "i2c_pull.i2c.sda", pads: [["U26", "7"], ["U25", "7"], ["U1", "6"], ["U5", "6"], ["U29", "15"], ["U32", "6"], ["U33", "6"], ["U34", "15"], ["U37", "3"], ["R61", "2"], ["TP11", "1"], ["J5", "11"], ["J5", "10"]]}, + {name: "i2c_pull.i2c.scl", pads: [["U26", "8"], ["U25", "6"], ["U1", "5"], ["U5", "5"], ["U29", "14"], ["U32", "1"], ["U33", "1"], ["U34", "14"], ["U37", "2"], ["R68", "2"], ["TP10", "1"], ["J5", "12"]]}, + {name: "i2c_pull.i2c.sda", pads: [["U26", "7"], ["U25", "7"], ["U1", "6"], ["U5", "6"], ["U29", "15"], ["U32", "6"], ["U33", "6"], ["U34", "15"], ["U37", "3"], ["R69", "2"], ["TP11", "1"], ["J5", "11"], ["J5", "10"]]}, {name: "pd.int", pads: [["U26", "9"], ["U25", "5"]]}, - {name: "oled.reset", pads: [["J5", "16"], ["R63", "2"], ["C76", "1"]]}, + {name: "oled.reset", pads: [["J5", "16"], ["R71", "2"], ["C77", "1"]]}, {name: "control.high_gate_ctl", pads: [["U29", "11"], ["U15", "3"]]}, {name: "control.low_gate_ctl", pads: [["U29", "12"], ["U16", "3"]]}, {name: "ioe_ctl.io.off_0", pads: [["U29", "9"], ["U14", "6"]]}, - {name: "ramp_pull.io", pads: [["U29", "4"], ["R64", "2"], ["Q2", "1"]]}, - {name: "buck_rc.input", pads: [["U26", "10"], ["R65", "1"]]}, - {name: "buck_rc.output", pads: [["U6", "2"], ["R65", "2"], ["C78", "1"]]}, - {name: "boost_rc.input", pads: [["U26", "11"], ["R66", "1"]]}, - {name: "boost_rc.output", pads: [["U7", "2"], ["R66", "2"], ["C79", "1"]]}, - {name: "conv_en_pull.io", pads: [["U29", "6"], ["U31", "5"], ["R71", "2"]]}, - {name: "conv_ovp.output", pads: [["U30", "4"], ["U31", "1"], ["R72", "2"]]}, + {name: "ramp_pull.io", pads: [["U29", "4"], ["R72", "2"], ["Q2", "1"]]}, + {name: "buck_rc.input", pads: [["U26", "10"], ["R73", "1"]]}, + {name: "buck_rc.output", pads: [["U6", "2"], ["R73", "2"], ["C79", "1"]]}, + {name: "boost_rc.input", pads: [["U26", "11"], ["R74", "1"]]}, + {name: "boost_rc.output", pads: [["U7", "2"], ["R74", "2"], ["C80", "1"]]}, + {name: "conv_en_pull.io", pads: [["U29", "6"], ["U31", "5"], ["R79", "2"]]}, + {name: "conv_ovp.output", pads: [["U30", "4"], ["U31", "1"], ["R80", "2"]]}, {name: "conv_latch.out", pads: [["U29", "7"], ["U31", "7"], ["U31", "6"], ["U6", "3"], ["U7", "3"]]}, - {name: "conv_sense.output", pads: [["U26", "12"], ["R73", "2"], ["R74", "1"]]}, + {name: "conv_sense.output", pads: [["U26", "12"], ["R81", "2"], ["R82", "1"]]}, {name: "enc.a", pads: [["U26", "35"], ["SW1", "A"]]}, {name: "enc.b", pads: [["U26", "34"], ["SW1", "B"]]}, {name: "enc.sw", pads: [["U26", "33"], ["SW1", "S1"]]}, @@ -1610,12 +1655,12 @@ board.setNetlist([ {name: "ioe_ui.io.irange_0", pads: [["U34", "11"], ["U17", "3"], ["U18", "1"]]}, {name: "ioe_ui.io.irange_1", pads: [["U34", "9"], ["U19", "3"], ["U20", "1"]]}, {name: "ioe_ui.io.irange_2", pads: [["U34", "10"], ["U21", "3"], ["U22", "1"]]}, - {name: "qwiic_pull.i2c.scl", pads: [["U26", "39"], ["R75", "2"], ["J6", "4"]]}, - {name: "qwiic_pull.i2c.sda", pads: [["U26", "38"], ["J6", "3"], ["R76", "2"]]}, - {name: "dutio.io0", pads: [["J7", "2"], ["R77", "1"]]}, - {name: "dut0_clamp.signal_out", pads: [["U26", "24"], ["R77", "2"]]}, - {name: "dutio.io1", pads: [["J7", "3"], ["R78", "1"]]}, - {name: "dut1_clamp.signal_out", pads: [["U26", "25"], ["R78", "2"]]}, + {name: "qwiic_pull.i2c.scl", pads: [["U26", "39"], ["R83", "2"], ["J6", "4"]]}, + {name: "qwiic_pull.i2c.sda", pads: [["U26", "38"], ["J6", "3"], ["R84", "2"]]}, + {name: "dutio.io0", pads: [["J7", "2"], ["R85", "1"]]}, + {name: "dut0_clamp.signal_out", pads: [["U26", "24"], ["R85", "2"]]}, + {name: "dutio.io1", pads: [["J7", "3"], ["R86", "1"]]}, + {name: "dut1_clamp.signal_out", pads: [["U26", "25"], ["R86", "2"]]}, {name: "touch_duck.pad", pads: [["U26", "21"], ["U35", "1"]]}, {name: "rgbs.din", pads: [["U26", "31"], ["D15", "3"]]}, {name: "fan_drv.control", pads: [["U26", "32"], ["Q13", "1"]]}, @@ -1625,28 +1670,28 @@ board.setNetlist([ {name: "spk_drv.i2s.sd", pads: [["U26", "4"], ["U36", "1"]]}, {name: "spk_drv.out.a", pads: [["U36", "9"], ["J9", "1"]]}, {name: "spk_drv.out.b", pads: [["U36", "10"], ["J9", "2"]]}, - {name: "dac_ferrite.pwr_out", pads: [["FB3", "2"], ["U37", "1"], ["U37", "4"], ["C94", "1"], ["C95", "1"]]}, - {name: "dac.out0", pads: [["U37", "6"], ["R26", "1"], ["C96", "1"]]}, - {name: "dac.out2", pads: [["U37", "8"], ["R29", "1"], ["C98", "1"]]}, - {name: "dac.out1", pads: [["U37", "7"], ["R32", "1"], ["C97", "1"]]}, - {name: "dac.out3", pads: [["U37", "9"], ["R30", "1"], ["C99", "1"]]}, + {name: "dac_ferrite.pwr_out", pads: [["FB3", "2"], ["U37", "1"], ["U37", "4"], ["C95", "1"], ["C96", "1"]]}, + {name: "dac.out0", pads: [["U37", "6"], ["R26", "1"], ["C97", "1"]]}, + {name: "dac.out2", pads: [["U37", "8"], ["R29", "1"], ["C99", "1"]]}, + {name: "dac.out1", pads: [["U37", "7"], ["R32", "1"], ["C98", "1"]]}, + {name: "dac.out3", pads: [["U37", "9"], ["R30", "1"], ["C100", "1"]]}, {name: "adc.spi.sck", pads: [["U38", "14"], ["U26", "17"]]}, {name: "adc.spi.mosi", pads: [["U38", "15"], ["U26", "18"]]}, {name: "adc.spi.miso", pads: [["U38", "16"], ["U26", "19"]]}, {name: "adc.cs", pads: [["U38", "13"], ["U26", "15"]]}, {name: "adc.mclkin", pads: [["U38", "18"], ["U26", "20"]]}, - {name: "vcen_rc.output", pads: [["U38", "7"], ["R82", "2"], ["C105", "1"]]}, - {name: "control.meas_v", pads: [["J11", "1"], ["R83", "1"], ["Q10", "2"], ["R27", "1"]]}, - {name: "mv_rc.output", pads: [["U38", "5"], ["R83", "2"], ["C106", "1"]]}, - {name: "control.meas_i", pads: [["J12", "1"], ["R84", "1"], ["Q12", "2"], ["R31", "1"], ["R33", "1"]]}, - {name: "mi_rc.output", pads: [["U38", "6"], ["R84", "2"], ["C107", "1"]]}, + {name: "vcen_rc.output", pads: [["U38", "7"], ["R90", "2"], ["C106", "1"]]}, + {name: "control.meas_v", pads: [["J11", "1"], ["R91", "1"], ["Q10", "2"], ["R27", "1"]]}, + {name: "mv_rc.output", pads: [["U38", "5"], ["R91", "2"], ["C107", "1"]]}, + {name: "control.meas_i", pads: [["J12", "1"], ["R92", "1"], ["Q12", "2"], ["R31", "1"], ["R33", "1"]]}, + {name: "mi_rc.output", pads: [["U38", "6"], ["R92", "2"], ["C108", "1"]]}, {name: "control.limit_source", pads: [["U12", "4"], ["U26", "22"]]}, {name: "control.limit_sink", pads: [["U13", "4"], ["U26", "23"]]}, - {name: "outp.port", pads: [["J14", "1"], ["J15", "2"], ["D12", "1"], ["R56", "1"], ["R35", "1"], ["U18", "6"], ["U20", "4"], ["U22", "4"]]}, - {name: "vimeas_amps.inn.0", pads: [["U39", "2"], ["R36", "2"], ["R37", "1"]]}, - {name: "control.drive", pads: [["U39", "1"], ["R36", "1"], ["R23", "1"], ["R38", "1"]]}, - {name: "vimeas_amps.inp.1", pads: [["U39", "5"], ["R35", "2"]]}, - {name: "control.outa", pads: [["U39", "6"], ["U39", "7"], ["R22", "1"], ["R43", "1"]]}, + {name: "outp.port", pads: [["J14", "1"], ["J15", "2"], ["D12", "1"], ["R64", "1"], ["R36", "1"], ["U18", "6"], ["U20", "4"], ["U22", "4"]]}, + {name: "vimeas_amps.inn.0", pads: [["U39", "2"], ["R37", "2"], ["R38", "1"]]}, + {name: "control.drive", pads: [["U39", "1"], ["R37", "1"], ["R23", "1"], ["R39", "1"]]}, + {name: "vimeas_amps.inp.1", pads: [["U39", "5"], ["R36", "2"]]}, + {name: "control.outa", pads: [["U39", "6"], ["U39", "7"], ["R22", "1"], ["R51", "1"]]}, {name: "cv_amps.inp.1", pads: [["U40", "5"], ["R26", "2"], ["R27", "2"], ["R29", "2"], ["C46", "1"]]}, {name: "cv_amps.inn.1", pads: [["U40", "6"], ["R28", "2"], ["U12", "3"], ["U13", "1"], ["U14", "3"], ["U41", "6"], ["U41", "2"], ["D8", "1"], ["D9", "2"]]}, {name: "cv_amps.out.1", pads: [["U40", "7"], ["R28", "1"]]}, @@ -1654,7 +1699,7 @@ board.setNetlist([ {name: "ci_amps.out.0", pads: [["U41", "1"], ["D9", "1"], ["U13", "3"]]}, {name: "ci_amps.inp.1", pads: [["U41", "5"], ["R30", "2"], ["R31", "2"], ["C47", "1"]]}, {name: "ci_amps.out.1", pads: [["U41", "7"], ["D8", "2"], ["U12", "1"]]}, - {name: "cintref_amps.inn.0", pads: [["U42", "2"], ["R34", "2"], ["C52", "2"]]}, + {name: "cintref_amps.inn.0", pads: [["U42", "2"], ["R34", "2"], ["R35", "1"], ["C52", "2"]]}, {name: "cintref_amps.inp.1", pads: [["U42", "5"], ["R23", "2"], ["R25", "2"]]}, {name: "cintref_amps.inn.1", pads: [["U42", "6"], ["R22", "2"], ["R24", "2"]]}, {name: "cintref_amps.out.1", pads: [["U42", "7"], ["R24", "1"], ["U14", "1"]]}, @@ -1686,44 +1731,52 @@ board.setNetlist([ {name: "reg_vcontrol.power_path.switch", pads: [["U10", "1"], ["L5", "2"], ["D7", "2"]]}, {name: "reg_vcontroln.cf.neg", pads: [["C44", "2"], ["U11", "3"]]}, {name: "reg_vcontroln.cf.pos", pads: [["C44", "1"], ["U11", "6"]]}, - {name: "control.driver.out", pads: [["R41", "2"], ["Q7", "3"], ["D11", "2"], ["Q8", "3"], ["R42", "2"], ["R45", "1"], ["R47", "1"], ["R49", "1"], ["R51", "1"]]}, - {name: "control.vdiv.output", pads: [["U23", "4"], ["C58", "1"], ["R43", "2"], ["R44", "1"]]}, - {name: "control.isense.sense_out", pads: [["R52", "1"], ["U17", "6"], ["U19", "6"], ["U21", "6"]]}, - {name: "control.ifilt.outp", pads: [["U24", "4"], ["R51", "2"], ["C62", "1"]]}, - {name: "control.ifilt.outn", pads: [["U24", "1"], ["R52", "2"], ["C62", "2"]]}, + {name: "control.driver.out", pads: [["R49", "2"], ["Q7", "3"], ["D11", "2"], ["Q8", "3"], ["R50", "2"], ["R53", "1"], ["R55", "1"], ["R57", "1"], ["R59", "1"]]}, + {name: "control.vdiv.output", pads: [["U23", "4"], ["C59", "1"], ["R51", "2"], ["R52", "1"]]}, + {name: "control.isense.sense_out", pads: [["R60", "1"], ["U17", "6"], ["U19", "6"], ["U21", "6"]]}, + {name: "control.ifilt.outp", pads: [["U24", "4"], ["R59", "2"], ["C63", "1"]]}, + {name: "control.ifilt.outn", pads: [["U24", "1"], ["R60", "2"], ["C63", "2"]]}, {name: "control.vmeas.output", pads: [["U23", "7"], ["Q9", "2"]]}, {name: "control.imeas.output", pads: [["U24", "7"], ["Q11", "2"]]}, - {name: "control.snub_r.pwr_out", pads: [["R56", "2"], ["C65", "1"]]}, + {name: "control.snub_r.pwr_out", pads: [["R64", "2"], ["C66", "1"]]}, {name: "control.tvs_p.ports.2", pads: [["D12", "2"], ["D13", "2"]]}, - {name: "control.driver.res.b", pads: [["R40", "2"], ["D10", "2"], ["U16", "1"], ["U15", "1"]]}, - {name: "control.driver.high_fet.gate", pads: [["Q7", "1"], ["R41", "1"], ["U15", "6"]]}, - {name: "control.driver.low_fet.gate", pads: [["Q8", "1"], ["R42", "1"], ["U16", "6"]]}, + {name: "control.int.r2.b", pads: [["R35", "2"], ["C53", "2"]]}, + {name: "control.driver.res.b", pads: [["R48", "2"], ["D10", "2"], ["U16", "1"], ["U15", "1"]]}, + {name: "control.driver.high_fet.gate", pads: [["Q7", "1"], ["R49", "1"], ["U15", "6"]]}, + {name: "control.driver.low_fet.gate", pads: [["Q8", "1"], ["R50", "1"], ["U16", "6"]]}, {name: "control.driver.clamp1.cathode", pads: [["D10", "1"], ["D11", "1"]]}, - {name: "control.driver.res.res[0].b", pads: [["R38", "2"], ["R39", "1"]]}, - {name: "control.driver.res.res[1].b", pads: [["R39", "2"], ["R40", "1"]]}, - {name: "control.isense.ranges[0].isense.pwr_out", pads: [["U18", "4"], ["R45", "2"], ["U17", "1"]]}, - {name: "control.isense.ranges[0].pwr_sw.res.a", pads: [["R46", "1"], ["U18", "2"]]}, - {name: "control.isense.ranges[1].isense.pwr_out", pads: [["U20", "3"], ["R47", "2"], ["U19", "1"]]}, - {name: "control.isense.ranges[1].pwr_sw.res.a", pads: [["R48", "1"], ["U20", "2"]]}, - {name: "control.isense.ranges[2].isense.pwr_out", pads: [["U22", "3"], ["R49", "2"], ["U21", "1"]]}, - {name: "control.isense.ranges[2].pwr_sw.res.a", pads: [["R50", "1"], ["U22", "2"]]}, - {name: "control.vmeas.rg.a", pads: [["R53", "1"], ["U23", "2"]]}, - {name: "control.vmeas.rg.b", pads: [["R53", "2"], ["U23", "3"]]}, - {name: "control.imeas.rg.a", pads: [["R54", "1"], ["U24", "2"]]}, - {name: "control.imeas.rg.b", pads: [["R54", "2"], ["U24", "3"]]}, - {name: "control.vclamp.r.a", pads: [["Q9", "1"], ["R55", "1"], ["Q10", "3"]]}, - {name: "control.vclamp.r.b", pads: [["Q9", "3"], ["R55", "2"], ["Q10", "1"]]}, - {name: "control.iclamp.r.a", pads: [["Q11", "1"], ["R57", "1"], ["Q12", "3"]]}, - {name: "control.iclamp.r.b", pads: [["Q11", "3"], ["R57", "2"], ["Q12", "1"]]}, + {name: "control.driver.res.res[0].b", pads: [["R39", "2"], ["R40", "1"]]}, + {name: "control.driver.res.res[1].b", pads: [["R40", "2"], ["R41", "1"]]}, + {name: "control.driver.res.res[2].b", pads: [["R41", "2"], ["R42", "1"]]}, + {name: "control.driver.res.res[3].b", pads: [["R42", "2"], ["R43", "1"]]}, + {name: "control.driver.res.res[4].b", pads: [["R43", "2"], ["R44", "1"]]}, + {name: "control.driver.res.res[5].b", pads: [["R44", "2"], ["R45", "1"]]}, + {name: "control.driver.res.res[6].b", pads: [["R45", "2"], ["R46", "1"]]}, + {name: "control.driver.res.res[7].b", pads: [["R46", "2"], ["R47", "1"]]}, + {name: "control.driver.res.res[8].b", pads: [["R47", "2"], ["R48", "1"]]}, + {name: "control.isense.ranges[0].isense.pwr_out", pads: [["U18", "4"], ["R53", "2"], ["U17", "1"]]}, + {name: "control.isense.ranges[0].pwr_sw.res.a", pads: [["R54", "1"], ["U18", "2"]]}, + {name: "control.isense.ranges[1].isense.pwr_out", pads: [["U20", "3"], ["R55", "2"], ["U19", "1"]]}, + {name: "control.isense.ranges[1].pwr_sw.res.a", pads: [["R56", "1"], ["U20", "2"]]}, + {name: "control.isense.ranges[2].isense.pwr_out", pads: [["U22", "3"], ["R57", "2"], ["U21", "1"]]}, + {name: "control.isense.ranges[2].pwr_sw.res.a", pads: [["R58", "1"], ["U22", "2"]]}, + {name: "control.vmeas.rg.a", pads: [["R61", "1"], ["U23", "2"]]}, + {name: "control.vmeas.rg.b", pads: [["R61", "2"], ["U23", "3"]]}, + {name: "control.imeas.rg.a", pads: [["R62", "1"], ["U24", "2"]]}, + {name: "control.imeas.rg.b", pads: [["R62", "2"], ["U24", "3"]]}, + {name: "control.vclamp.r.a", pads: [["Q9", "1"], ["R63", "1"], ["Q10", "3"]]}, + {name: "control.vclamp.r.b", pads: [["Q9", "3"], ["R63", "2"], ["Q10", "1"]]}, + {name: "control.iclamp.r.a", pads: [["Q11", "1"], ["R65", "1"], ["Q12", "3"]]}, + {name: "control.iclamp.r.b", pads: [["Q11", "3"], ["R65", "2"], ["Q12", "1"]]}, {name: "pd.ic.vconn", pads: [["U25", "12"], ["U25", "13"]]}, {name: "mcu.program_uart_node.a_tx", pads: [["U26", "37"], ["J4", "3"]]}, {name: "mcu.program_uart_node.b_tx", pads: [["U26", "36"], ["J4", "4"]]}, - {name: "mcu.program_en_node", pads: [["U26", "3"], ["J4", "6"], ["R58", "2"], ["C70", "1"]]}, - {name: "led.res.a", pads: [["R59", "1"], ["D14", "1"]]}, - {name: "oled.iref_res.a", pads: [["R62", "1"], ["J5", "4"]]}, - {name: "oled.device.vcomh", pads: [["J5", "3"], ["C71", "1"]]}, - {name: "conv_ovp.comp.inp", pads: [["U30", "1"], ["R69", "2"], ["R70", "1"]]}, - {name: "conv_ovp.comp.inn", pads: [["U30", "3"], ["R67", "2"], ["R68", "1"]]}, + {name: "mcu.program_en_node", pads: [["U26", "3"], ["J4", "6"], ["R66", "2"], ["C71", "1"]]}, + {name: "led.res.a", pads: [["R67", "1"], ["D14", "1"]]}, + {name: "oled.iref_res.a", pads: [["R70", "1"], ["J5", "4"]]}, + {name: "oled.device.vcomh", pads: [["J5", "3"], ["C72", "1"]]}, + {name: "conv_ovp.comp.inp", pads: [["U30", "1"], ["R77", "2"], ["R78", "1"]]}, + {name: "conv_ovp.comp.inn", pads: [["U30", "3"], ["R75", "2"], ["R76", "1"]]}, {name: "conv_latch.ic.out2", pads: [["U31", "3"], ["U31", "2"]]}, {name: "pass_temp.alert", pads: [["U32", "3"]]}, {name: "conv_temp.alert", pads: [["U33", "3"]]}, @@ -1733,15 +1786,15 @@ board.setNetlist([ {name: "rgbs.led[3].dout", pads: [["D18", "1"], ["D19", "3"]]}, {name: "rgbs.led[4].dout", pads: [["D19", "1"], ["D20", "3"]]}, {name: "rgbs.dout", pads: [["D20", "1"]]}, - {name: "fan_drv.pre.drain", pads: [["Q13", "3"], ["R79", "2"], ["Q14", "1"]]}, + {name: "fan_drv.pre.drain", pads: [["Q13", "3"], ["R87", "2"], ["Q14", "1"]]}, {name: "dac.rdy", pads: [["U37", "5"]]}, {name: "adc.vins.3", pads: [["U38", "8"]]}, {name: "adc.vins.4", pads: [["U38", "9"]]}, {name: "adc.vins.5", pads: [["U38", "10"]]}, {name: "adc.vins.6", pads: [["U38", "11"]]}, {name: "adc.vins.7", pads: [["U38", "12"]]}, - {name: "adc.ic.avdd", pads: [["U38", "1"], ["R80", "2"], ["C100", "1"], ["C101", "1"]]}, - {name: "adc.ic.dvdd", pads: [["U38", "20"], ["R81", "2"], ["C102", "1"], ["C103", "1"]]} + {name: "adc.ic.avdd", pads: [["U38", "1"], ["R88", "2"], ["C101", "1"], ["C102", "1"]]}, + {name: "adc.ic.dvdd", pads: [["U38", "20"], ["R89", "2"], ["C103", "1"], ["C104", "1"]]} ]) const limit0 = pt(-0.07874015748031496, -0.07874015748031496); diff --git a/examples/test_usb_source_measure.py b/examples/test_usb_source_measure.py index 3e53476ee..a3e2062c1 100644 --- a/examples/test_usb_source_measure.py +++ b/examples/test_usb_source_measure.py @@ -198,8 +198,9 @@ def contents(self) -> None: ) ) # resistance is low enough to slew the FET Ciss, - # but high enough to allow the clamping zeners to control an overvoltage - resistance = 45 * Ohm(tol=0.02) + # but high enough to prevent excessive loading of the opamp to instability + # and to allow the clamping zeners to control an overvoltage + resistance = 15 * 10 * Ohm(tol=0.02) max_opamp_current = 0.07 # amps max_clamp_voltage = ( VoltageLink._supply_voltage_range(self.pwr_gate_neg, self.pwr_gate_pos).upper() @@ -1052,7 +1053,7 @@ def refinements(self) -> Refinements: (["control", "isense", "ranges[0]", "isense", "res", "res", "require_basic_part"], False), (["control", "isense", "ranges[1]", "isense", "res", "res", "require_basic_part"], False), (["control", "isense", "ranges[2]", "isense", "res", "res", "require_basic_part"], False), - (["control", "driver", "res", "count"], 3), + (["control", "driver", "res", "count"], 10), (["control", "driver", "high_fet", "footprint_spec"], "Package_TO_SOT_THT:TO-220-3_Horizontal_TabUp"), (["control", "driver", "high_fet", "part_spec"], "IRF540N"), (["control", "driver", "low_fet", "footprint_spec"], "Package_TO_SOT_THT:TO-220-3_Horizontal_TabUp"),