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:
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):
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.
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:
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):
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.