I'm designing a test set for an energy digitizer/integrator box. It has a 12-bit, 250 MHz ADC and an FPGA and stuff.
We want to make sure that every ADC bit works, and no data bits are shorted to other bits on the PC board. So we'll apply a triangle wave that's a bit bigger than the 0..+3 volt ADC range, randomly read values, and run some sort of code to make sure every bit goes up and down and also look for shorted bits somehow.
So, here's the triangle generator. R2 would probably be a pot, to set the amplitude; the frequency doesn't matter much.
Sometimes you've just got to design dumb stuff.
Version 4 SHEET 1 952 680 WIRE 672 -208 608 -208 WIRE 784 -208 736 -208 WIRE 368 -176 336 -176 WIRE 400 -176 368 -176 WIRE 512 -176 464 -176 WIRE 528 -176 512 -176 WIRE 336 -128 336 -176 WIRE 464 -128 464 -176 WIRE 608 -112 608 -208 WIRE 656 -112 608 -112 WIRE 784 -112 784 -208 WIRE 784 -112 736 -112 WIRE 336 -16 336 -48 WIRE 464 -16 464 -48 WIRE 608 -16 608 -112 WIRE 640 -16 608 -16 WIRE 784 -16 784 -112 WIRE 784 -16 704 -16 WIRE 144 0 96 0 WIRE 288 0 224 0 WIRE 704 64 672 64 WIRE 672 80 672 64 WIRE 96 96 96 0 WIRE 128 96 96 96 WIRE 176 96 128 96 WIRE 288 96 288 0 WIRE 288 96 240 96 WIRE 336 96 288 96 WIRE 448 96 400 96 WIRE 608 96 608 -16 WIRE 608 96 528 96 WIRE 640 96 608 96 WIRE 96 112 96 96 WIRE 784 112 784 -16 WIRE 784 112 704 112 WIRE 832 112 784 112 WIRE 848 112 832 112 WIRE 640 128 608 128 WIRE 608 160 608 128 WIRE 672 176 672 144 WIRE 704 176 672 176 WIRE 96 192 96 176 FLAG 96 192 0 FLAG 832 112 out FLAG 128 96 rc FLAG 608 160 0 FLAG 336 -16 0 FLAG 464 -16 0 FLAG 368 -176 +5 FLAG 512 -176 -5 FLAG 704 64 +5 FLAG 704 176 -5 SYMBOL Digital\\schmtinv 176 32 R0 SYMATTR InstName A2 SYMATTR Value2 Vhigh=5 Vt=2.5 Vh=0.5 SYMATTR SpiceLine Td=5n SYMBOL cap 80 112 R0 WINDOW 0 68 39 Left 2 WINDOW 3 63 73 Left 2 SYMATTR InstName C1 SYMATTR Value 20n SYMBOL res 128 16 R270 WINDOW 0 74 58 VTop 2 WINDOW 3 67 58 VBottom 2 SYMATTR InstName R1 SYMATTR Value 10k SYMBOL cap 400 80 R90 WINDOW 0 77 33 VBottom 2 WINDOW 3 86 31 VTop 2 SYMATTR InstName C2 SYMATTR Value 100n SYMBOL res 544 80 R90 WINDOW 0 75 54 VBottom 2 WINDOW 3 87 54 VTop 2 SYMATTR InstName R2 SYMATTR Value 10K SYMBOL Opamps\\UniversalOpamp2 672 112 R0 WINDOW 0 36 24 Left 2 SYMATTR InstName U1 SYMBOL cap 704 -32 R90 WINDOW 0 4 -8 VBottom 2 WINDOW 3 26 -12 VTop 2 SYMATTR InstName C3 SYMATTR Value 5n SYMBOL res 752 -128 R90 WINDOW 0 -12 89 VBottom 2 WINDOW 3 -40 32 VTop 2 SYMATTR InstName R3 SYMATTR Value 1Meg SYMBOL diode 672 -192 R270 WINDOW 0 47 -23 VTop 2 WINDOW 3 75 57 VBottom 2 SYMATTR InstName D1 SYMATTR Value 1N4148 SYMBOL voltage 336 -144 R0 WINDOW 0 -77 37 Left 2 WINDOW 3 -71 69 Left 2 SYMATTR InstName V1 SYMATTR Value 5 SYMBOL voltage 464 -144 R0 WINDOW 0 50 37 Left 2 WINDOW 3 55 70 Left 2 SYMATTR InstName V2 SYMATTR Value -5 TEXT -192 152 Left 2 !.tran 0 10m 0 20n TEXT -248 -88 Left 2 ;NC7S14 Hyst~~1V at Vcc=5 TEXT -256 -128 Left 2 ;ADC Test Triangle Generator TEXT -184 -48 Left 2 ;period ~~ 0.81 RC TEXT -152 -8 Left 2 ;F ~~ 7 KHz TEXT -208 64 Left 2 ;J Larkin Feb 19, 2016