Current Mode Amplifier with LM3900

I designed a new Current Mode Amplifier (CMA), a kind of transconductance amplifier, using the LM3900. Input voltages, whether audio signal or control voltages, are added at the inputs. The output is nominally a current, which for this present application (line drivers, with voltage amplification) is tranformed into a voltage using a load resistor. The circuit works entirely Class A, and has ≥ 10V output voltage compliance using a +15V supply. Numerous other applications are possible by using the current output directly.

I also experimented with digital schematic entry, by test-driving KiCad 5.1 with this circuit. I do not like this tool. This software was enabled for my Raspberry Pi 4B computer, which I use as a CAD workstation. 

Here is the schematic of a Current Mode Amplifier created with the LM3900:
LM3900 Current Mode Amplifier (Dual Channel)

The first goal of this design was to enable multiple voltage level I/O translations for synthesizer front panel line drivers, yet all working from a +15V unipolar power supply. For example, driving 3.74V (+4dBm) into 600Ω for audio signals, or +10V into ≋ 100-200KΩ for control voltages. The circuit also needed the ability to accept 0V in, and to produce 0V out.

A second goal was to enable wideband audio output while using the LM3900, while not compromising DC performance for slower signals (e.g. control voltages). It was desired have 20KHz outputs without significant distortion or phase delay. The LM3900 has asymmetrical slew-rate limits, but it does have very good bandwidth (2.5 MHz) and moderate open loop gain (≅70 dB). For audio frequencies ≤ 20 KHz, the LM3900 can deliver power to a load by keeping the ∆V smaller. Here, a ∆V of 2.0V was chosen. While the op amp is able to swing nearly 14.5V on a +15V supply, in this scenario, less is more, due to slew-rate limits.

So, the trick to this solving all these system problems with LM3900 was to create a Voltage Controlled Current Source (VCCS), using the LM3900 voltage summers to drive PNP transistors. In so doing, by working from a large offset voltage (+13V), the op amp output ∆V is further limited to a modestly small range while retaining high output voltage compliance, as well as other useful properties. The theory of operation will now be explained.

The op amps drive the bases of PNP transistors Q2/Q3 through a 30K resistor (R14 & R26). The transistors have their emitters tied to a +13V reference voltages through 374Ω 1% resistors (R15 & R27). These are the points Ve1 and Ve2 in the schematic. The summing op amps IC1B & IC1C reflect the inverting addition result about this +13V reference voltage. The op amp output drives the PNP transistor so as to create 0-2V of ∆V at the Ve1/Ve2 feedback points, from the emitter/resistor junction. By programming a ∆2V swing from 13V to 11V at Ve1/Ve2 across a 374Ω 1% resistor, an emitter current ranging from 0 mA to 5.35 mA is precisely developed. The LM3900 has plenty of output range to fully turn off the transistor, based on signal swing ability. The base voltage in the negative feedback loop rides about ≈ -640 mV below the emitter for all Ve1/Ve2 voltages 13-11V.

With a high-β low-noise transistor like the 2N5087, the vast majority of the emitter current is propagated through the collector into the load. Separately, the +13V reference voltage offers very good Vec to allow the collector to have a large output voltage compliance ≥ 10V into a load.

What is also interesting about the use of a VCCS for current mode output is that the LM3900 constantly works at a G ≡ 1, for all possible voltage amplifications! The choice of R|L load resistor (RL1 & RL2) is completely independent of the negative feedback that keeps this loop balanced. Along with ∆V ≤ 2.0V, this circuit arrangement enables wideband operation. In addition, due to the way the negative feedback is derived, the overall I/O transfer function is non-inverting! This is much more useful for synthesizer applications, in that a inverting summer op amp does not have to be followed by another inverting amplifier (or another circuit that uses inversion), in order to have a non-inverting transfer function.

While voltage gain is available, an input voltage range of 5V or 10V has to be attenuated, in order to keep the internal ∆V of 2.0V, with G ≡ 1. This is accomplished for 5V input with R2/R4 and R3/R5. As show in the schematic, R4 and R5 are considered in parallel with their respective 200KΩ input resistors, so as to effect an overall 5:2 DC attenuation. Other alternative voltage range inputs can be similarly scaled, or a direct 2V input can be accomodated. Another alternative would have been to scale the input resistor versus feedback resistors (e.g. R8:R13 and R22:R25), but I prefer to keep the 1:1 ratio with the 200K 1% resistors. This is because the 200K in combination with attenuators allows programmable scaling from 2V (using 0Ω jumpers instead of attenuator resistors) through to larger input swings (using various attenuator values).

This circuit really is fantastic! It easily does 20 KHz bandwidth, including driving into 600Ω or smaller loads. In an earlier incarnation, the compensation capacitors C1/C2 were absent. That version of the circuit had zero phase shift at 20 KHz for sinusoidal inputs! It also could do 25 KHz, or more. But it also suffered from deleterious overshoot and undershoot dynamics when presented with sawtooth or pulse input waveforms. A little bit of frequency roll-off cleans up the signal dramatically. This also exemplifies the typical stability of the LM3900 device, the edges become very smooth, CMOS-like (e.g. RC) shapes.

