SX-150 の VCO の温度補償 (2) -- 回路と LTSpice シミュレーション (2)

回路シミュレーションには、無償で利用できる Linear Technology 社の「LTSpice/SwCAD III」を利用しています。
公開されている SX-150 の (定数入り) 回路図では、NPN トランジスタは 2SC1815 を使っているように記されていますが、実際の回路ではチップトランジスタが使われており、型番は不明です。
そんなわけで、深い考えもなく、トランジスタのモデルは LTSpice に付属の 2N2222 を使用しています。
下の図がシミュレーションに使用した回路図です。

簡単のため、CV / 変調入力 の抵抗ミキサ部分は複数入力を「ミックス」せず、CV 入力を TEMPCO で分圧するだけとしました。
実際には、ある入力からみると、他の入力の抵抗分が TEMPCO 抵抗と並列になる形となり、温度補償効果が「薄まる」形となります。
上の回路図でも R5 の 75 kΩ のせいで温度補償効果は 100 % とはなっていません。
R901 の下に書いてある
R=5k * (1 + 33e-4 * (temp-27))
が抵抗値に温度変化を持たせるための記述で、回路エディタで抵抗値を入力する欄にこの式を入力します。
SPICE2G6 系では抵抗デバイスの記述行のオプションとして温度係数を指定でき、SPICE3 系ではそれに加え、半導体抵抗モデルの指定もできますが、LTSpice の回路エディタから標準の抵抗デバイスに、直接に温度係数を指定する機能はないようです。
温度は 300 K (27 ℃) を中心として上下に 10 % (30 K) ずつ振った、270 K (-7 ℃)、300 K (27 ℃)、330 K (57 ℃) の3つの温度についてシミュレーションをしています。
上の回路から生成したネットリストを、下に示します。

* X:\wsp2\LTS\SX150_tc.asc
Q901 N002 N004 N006 0 2N2222
Q2 N003 N004 0 0 2N2222
R901 N006 0 R=5k * (1 + 33e-4 * (temp-27))
R902 N001 N002 4.7Meg
R903 N004 0 470k
Q902 N001 N002 N004 0 2N2222
R5 N005 N006 75k
VCC N001 0 5V
VCV N005 0 0V
V2 N003 0 2.5V
.model NPN NPN
.model PNP PNP
.lib G:\LTC\SC3\lib\cmp\standard.bjt
.dc VCV 0 2.9 0.01
.temp -7 27 57
* SX-150 VCO temperature compensation
.backanno
.end

NPN トランジスタのモデルや、抵抗の温度係数の指定を、お使いの SPICE の仕様に合わせて変更してください。
まず、R901 の温度依存性をゼロにした、つまり TEMPCO ではなく普通の抵抗としてシミュレーションした結果を下に示します。

これ以降の図で、横軸は CV 電圧 (電圧源 VCV の電圧)、縦軸は Q2 のコレクタ電流 (対数スケール) の表示です。
CV 電圧がゼロの場合は単なるカレントミラーとして動作するので、すべての温度で値が一致 (約 1 μA) しています。
温度が変化するとグラフの傾きが変わり、他の CV 値については値は一致しません。
下の図は上の回路図通りに R901 に +3300 ppm/℃ の温度補償抵抗 (TEMPCO) を使用した場合です。

3つの温度のグラフの傾きがほぼ一致し、ほぼ重なっているのが分かります。
もっと詳しく見るために、LTSpice のグラフ表示機能を利用し、電流グラフの傾き、つまり微分値をプロットしたのが下の図です。

ここで VCV = 0 の点でグラフが垂直に立ち下がっているように見えるのは、端点では差分を求める対象が存在しないために起こる見掛け上の現象で、実際に VCV = 0 で微分値が急変するわけではありません。
CV の値が大きい時に微分値が小さくなる、つまり電流値が頭打ちになるのは、トランジスタ自体の特性のようです。
Q2 単独で V_{\rm be} - I_{\rm c} 特性をプロットしてみても I_{\rm c} の大きい部分、特に 100 μA 程度以上で頭打ちが顕著になる傾向があります。
それとは別に、ベース電流の影響もあります。
いま、全てのトランジスタh_{\rm FE} = 100 として、Q2 のコレクタ電流が最大値である 1 mA の場合を考えます。
簡単のため、R903 がない場合を考えると、Q2 のベース電流は 1/h_{\rm FE} の 10 μA、これが全て Q902 のエミッタから供給されるので、Q902 のベース電流は 1/h_{\rm FE} の 0.1 μA となります。
この電流は R902 を通じて供給されますから、本来 Q901 のコレクタに流れ込む 1 μA の電流のうち 0.1 μA が Q902 側に取られて、Q901 のコレクタ電流は約 0.9 μA に減少してしまいます。
「ベース電流補償型」といっても、Q902、Q2 のトランジスタ2段で 1mA の電流を流すためのベース電流は、1 μA しか流していない部分に対しては無視できません。
したがって、この回路では、各トランジスタh_{\rm FE} は高い方が性能が良くなります。
CV が小さい部分では微分値はほぼ一定ですが、温度により微分値が違っています。
これは R6 により温度補償効果が薄まるためで、たとえば R6 を 10 倍の 750 kΩ と選び、VCV も 10 倍の 0 V 〜 29 V まで振ってシミュレーションすると、3本のグラフはもっと近接するようになります。
実際の SX-150 の回路では、CV ミキサの R4、R13、R16 (およびその先の回路の抵抗分) が並列に入る形となるので、温度補償効果はさらに薄まることになります。
OP アンプによる加算回路のフィードバック抵抗に +3300 ppm/℃ の TEMPCO を使った典型的な回路では 100 % の温度補償効果が得られるのですが、パッシブ抵抗ミキサによる方式で 100 % の効果を得たい場合には、もっと温度係数の大きな TEMPCO を使う必要があります。
そもそも温度補償抵抗は特殊な部品であり、秋葉原の店頭で1個から買えるというものではありません。
しかし、幸いなことに、Digi-Key では 1500、2700、3300、3900 ppm/℃ のチップ温度補償抵抗を扱っています。
最小発注数量が 10 のものに限定し、なるべく大きな抵抗値のものを探すと、3300 ppm では 1.8 kΩ (メーカー型番: ERA-S33J182V)、3900 ppm では 470 Ω (メーカー型番: ERA-S39J471V) があります。 単価はいずれも 64.4 円です。
R901 に正の温度特性を持つ抵抗を使う代わりに、R5 側に負の温度特性を持つ抵抗を使っても温度補償はできます。
ただし、この場合には、温度補償したい CV/変調入力それぞれの抵抗に負の温度特性を持たせる必要があります。
非線形ですが大きな負の温度特性を持つ素子に「サーミスタ」があり、種類も豊富で、入手も簡単ですが、目的の温度特性を得るための直列抵抗、並列抵抗の算出がちょっと面倒です。