Fast buffer idea

May 14, 2017 125 Replies

Diamond buffers are kind of cool, emitter feedback makes them linear and they don't have much phase shift, but they kind of suck balls whenever you want to actually move appreciable current with them which unfortunately is exactly what you'd want to do with a buffer.



I came up with this thing that uses a sort of MOSFET-BJT Sziklai pair input-thing to drive boosting transistors to pump more dynamic current into the output follower's bases to speed up the transitions. This is the sim of it pushing a 100MHz square wave into a load using jellybean transistors:



formatting link



Fast recovery didoes from the bases of the boosting transistors to ground and Vcc seem to speed up the transitions a lot.



Version 4 SHEET 1 1804 1564 WIRE -16 -592 -16 -672 WIRE 160 -592 -16 -592 WIRE 320 -592 160 -592 WIRE 480 -592 320 -592 WIRE 624 -592 480 -592 WIRE 896 -592 624 -592 WIRE -16 -480 -16 -592 WIRE 320 -480 320 -592 WIRE 160 -464 160 -592 WIRE 480 -464 480 -592 WIRE 624 -352 624 -592 WIRE -16 -320 -16 -400 WIRE 160 -320 160 -400 WIRE 160 -320 -16 -320 WIRE 320 -304 320 -400 WIRE 480 -304 480 -400 WIRE 480 -304 320 -304 WIRE 560 -304 480 -304 WIRE -16 -256 -16 -320 WIRE 896 -160 896 -592 WIRE -576 -112 -576 -144 WIRE -16 -112 -16 -176 WIRE 624 -112 624 -256 WIRE 624 -112 -16 -112 WIRE 704 -112 624 -112 WIRE 832 -112 768 -112 WIRE -16 -32 -16 -112 WIRE -576 -16 -576 -32 WIRE -576 -16 -688 -16 WIRE -64 -16 -224 -16 WIRE -576 16 -576 -16 WIRE 896 16 896 -64 WIRE -688 32 -688 -16 WIRE 320 96 320 -304 WIRE -576 144 -576 96 WIRE -16 144 -16 64 WIRE 160 144 -16 144 WIRE 256 144 160 144 WIRE 896 176 896 16 WIRE 544 192 320 192 WIRE 160 208 160 144 WIRE -16 336 -16 144 WIRE 160 336 160 272 WIRE 160 336 -16 336 WIRE 320 336 160 336 WIRE 544 384 544 192 WIRE 896 384 896 256 WIRE 896 384 544 384 WIRE 992 384 896 384 WIRE 1152 384 1072 384 WIRE 1312 384 1232 384 WIRE 1472 384 1392 384 WIRE 1600 384 1472 384 WIRE 1696 384 1600 384 WIRE -416 400 -576 400 WIRE -224 400 -224 -16 WIRE -224 400 -416 400 WIRE 160 432 -16 432 WIRE 320 432 896 16 WIRE 320 432 160 432 WIRE -576 448 -576 400 WIRE -416 448 -416 400 WIRE 160 496 160 432 WIRE 1472 512 1472 384 WIRE 1600 512 1600 384 WIRE 896 528 896 384 WIRE 544 560 544 384 WIRE 544 560 320 560 WIRE -576 576 -576 528 WIRE -416 576 -416 528 WIRE -16 608 -16 432 WIRE 160 608 160 560 WIRE 160 608 -16 608 WIRE 256 608 160 608 WIRE 1472 704 1472 576 WIRE 1600 704 1600 592 WIRE -16 784 -16 608 WIRE 896 784 320 336 WIRE 896 784 896 608 WIRE -224 864 -224 400 WIRE -64 864 -224 864 WIRE 896 912 896 784 WIRE -16 960 -16 880 WIRE 624 960 -16 960 WIRE 704 960 624 960 WIRE 832 960 768 960 WIRE -16 1008 -16 960 WIRE 624 1072 624 960 WIRE 320 1120 320 656 WIRE 480 1120 320 1120 WIRE 560 1120 480 1120 WIRE -16 1152 -16 1088 WIRE 144 1152 -16 1152 WIRE -16 1216 -16 1152 WIRE 320 1216 320 1120 WIRE 144 1232 144 1152 WIRE 480 1232 480 1120 WIRE -16 1360 -16 1296 WIRE 144 1360 144 1296 WIRE 144 1360 -16 1360 WIRE 320 1360 320 1296 WIRE 320 1360 144 1360 WIRE 480 1360 480 1296 WIRE 480 1360 320 1360 WIRE 624 1360 624 1168 WIRE 624 1360 480 1360 WIRE 896 1360 896 1008 WIRE 896 1360 624 1360 WIRE -16 1472 -16 1360 FLAG 1696 384 Out IOPIN 1696 384 Out FLAG -16 1472 Vee FLAG -16 -672 Vcc FLAG -688 32 0 FLAG -576 -144 Vcc FLAG -576 144 Vee FLAG -416 576 0 FLAG -576 576 0 FLAG 1472 704 0 FLAG 1600 704 0 SYMBOL npn 832 -160 R0 WINDOW 3 67 65 Left 2 SYMATTR Value 2SCR514P SYMATTR InstName Q1 SYMBOL pnp 832 1008 M180 SYMATTR InstName Q2 SYMATTR Value 2SAR514P SYMBOL res 880 160 R0 SYMATTR InstName R1 SYMATTR Value 10 SYMBOL res 880 512 R0 SYMATTR InstName R2 SYMATTR Value 10 SYMBOL nmos -64 784 R0 SYMATTR InstName M1 SYMATTR Value RHP030N03 SYMBOL pmos -64 64 M180 SYMATTR InstName M2 SYMATTR Value RRS100P03 SYMBOL res -32 1200 R0 SYMATTR InstName R3 SYMATTR Value 47k SYMBOL res -32 -496 R0 SYMATTR InstName R4 SYMATTR Value 47k SYMBOL voltage -576 -128 R0 WINDOW 123 0 0 Left 2 WINDOW 39 0 0 Left 2 SYMATTR InstName V1 SYMATTR Value 5 SYMBOL voltage -576 0 R0 WINDOW 123 0 0 Left 2 WINDOW 39 0 0 Left 2 SYMATTR InstName V2 SYMATTR Value 5 SYMBOL res -432 432 R0 SYMATTR InstName R5 SYMATTR Value 100k SYMBOL voltage -576 432 R0 WINDOW 3 -190 227 Left 2 WINDOW 123 0 0 Left 2 WINDOW 39 0 0 Left 2 SYMATTR Value PULSE(-3 3 0 0.1n 0.1n 5n 10n) SYMATTR InstName V3 SYMBOL res 1088 368 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R6 SYMATTR Value 50 SYMBOL cap 1456 512 R0 SYMATTR InstName C1 SYMATTR Value 100p SYMBOL ind 1248 368 R90 WINDOW 0 5 56 VBottom 2 WINDOW 3 59 53 VTop 2 SYMATTR InstName L1 SYMATTR Value 100nH SYMBOL res 1584 496 R0 SYMATTR InstName R7 SYMATTR Value 50 SYMBOL res 1408 368 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R8 SYMATTR Value 1 SYMBOL pnp 256 656 M180 SYMATTR InstName Q3 SYMATTR Value 2N3906 SYMBOL npn 256 96 R0 SYMATTR InstName Q4 SYMATTR Value 2N3904 SYMBOL res 304 -496 R0 SYMATTR InstName R9 SYMATTR Value 100 SYMBOL pnp 560 -256 M180 SYMATTR InstName Q5 SYMATTR Value 2N3906 SYMBOL npn 560 1072 R0 SYMATTR InstName Q6 SYMATTR Value 2N3904 SYMBOL res 304 1200 R0 SYMATTR InstName R10 SYMATTR Value 100 SYMBOL schottky 144 208 R0 SYMATTR InstName D1 SYMATTR Value BAT54 SYMATTR Description Diode SYMATTR Type diode SYMBOL diode 496 -400 R180 WINDOW 0 24 64 Left 2 WINDOW 3 24 0 Left 2 SYMATTR InstName D4 SYMATTR Value RF05VA1S SYMBOL res -32 -272 R0 SYMATTR InstName R11 SYMATTR Value 4.7k SYMBOL cap 144 -464 R0 SYMATTR InstName C2 SYMATTR Value 5p SYMBOL res -32 992 R0 SYMATTR InstName R12 SYMATTR Value 4.7k SYMBOL cap 128 1232 R0 SYMATTR InstName C3 SYMATTR Value 5p SYMBOL FerriteBead 736 960 R90 WINDOW 0 -16 0 VBottom 2 SYMATTR InstName L3 SYMATTR Value 22n SYMATTR SpiceLine Ipk=0.5 Rser=0.044 Rpar=13 Cpar=1.6p mfg="Wurth Elektronik" pn="742 792 711 0" SYMBOL FerriteBead 736 -112 R90 WINDOW 0 -16 0 VBottom 2 SYMATTR InstName L2 SYMATTR Value 22n SYMATTR SpiceLine Ipk=0.5 Rser=0.044 Rpar=13 Cpar=1.6p mfg="Wurth Elektronik" pn="742 792 711 0" SYMBOL diode 496 1296 R180 WINDOW 0 24 64 Left 2 WINDOW 3 24 0 Left 2 SYMATTR InstName D3 SYMATTR Value RF05VA1S SYMBOL schottky 176 560 R180 WINDOW 0 24 64 Left 2 WINDOW 3 24 0 Left 2 SYMATTR InstName D2 SYMATTR Value BAT54 SYMATTR Description Diode SYMATTR Type diode TEXT -688 704 Left 2 !.tran 800u