The ∆2V/374Ω combination for current generation is also magical: the 5.35 mA output current scales to numerous useful output voltage ranges very closely with standard EIA-96 1% resistor values.

The voltage references were separately tested, earlier, using the nVbe multiplication technique described in AN-72. One of the references is ultra stable, the other relatively stable. While configured for temperature stable operation given the Vbe of the -input for the LM3900, the B-series Zener diodes do have a ±5% tolerance, which has to be calibrated against.

The +6V reference (IC1D) is temperature stable by balancing the +Vbe of the op amp -input against the temperature coeffcient of the 1N5232B 5.6V Zener diode. This relationship was very close to exact. When the net output voltage change was tested with hot blowing air, the ∆V was ≤ -0.04%. This testing arrangement is not the same as an industrial temperature chamber, but best I can do with a small laboratory. A lot of LM3900 application circuits use the Vcc supply voltage for setting the DC output. The goal here was to provide a calibrated output that is independent of whatever the exact value of the +15V supply is. Aside from isolation, this setup also provides good system noise isolation. The LM3900 is programmed by currents, and the +6V voltage reference was chosen because it had proven to be extremely stable over temperature.

In the other voltage reference, a 1N5242B 12V Zener diode and nVbe multiplication circuit (IC1A) produces +13V, with a nearly flat temperature coefficient. This circuit has ≤ +0.3% change for moderate temperature swings, but a larger ≤ +1.5% change for actual blowing hot air. I may revisit the +13V reference circuit again later, to lower the temperature-induced drift for larger temperature differentials. For now though, it works well enough, because enormous temperature swings are not expected.

This +13V voltage reference is also "medium-power" in that it has an emitter follower added, in order to provide more current without loading the LM3900, and to provide a lower impedance into the VCCS transistors. This ensures each current output channel is isolated. An earlier form of the +13V reference voltage circuit used the LM3900 output directly. This reference voltage into the 374Ω resistor was wiggling around a little bit, instead of being a very stiff voltage. It could be decoupled to improve the frequency-induced "ripple," but part of the issue is that the LM3900 has more current drive for digital mode use (e.g. more current overdrive at the inputs), but somewhat less drive for precision analog use. Additionally a nominal 8KΩ output impedance exists before the current drive transistors kick in. The 2N3904 emitter follower offers a much lower output impedance. The 100Ω series resistor R12 before the 2N3904 base comes from bitter experience. Emitter followers often have a complex pole that easily enables VHF oscillation, where the follower screams like a banshee, and wastes power. A series resistor and/or a ferrite bead inductor tamps this tendancy to oscillate.

The P1/P2 trimmers then allow zeroing the output voltage, via the op amps IC1B & IC1C. The trimmers and resistors R9/R23 are ranged to account for the ±5% tolerances of both Zener diodes. An earlier version of this circuit without trimming enabled zero within 20mV of ground, using 1% components, but that depended on the centroid of voltage distributions for the Zener diodes being very close to nominal. The trimmers afford a wider range of correction for tolerance effects.

One LM3900 device enables 2 channels of operation, with half of the op amps dedicated to providing necessary reference voltages. The voltage references have sufficient current output reserve that they could be re-used when adding another LM3900 device. That would allow 6 simultaneous independently programmable outputs using only 2 integrated circuits plus associated discrete components.

Due to the unique mode of LM3900 operation, the circuit could also be modified slightly, so as to accept negative input voltages, and ground reference them, without problem. A lower-valued common-mode resistor in place of R10 or R19 would provide this functionality.

Additionally, even though this circuit is operated off of a +15V power supply, the current output could be alternately referenced to a negative voltage. For example, a -5V or -10V voltage could be used to set Vo to a lower level, adjusting the R|L resistor for the range desired given Io ≤ 5.35 mA. This is a very wide range, as 2N5087 allows a Vceo < -50V. Use of a negative voltage for offsetting the output voltage swing is completely independent of the +15V operation of the LM3900, and cannot harm the device.

A bunch of scope fotos were made with various versions of this circuit, but these were done on a pad-per-hole Superstrip breadboard. Rather then posting them now, I want to wait for a PCB implementation, then measure results again. A number of things work really well with this circuit though, even on a breadboard. Among the things discovered were also how cleanly linear the output is. The distortion is quite modest. With 5V signal swing into a 604Ω test load, as measured with FFT, the 2nd harmonic of a 25 KHz output was < -40 dBc. At 20 KHz it was < -55 dBc. Obviously, as distortion declines with frequency, the over-all THD in line driver use should be relatively clean. A nice outcome, considering the inexpensive component cost. The goal of this system though is New Sound, not audiophile grade results.

UPDATE 7/20: A new Rev C schematic was added, fixing the mis-orientation of the LM3900 op amps, as well as a few component value errors. The pin numbers defined in the LM3900 KiCad symbol are correct, but the orientation of the current mirror part of the symbol is backwards. I found the symbol on the internet, and have no idea why these are reversed. Other than that, the circuit is now correct as drawn. Otherwise, I am still finding my way around KiCad 😄.

Comments