This makes a precise (0.2%) 20 mA current source that can be mux'd into a 50 ohm photodiode amp input to calibrate all the downstream signal chain. I can get the LM4040 and the 125 ohm resistor both in
0.1%.The PNP keeps the source closed-loop all the time, and keeps me from over-driving the mux, which is powered from 3.3 volts.
Version 4 SHEET 1 1088 680 WIRE -192 -176 -336 -176 WIRE -16 -176 -192 -176 WIRE 320 -176 -16 -176 WIRE -336 -128 -336 -176 WIRE -192 -128 -192 -176 WIRE 320 -128 320 -176 WIRE -336 0 -336 -48 WIRE 80 16 -96 16 WIRE 144 16 80 16 WIRE 320 16 320 -48 WIRE 320 16 224 16 WIRE 80 32 80 16 WIRE -16 80 -16 -176 WIRE -96 96 -96 16 WIRE -48 96 -96 96 WIRE 320 96 320 16 WIRE 80 112 80 96 WIRE 80 112 16 112 WIRE 144 112 80 112 WIRE 272 112 224 112 WIRE -192 128 -192 -48 WIRE -48 128 -192 128 WIRE -16 176 -16 144 WIRE -192 192 -192 128 WIRE 320 224 320 192 WIRE 512 224 320 224 WIRE 512 256 512 224 WIRE 704 272 560 272 WIRE -16 304 -16 256 WIRE 320 304 320 224 WIRE 592 320 560 320 WIRE 704 320 704 272 WIRE -192 352 -192 272 WIRE 256 352 -192 352 WIRE 592 368 592 320 WIRE 512 384 512 336 WIRE -192 400 -192 352 WIRE 704 432 704 400 WIRE -192 512 -192 480 WIRE 320 512 320 400 WIRE 512 512 512 464 FLAG -336 0 0 FLAG -16 304 0 FLAG -192 512 0 FLAG 320 512 0 FLAG 512 512 0 FLAG 592 368 0 FLAG 704 432 0 SYMBOL pmos 272 192 M180 WINDOW 0 98 62 Left 2 WINDOW 3 81 28 Left 2 SYMATTR InstName M1 SYMATTR Value BSS84 SYMBOL Opamps\\UniversalOpamp2 -16 112 R0 WINDOW 0 40 31 Left 2 SYMATTR InstName U1 SYMBOL pnp 256 400 M180 WINDOW 0 -71 115 Left 2 WINDOW 3 -98 79 Left 2 SYMATTR InstName Q1 SYMATTR Value BC857B SYMBOL res 240 96 R90 WINDOW 0 77 58 VBottom 2 WINDOW 3 80 58 VTop 2 SYMATTR InstName R1 SYMATTR Value 1K SYMBOL res 304 -144 R0 WINDOW 0 64 40 Left 2 WINDOW 3 61 78 Left 2 SYMATTR InstName R2 SYMATTR Value 125 SYMBOL res 240 0 R90 WINDOW 0 -58 61 VBottom 2 WINDOW 3 -46 61 VTop 2 SYMATTR InstName R3 SYMATTR Value 1K SYMBOL cap 64 32 R0 WINDOW 0 44 17 Left 2 WINDOW 3 46 48 Left 2 SYMATTR InstName C1
SYMBOL voltage -336 -144 R0 WINDOW 0 48 40 Left 2 WINDOW 3 53 77 Left 2 SYMATTR InstName V1 SYMATTR Value 6 SYMBOL voltage -192 -144 R0 WINDOW 0 60 25 Left 2 WINDOW 3 60 61 Left 2 SYMATTR InstName V2 SYMATTR Value 2.5 SYMBOL res -208 176 R0 WINDOW 0 49 41 Left 2 WINDOW 3 50 73 Left 2 SYMATTR InstName R4 SYMATTR Value 1K SYMBOL res -208 384 R0 WINDOW 0 54 53 Left 2 WINDOW 3 53 86 Left 2 SYMATTR InstName R5 SYMATTR Value 1K SYMBOL sw 512 352 R180 WINDOW 0 64 71 Left 2 WINDOW 3 51 37 Left 2 SYMATTR InstName S1 SYMATTR Value SWX SYMBOL res 496 368 R0 WINDOW 0 -55 44 Left 2 WINDOW 3 -53 75 Left 2 SYMATTR InstName R6 SYMATTR Value 50 SYMBOL voltage 704 304 R0 WINDOW 0 26 110 Left 2 WINDOW 3 -154 183 Left 2 WINDOW 123 0 0 Left 2 WINDOW 39 0 0 Left 2 SYMATTR InstName V3 SYMATTR Value PULSE(-1 1 10m 0 0 10m) SYMBOL voltage -16 272 R180 WINDOW 0 -78 28 Left 2 WINDOW 3 -69 -1 Left 2 SYMATTR InstName V4 SYMATTR Value 6 TEXT -80 488 Left 2 !.model SWX SW(VT=0 Ron=1u) TEXT 24 448 Left 2 !.tran 40m TEXT 456 -8 Left 2 ;ESPM2 20 mA TEST TEXT 456 40 Left 2 ;CURRENT SOURCE TEXT 480 88 Left 2 ;JL Mar 8, 2017 TEXT -160 -48 Left 2 ;LM4040 TEXT 16 176 Left 2 ;OPA197