The output, even before the inductor, doesn't follow the input very well, and it's a heap of parts. Why not use a fast opamp?

John Larkin Highland Technology, Inc lunatic fringe electronics

What are your recommendations to handle a 100MHz square wave?

At least at the junction of R1 and R2, I think it follows it pretty good for being made up of mostly glorified relay switching BJTs! Trying to drive any kind of load with a simpler diamond topology using the same jellybeans at 100MHz and all you get is slop. That draws a ton of quiescent current.

I don't think it's that many parts, you can have multiple transistors and diodes in the same package! It's just a lot of lines.

Fast op-amps that can put out enough current to drive coax are pricey...

Anything that has the slew rate to handle a full-swing 100MHz square wave and also drive a cable is gonna cost $$$...

What are the design goals? If you want speed and low distortion, you should drop the mosfets, and the jelly bean transistors. Use the highest ft bipolara that you can find, like 10Ghz. The low gm of the mosfets really kill things.

I haven't examined the effectiveness of the additional boost circuit, but it is important to make sure the basic design is optimised first. Typically, something like a 1:4 build up in current from the first bip follower to the second bip follower. In an asic design I might use the same current and use multiple devices in parallel. I would suggest trying an active current source to the input followers, to get the drive to the second follower, and remove the boost circuit. Use standard configurations, until you can prove that a bright idea is truly better.

