Towards a Temperature Compensated Current Source.
In the text below, I use the term “transdiode”. If you have not encountered this term before, you will, I am sure, find the meaning obvious. This is not a matter of me making up words or picking up new trendy ones. I picked up the term from Peter Baxandall and Douglas Self.
I had recommended a cheap current source circuit to a colleague. On reflection, I was concerned that the temperature coefficient might have been too high. I explored several alternative arrangements and found that the temperature coefficient could be vastly improved. I have restricted this to circuits with small number of transistors and resistors. Circuit modelling has been done with LTSpice. This provides for variations in temperature, but I do not believe it is correcting for variations in rise above ambient for different silicon chips according to their individual dissipations. The optimum that would be obtained with real hardware could not be expected to be as good as I have obtained in the simulation.
The application is a pulse width modulator in which a fixed current is applied to a capacitor to provide a “time – voltage” relationship. The application does not require very high accuracy or linearity, but a couple of set points on the range (min and max) have to stay pretty well where they are put. (Just exactly what “pretty well” means is not determined yet.)
A crack at it
My starting point was a circuit that I have always known as the “D2 current source” as I have associated it with a colleague whose nick name was “D2”. I do know that he didn’t invent it, and maybe it has a proper name.
I record here several steps I took whilst I explored the options for reducing the temperature coefficient of the current source for this application. I chose a design current of 1 mA. there is nothing special about this figure, and indeed, there might prove to be good reasons for diverging widely from this. I believe that what I have discovered here would apply just as well (with appropriate adjustments) for other quiescent conditions. As I tried different circuits, I did not attempt to adjust the output current: not, that is until just near the end.
This is the basic D2 Current source with resistor values chosen to give a nominal 1 mA output. The resistor R3 is in the circuit for the simulator (LTSpice) to have a component to measure the current in. Over the temperature range (0 degrees C to 70 degrees C), this yields 720uA to 920uA a Delta of 200uA. That is a fifth of the span. Not good enough for the application. In this circuit, the output current is determined by the comparison of VBE for Q4 and the volt drop in R1 carrying the output current. First order base current cancellation takes place, as the base current of Q3 is added to the output current on its way to R1, but then the base current of Q4 is subtracted. One idea is to correct for the VBE drop of Q4 and then add a more stable volt drop. One of the band gap devices might serve. This gives the following circuit.
V2 represents a “perfect” one volt band gap device. This now provides the volt drop to compare the volt drop in R1 with. The transdiode Q1 cancels out (to an extent) the temperature sensitive VBE of Q4. This gave a range of 788uA to 830uA over temperature, a delta of 42 uA. This is better.
It occurred to me that the above circuit was using the transdiode Q1 which is carrying pretty well the output current to cancel the VBE of Q4 which is carrying very much less current. One trick might be to increase the current in Q4 to a value much the same as the output current.
This is pretty good. (Much better than is needed for the application) but it does involve the use of that perfect 1 volt band gap device. can we do without that? What about a current mirror?
This gives an output current of 884uA to 913uA over temperature, a delta of 29uA. Better than the plain vanilla D2, but maybe we can do better yet. I thought of a two terminal current source circuit that I devised many years ago for a completely different application.
This gives 770uA to 890uA over temp, a delta of 120uA. Not promising. I went back to that current mirror to see what I could do with that.
The trouble with it is, I reasoned, that the five volts is divided up between:
1. The volt drop across R1
2. The volt drop of the transdiode Q4
3. The volt drop across R2.
Of course, item 2. varies with temperature, which imposes a variation on the other two. The variation in item 1. translates directly into variation in output current. What can we do to keep the current in R1 constant? One trick would be to vary the voltage at the collector of Q4 with temperature. If instead of just having R2 there, we had some circuit that varied the voltage on the collector of Q4 by just as much as the forward volt drop of Q4 configured as a transdiode would vary.
One way to do this, is to start with a supply voltage that varies twice as much as Q4 does, and then divide this variation in two with a resistive divider. If the current flowing from Q4 upsets the perfect division by two of the voltage divider, then maybe we can compensate by tweaking the dividing ratio a little. Here is the result.
The collector of Q2 will be at a voltage that is two transdiode drops below the five volt rail. R5 and R2 divide this voltage by a factor that is slightly off one half. In my reasoning for the divide ratio (above), I allowed for variation from the the exact factor of one half. I imagine that other factors come into play as well. Q1 and Q2 will not be carrying the same current as Q4 for a start. The values of R5 and R2 sown here are only 1.3% apart.
In this case, as I was coming near to the end of my quest for a cost effective low tempco current source, I did go to the trouble to tweak the resistor values to get closer to the design current specification that I set myself.
The result is: output current varies from 1.00028mA to 1.00029mA a change of 10nA!
(Please forgive the exclamation mark. I am pleased with this result.)
What if we make R5 and R2 the same value (a practical thing to do)? I will choose 2k91, an E96 value. The output current degrades to variation between 998.88uA and 999.23uA, a variation of 350nA. This does look a lot worse than 10nA, but I suspect that this difference would not be significant with real world components.
The emitter resistor should have tight control of the current in Q3, so I do not expect much Early effect influence.
Output current with R3 = 0.1 ohm (default temperature) = 1.000215 mA
Output current with R3 = 2k5 3k (default temperature) = 997.407uA
Effective output impedance = delta V/delta I
I thought it would be higher than that.
A variation in 2.8uA in a 1 mA current as a connected capacitor is charged will not be a problem in the application.
I just thought “VBE multiplier” and saved a transistor. No efforts to optimize this at this stage.