Designing a *linear* MOSFET driver stage

I'm looking for a MOSFET driver circuit that can be placed between an op-amp and a power MOSFET to operate the transistor as a linear amplifier (as opposed to a switch).

Background

I'm developing an electronic load circuit that must be able to step a load in about 1µs. The most important step size is small, say 100mA, although once I get that worked out I'd probably like to also attain a large signal step speed of 2.5A/µs. It should accommodate sources from 1 to 50V, currents from 0 to 5A, and will be able to dissapate about 30W.

Here's what the circuit looks like at present. Since appearing in earlier questions I have replaced the MOSFET with the smallest capacitance device I was able to find (IRF530N -> IRFZ24N), and moved to a reasonably wide bandwidth, high slew-rate op-amp (LM358 -> MC34072) while staying in jelly-bean territory. I'm currently running a gain of about 4 on the op amp for stability purposes, which gives me a bandwidth in the neighborhood of 1MHz. Further background below for anyone interested.

The problem

While the circuit performs reasonably well, the problem now is that the stability is, well, not stable :) It doesn't oscillate or anything like that, but the step response can range from overdamped (no overshoot) to quite underdamped (20% overshoot, three bumps), depending on the source being loaded. Lower voltage and resistive sources are problematic.

My diagnosis is that the incremental input capacitance of the MOSFET is sensitive to both the voltage of the source being loaded as well as Miller effect produced by any source resistance, and that this produces in effect a "wandering" pole from $R_o$ of the op amp interacting with the source-dependent $C_{gate}$ of the MOSFET.

My solution strategy is to introduce a driver stage between the op-amp and the MOSFET to present a much lower output impedance (resistance) to the gate capacitance, driving the wandering pole up into the tens or hundreds of MHz range where it can't do any harm.

In searching for MOSFET driver circuits on the web, what I find mostly assumes one wants to "switch" the MOSFET completely on or off as quickly as possible. In my circuit, I want to modulate the MOSFET in its linear region. So I'm not finding quite the insight I need.

My question is: "What driver circuit might be suitable for modulating the conductivity of the MOSFET in its linear region?"

I saw Olin Lathrop mentioned in passing in another post that he would use a simple emitter follower for something like this from time-to-time, but the post was about something else so it was just a mention. I simulated adding an emitter follower between the op amp and gate and it actually worked wonders for the rise stability; but the fall went all to heck so I'm figuring it's not quite as simple as I might have hoped.

I'm inclined to think I need something roughly like a complementary BJT push-pull amplifier, but expect there are nuances that distinguish a MOSFET driver.

Can you sketch out the rough parameters of a circuit that might do the trick in this instance?

Further background for the interested

The circuit was originally based on the Jameco 2161107 electronic load kit, recently discontinued. Mine now has about 6 fewer parts than its original complement :). My current prototype looks like this for those who, like me, are interested in that sort of thing :)

The source (generally a power supply under test) is connected to the banana jack/binding posts on the front. A jumper on the left of the PCB selects internal or external programming. The knob on the left is a 10-turn pot allowing a constant load between 0-3A to be selected. The BNC on the right allows an arbitrary waveform to control the load at the level of 1A/V, for example, with a square wave for stepping the load. The two light-blue resistors comprise the feedback network, and are in machined sockets to allow the gain to be changed without soldering. The unit is currently powered by a single 9V cell.

Anyone who wishes to trace my learning footsteps will find the excellent help I've received from other members here:

I'm thoroughly amazed that a simple project like this has been so rich a motivator for learning. It's given me occasion to study quite a number of topics that would have been so much dryer if undertaken without a concrete objective in hand :)

• To keep the zero temperature crossing point of the transfer curve stable, a constant current source with a bandgap device is used. This, as well as device with very low transcoductance is the key parameters to design MOSFET in linear area. Very important is to obtain the transfer function (Vgs vs Id) for this particular device that you use, then make the necessary shift in horizontal (Vgs) axis on the curves provided by the manufactures (inaccurate in most cases!). Commented Aug 27, 2015 at 2:42
• For buffers, you might want to study LH0002 or LH0033 (ti.com/lit/an/snoa725a/snoa725a.pdf). They were quite fast. LH0002 is simple enough that could probably be built from discretes. I doubt the ICs could be found these days. Commented Aug 27, 2015 at 23:43
• Awesome, thanks @gsills! :) I'm printing that sheet off right now to give it a close study :) Commented Aug 28, 2015 at 0:21