On the spice side, the setting looked f'uped. Why are you running so many cycles, so that the edge rates are ~10ns in a 200us plot! You should only have to run for 50ns.

Also, the schematic has s/c diodes.

I haven't run it yet, as it wont due to errors in the file you pasted.

-- Kevin Aylward

formatting link
- SuperSpice
formatting link

If the object is to buffer a logic level, some 13-cent TinyLogic gate, like an NL37WZ16US or something.

If it needs to be linear, there are tons of opamps to consider: THS4222, AD8007, whatever.

The posted circuit drives a lowpass filter to make a small sort of sine wave from a giant square-wave drive, so a single transistor buffer should work. Or maybe no buffer at all.

John Larkin Highland Technology, Inc lunatic fringe electronics

Sort of a poor-mans OPA663, to drive high-frequency pulses down a several meter length of RG-58 coax.

Any suggestions for transistors? With Spice models? I figured it would make sense to see if the topology is at all valid with slower transistors first, because those fast parts are much more difficult to work with.

There are probably some initial conditions I need to set.

Ok, I'll fix it up and see if it can be optimized.

I doubt the load is a realistic "model" for a length of cable. I saw one on EDN but it looks pretty complicated, about 5 controlled sources in series. It'll take a while to read and understand how they came up with it...

The problem with a simple active current source to the input followers is quiescent current draw - if you optimize the follower current source for the gain you need at the highest frequency the buffer draws a huge helping of quiescent current sitting around doing nothing.

IC implementations solve this in various clever ways using - you guessed it - _more_ active current sources.

Is your object to drive a length of coax? If it's terminated, you can just ignore the cable entirely. Or poke in a Spice transmission line to explore mismatch consequences.

John Larkin Highland Technology, Inc lunatic fringe electronics

Ya, exploring the "mismatch" consequences I'd like to do. How do I do that? I haven't used Spice transmission line models before...

Ideally, yes, the length will be terminated in approximately its characteristic impedance.

The signal before the filter at the junction of R1 and R2 is actually pretty good. I don't know of any op amp that can do that.

But you are right about the complexity. It seems a much simpler circuit could do the same.

It probably could, but the "gimmick" here that requires the extra parts is that it draws very little quiescent current. When there's no signal the output followers are biased very low, almost to cut-off.

I've lowered the frequency to 5MHz, and changed the risetime to 1ns, more in line with what those jellybean transistors are used to. Here are the waveforms:

formatting link

Input is in red and output into 50 ohm load is in green. Blue shows the current pulses the "boosting" transistors are pushing into the output devices to speed the edges - there's a positive-going pulse as the increase in output current drives them into conduction, and then a negative-going pulse as the output swings the other way and they conduct briefly in the reverse direction, until enough charge is pulled out of their bases for them to snap off again.

It's fun to play with. Just plop the TLINE thing onto your sheet and edit the impedance and time delay. It's easiest at first to ground both ends of the lower side, or things get a little more complex.

formatting link

You can see the pulse reflection from the 100 ohm mismatch. Jeroen's lowpass filter absorbs that nicely.

TLINE is lossless, usually good enough. There is also LTLINE, a lossy transmission line.

Set the sim DT smaller than the rise times you expect. LT Spice can do dumb things with time steps.

John Larkin Highland Technology, Inc lunatic fringe electronics

The TI THS series really screams. There are parts with 1.8 GHz GBW and huge output currents. Or the Analog Devices AD800x parts.

John Larkin Highland Technology, Inc lunatic fringe electronics

Both are slow. 2GHz or so.

These look interesting:

LTC6268 4GHz

formatting link

LTC6409 10GHz 1.1nV/rt(Hz)

formatting link

But the TI parts have huge voltage swing and current capability. Everyone else is ratcheting down voltage as speed goes up.

Impressive, except for the 5 volt supply.

I used a similar part, LTC6402 differential ADC driver. It was flakey, so we had to redesign with an ADA4950.

John Larkin Highland Technology, Inc lunatic fringe electronics

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required