How to reduce current mirror drift?

Thread Starter

Veracohr

Joined Jan 3, 2011
715
I'm working on an analog synthesizer oscillator which is showing a fair amount of frequency drift over several minutes. There are several possible sources of this, and the main one (linear to exponential converter) has a common solution. I'm looking into other sources of drift and ways of compensating.

I'm seeing some drift in a current mirror I'm using and I wonder if anyone knows of a way to either reduce the drift to perhaps 0.25% max, or some way to make the major drift happen much more quickly so it settles within about a minute. Further explanation below.

I used a current mirror setup to provide 8 identical bias currents to 8 different oscillators. My original design uses a Wilson mirror, and I tested the mirror by itself like this:

Screen Shot 2019-03-17 at 12.44.20 PM.png

I tested it at 50uA and 500uA (by changing R1), and with 100 ohm and 10k ohm load resistors (R5). Surprisingly, the 50uA source drifted much more, and the value of the load had a more significant effect, compared with the 500uA source. I expected the higher current to drift more because it would heat the transistors more (even though it's still a pretty small amount of power dissipation). With 50uA and a 100 ohm load resistor it had dropped by 4% and was still falling by the time I stopped measuring at 5 minutes. The 500uA source fell by about 1.4% over 5 minutes and showed little change with the change in load resistor. In the actual oscillator circuit the load is a 22k resistor into the bias current input of an OTA, which is two base-emitter drops above the -15V rail.

I also checked the source by itself (U1/Q1), and it didn't drift at all. The mirror is definitely the cause there. I found that putting a finger on Q3 caused the current to rise, and putting a finger on Q2 caused it to fall. Overall the current fell over the course of 5 minutes, so Q2's self-heating seems to be the cause there. It has roughly twice the dissipation of Q3 in simulation, so that makes sense.

Following a suggestion I saw somewhere, I added another transistor, like a cascode mirror but with the base-connector connections different, to equalize the dissipation in Q2 and Q3 (labeled Q7 and Q8 below):

Screen Shot 2019-03-17 at 12.33.44 PM.png

This helped the drift but not as much as I'd like. The 500uA source dropped by about 0.4% and seemed to have settled. The 50uA source had dropped by about 1.4% by 5 minutes, and may have continued dropping.

These tests were done with single discrete transistors, nothing matched. I planned to duplicate the tests with matched transistors once I get around to making a PCB for it & getting the parts.
 

KeithWalker

Joined Jul 10, 2017
895
I'm working on an analog synthesizer oscillator which is showing a fair amount of frequency drift over several minutes. There are several possible sources of this, and the main one (linear to exponential converter) has a common solution. I'm looking into other sources of drift and ways of compensating.

I'm seeing some drift in a current mirror I'm using and I wonder if anyone knows of a way to either reduce the drift to perhaps 0.25% max, or some way to make the major drift happen much more quickly so it settles within about a minute. Further explanation below.

I used a current mirror setup to provide 8 identical bias currents to 8 different oscillators. My original design uses a Wilson mirror, and I tested the mirror by itself like this:

View attachment 172603

I tested it at 50uA and 500uA (by changing R1), and with 100 ohm and 10k ohm load resistors (R5). Surprisingly, the 50uA source drifted much more, and the value of the load had a more significant effect, compared with the 500uA source. I expected the higher current to drift more because it would heat the transistors more (even though it's still a pretty small amount of power dissipation). With 50uA and a 100 ohm load resistor it had dropped by 4% and was still falling by the time I stopped measuring at 5 minutes. The 500uA source fell by about 1.4% over 5 minutes and showed little change with the change in load resistor. In the actual oscillator circuit the load is a 22k resistor into the bias current input of an OTA, which is two base-emitter drops above the -15V rail.

I also checked the source by itself (U1/Q1), and it didn't drift at all. The mirror is definitely the cause there. I found that putting a finger on Q3 caused the current to rise, and putting a finger on Q2 caused it to fall. Overall the current fell over the course of 5 minutes, so Q2's self-heating seems to be the cause there. It has roughly twice the dissipation of Q3 in simulation, so that makes sense.

Following a suggestion I saw somewhere, I added another transistor, like a cascode mirror but with the base-connector connections different, to equalize the dissipation in Q2 and Q3 (labeled Q7 and Q8 below):

View attachment 172604

This helped the drift but not as much as I'd like. The 500uA source dropped by about 0.4% and seemed to have settled. The 50uA source had dropped by about 1.4% by 5 minutes, and may have continued dropping.

These tests were done with single discrete transistors, nothing matched. I planned to duplicate the tests with matched transistors once I get around to making a PCB for it & getting the parts.
Connecting the transistors thermally to a common heat sync, close together in pairs should help cancel some of the drift.
 

Thread Starter

Veracohr

Joined Jan 3, 2011
715
The best I can do for Q2 and Q3 to be the same temperature is a matched transistor pair such as DMMT3906W. This is what I plan to use on my next test, but I wanted to ask about anything I may have overlooked before I spend the money. I saw a mention somewhere that the best thermal matching is with two transistors on the same die, but none of the matched transistors I found available say anything about being on the same die.

However, I need to think about how this scales up to the full 8-oscillator design. This is my original setup for the 8 current mirrors (ignore the Jx connections as simply open):

I8.png

This would necessitate the upper 9 transistors all being the same exact temperature, and there are no 9-transistor arrays available.

As for a heat sink, I don't think that's a viable solution at these low power levels. The maximum these current mirrors will deal with is 1mA, which in simulation shows about 650uW dissipation in the upper transistors. Only 5mW in the output transistors.
 

Yaakov

Joined Jan 27, 2019
1,612
There is the idea of an OXCO (Oven Compensated Crystal Oscillator) where the crystal is placed in a heated enclosure to ensure it will stay at a known temperature.

A similar method might work for you. If you heat the transistors to some know temperature somewhat above ambient it would allow you do know how much compensation each needs, and you'd reach that temperature in a known time.
 

dl324

Joined Mar 30, 2015
10,748
I wonder if anyone knows of a way to either reduce the drift to perhaps 0.25% max, or some way to make the major drift happen much more quickly so it settles within about a minute.
The transistors need to be manufactured on the same die and be laid out so any process variation would cancel to insure matched characteristics. You can get dual transistors and have a chance at them being laid out with matching in mind, but that's not guaranteed.

Even transistors in IC's such as CA3086 are unlikely to be laid out for thermal matching.
 

dl324

Joined Mar 30, 2015
10,748
Out of curiosity, I checked the datasheets for some dual transistors I have and they're discrete devices in the same package.

upload_2019-3-18_14-32-34.png
 

Thread Starter

Veracohr

Joined Jan 3, 2011
715
Top