This is indeed an interesting problem, because of the variation of effective load capacitance with the load resistance due to Mr. Miller, and your need to not overcompensate it.

I suspect a biased push-pull BJT output driver would work fine- maybe 4 small BJTs (2 connected as diodes) a couple bias resistors plus maybe a couple ohms each of emitter degeneration.

simulate this circuit – Schematic created using CircuitLab

If I was doing this I'd be tempted to throw a beefier, but still fairly inexpensive, amplifier at it such as an LM8261 instead.

• Thanks so much Spehro, this is exactly the sort of thing I was looking for! :) I'll add this into the schematic this evening and learn what I can from it on simulation. Then I think I'll whip it up on a little daughter board and solder it into the prototype; I happen to have open pads in the right place from where I removed the gate resistor. I'll report back on how it goes :) Commented Aug 27, 2015 at 18:29
• This worked @Spehro! Full outcome report below. Great learning experience, but will be testing an LM8261 for the final circuit :) Commented Sep 2, 2015 at 5:20

Outcome Report

Okay, the short story is: adding a discrete buffer worked! That said, I don't think I'll design my circuit this way, rather I'll go with the recommendation of @Spehro and @WhatRoughBeast and just use an op amp with higher current output capability, basically having the buffer stage built right into the op amp.

Here's the circuit I used. Pretty similar to the one @Spehro provided, but actually exactly the one in the LH0002 datasheet that @gsills recommended. Basically it used exactly the same parts (bias resistor value 5k instead of 1k) just a few different connections, and ... the datasheet said the circuit had a current gain of 40,000; well, my gain greed totally took over and I decided to go for the two-stage version:

It simulated nicely so I built it up on a 5 x 7 bit of veroboard and installed it as a daughter board on my prototype:

And voila! pretty darn close to 1µs rise (1.120µs) and solid as a rock with no overshoot all the way from a little above 0V up to 30V and current steps from 100mA to 2.5A.

The fall is a bit longer at 1.42µs:

Now this was actually a bit of a pleasant surprise, because the circuit wasn't particularly stable on its own when I tested it on the bench before installing it. Who knew a buffer circuit like this could oscillate all on its own? Well, everybody except me apparently, I discovered once I searched on it :) And really high frequencies too, like 25MHz. I still don't completely understand why that is, but apparently an emitter follower is very close to a Colpitts oscillator, this circuit is a quad-pack of emitter followers, and just the wrong bits of parasitic reactance can set the thing singing. I expect my test leads were all the parasitics it needed. Also, some input resistance is used to settle it down (by "spoiling" the $Q$ of the tank circuit I believe), so perhaps the $R_o$ of the op amp helps with the solution too.

So this was definitely a rich learning experience. I finally got to really get my head wrapped around push-pull BJT amps and I'm really pleased with the circuit's performance now. I think I can get below 1µs by tweaking the gain to get a little more bandwidth, maybe a gain of 3 instead of 4.

That said, I don't think adding a discrete driver stage to the "production" circuit is the best bet, so I've ordered up an evaluation board and samples of the LM8261 @Spehro recommended. It's definitely an impressive op amp. I didn't know there was such a thing as an op amp that could drive "unlimited capacitance". The datasheet shows a circuit driving 47nF, which is more than I'll ever need.

So we'll see how that goes once the parts arrive :)

While I generally agree with Spehro, there are a few things I think you should pay attention to.

First, you MUST add some decoupling to your power line. A 9-volt battery is not going to have the performance you need. Try about 10 uF, tantalum, as close to the amp as you can get. From the picture, it looks as if there may be an electrolytic serving this function, but you don't show it on your schematic. Even better, get a 12-volt (preferably linear) supply, and give up on batteries entirely. (You'll still need decoupling, mind, but at least you don't have to worry about the battery running low.)

Second, try connecting your scope ground to the grounded side of the power resistors, rather than the input wire. This should not make a big difference, but it's a good idea anyways.

Third, Spehro is being too gentle - your op amp won't do what you want. First, its settling time is listed as 1.1 usec to 0.1%, and that's without any exterior stages. Second, your gate is providing a 370 pF load on the output, and this is very likely a source of instability. With a nominal settling time of 400 nsec, particularly with a specified load of 500 pF, the LM8261 is a much better choice. A caution, though - the wider bandwidth of the LM8261 will allow the possibility of some other source of oscillation, so be prepared. The layout of your pcb looks tight enough that this shouldn't be a problem, but you never know.

Fourth, if you really hope to load a 50 volt supply to 5 amps, you must resign yourself to dissipating 250 watts. 30 watts is just wishful thinking. This will almost certainly require multiple FETs and a much larger heatsink, probably with forced air cooling.

• Regarding the battery performance, are you saying you think the internal resistance (about 1.7Ω I just discovered) would be enough to cause a voltage dip during load stepping? The circuit does have a 100µF electrolytic as well as a 100nF ceramic in parallel with the battery. Apologies, didn't think to include that in the schematic. On the probe ground, I usually do use the resistor ground, it was just getting a little scarred up so I thought I'd spare it awhile :) I pick up a bit more noise, but the waveform hadn't changed noticeably. I'll get something more precise in there for a later build. Commented Aug 27, 2015 at 5:00
• On the power dissipation, yes, of course I didn't mean to imply it could do 50V and 5A both at the same time :) At some point I might give some thought to a protection circuit for that. In the meantime I just keep one hand on the heatsink while I'm using it :) Commented Aug 27, 2015 at 5:03
• @scanny Internal impedance of the batteries is not necessarily constant across the spectrum and will increase as the battery is depleted. You can even read stories about it: ganssle.com/articles/Exofoolishness.htm Commented Aug 27, 2015 at 8:22
• @WhatRoughBeast I think power dissipation in MOSFET depends only on the voltage drop across the MOSFET and the current flow: Pdiss=VDS × IDS. That is the main reason that MOSFETS dissipates more in linear region. SOA diagram it is very important in this case, to minimize unstable conditions. Commented Aug 27, 2015 at 9:15

Just a suggestion ... I was looking for a LM8261 replacement, in SOT23-5 package, to drive MOSFETS like IXTN90N25L (23nF Ciss) in linear mode. Found the LM7321 with even higher output current rating and similar bandwidth as LM8261. Of course, by removing the SOT23-5 restriction, you may find other higher output current op amps, just use the ti.com selection.

Emitter Followers are notorious for oscillation with capacitive cable loads. A small series R can make it stable.

I would start by sticking a capacitor over the feedback resistor R10. Then adding a resistor divider for the mosfet, for the purpose of biasing the mosfet when it starts in its linear(triode) region.

The reasoning I have for this is: extremely many opamps oscillate without a capacitor for limiting bandwidth in the feedback loop. I personally consider it mandatory more often than not.

If the mosfet starts in its linear region, the opamp has the possibility of a good starting point, where it can slowly react to changes instead of suddenly reaching a treshold voltage. Just make the resistance large.

simulate this circuit – Schematic created using CircuitLab

• I actually started with the "in-the-loop" compensation scheme you suggest. Unfortunately it kills the bandwidth when configured to accommodate the worst-case gate capacitance. It also makes the feedback circuit third-order, which may make the step response even slower. 20µs rise time was the best I could do with this scheme. The idea of the driver is to effectively isolate the op-amp from the MOSFET so no compensation is necessary and the maximum available bandwidth can be preserved. On the resistive voltage divider, I'm not sure I see the merit of giving the op-amp more to work against. Commented Aug 27, 2015 at 18:47
• "Low-pass filter in the feedback loop." It looks more like a high-pass filter. Commented Aug 28, 2015 at 9:33
• @scanny ok, did you try a series resistor between the opamp and the gate? (around 50 ohms) and adding a second feedback loop?. (see AN-968 from ADI) Commented Aug 28, 2015 at 15:14
• Yep, that was actually part of the original circuit (47Ω), but once the feedback capacitor was removed there was no longer any purpose for it and leaving it there would only add to $R_o$, moving the $R_o + C_{iss}$ pole downward in frequency and further degrading stability. Commented Aug 28, 2015 at 18:46