XR2206 (10)
久しぶりの更新になってしまいましたが、XR2206 の VCO の直線性を測ってみました。
セント単位で誤差を表示したグラフを下に示します。 測定回路は後で示します。
思ったよりも直線性は良くありませんでした。
(5/15 追記: この結果の低電流域側は正しくありません)
測定回路の影響もあるとは思いますが、低電流域で急激に誤差が増えているのは、タイミング・コンデンサ両端の電圧をバッファしている XR2206 内部のトランジスタのベース・バイアス電流のためだと考えられます。
(5/15 追記: 低電流域側の誤差の特性はプラス側に振れるのが正しいと思われます)
電流が増えるにしたがってピッチが下がっているのは、原因は分かりませんが XR2206 の持っている傾向が現れたものだと思われます。
スペックの数値では、スイープ直線性 (Sweep Linearity) は、
- 10:1 スイープで標準値 2%
- 1000:1 スイープで標準値 8%
となっています。
スペックではスイープ・レンジの下限と上限が周波数で規定されていて、電流値そのものではないのですが、
- 100 Hz → 1 μA
- 1 kHz → 10 μA
- 10 kHz → 100 μA
- 100 kHz → 1 mA
と対応させて、測定結果のグラフから読み取ると、
- 10:1 レンジでは約 20 セント (約 1.2%)
- 1000:1 レンジでは約 140 セント (約 8.3%)
となり、ほぼ、スペック通りと言えます。
(5/15 追記: 低電流域側の誤差はプラス側に振れるのが正しいのですが、直線性の誤差値は大きくは違いません)
測定回路を下に示します。
これまで使っていた回路では、電流値を決める抵抗の値をあらかじめ測っておき、計算で実際の電流値を求めていました。
つまり、電流の設定精度は抵抗値の測定精度にそのまま依存するので、抵抗値の範囲が幅広いこともあり、手持ちの安価なディジタル・テスタでは十分な精度が得られませんでした。
そこで、ディジタル・オーディオ用の 16 ビット DAC 出力を「信用」して、電流値の設定に利用することにしました。
16 ビット DAC ハードウェアとしては、FM音源プログラムのシリーズで利用している ROHM BU9480F を使って、ソフトウェアを改造して、シリアル入力で DAC データを設定できるようにしました。
具体的には、現在仕掛かり中である LPC2388 ボードを使っています。
上の回路図の左下の部分の BU9480F から L ch / R ch の DAC の DC レベルの出力を取り出しています。
点線で囲った部分が、DAC 出力の左右のレベル差を電流に変換して出力する回路です。
R5、C5、R6、C6 は LPF を構成していて DC 付近の成分だけを取り出します。 R3、R4 は OP アンプの電源が OFF の場合に C5、C6 に溜まっていた電荷が OP アンプ内部の入力保護用のダイオードを介して放電する電流を制限して、トラブルを防ぐためのものです。
点線内の回路を簡略化したものを次に示します。
U1 は単なるボルテージ・バッファで、R ch の電圧 をバッファして、低インピーダンスで出力しているだけです。 抵抗 R1 (1 kΩ) の左端には、この がかかります。
U2 の OP アンプの作用で、マイナス入力端子とプラス入力端子はバーチャル・ショート状態となりますから、5 番ピンと 6 番ピンの電位は等しくなり、抵抗 R1 (1 kΩ) の右端には L ch 側の電圧 がかかります。
結局、抵抗 R1 の両端の電位差は となり、電流 が流れることになります。
電流出力端子と、OP アンプのマイナス入力端子の間には N チャネル J-FET の 2SK170 が接続してあり、電流出力端子に流れ込む電流は目減りすることなく、そのまま抵抗 R1 に流れ込みます。
つまり、 と との差の電圧で出力電流を制御できる回路となっています。
U2 は J-FET のゲート電圧を調整して、OP アンプ入力端子間のバーチャル・ショートが保たれるように作用するだけで、出力電流自体には関与せず、出力電流そのものは U1 の OP アンプ出力から供給されます。
実際には、U1、U2 ともにオフセット電圧が存在し、DAC L ch / R ch 出力の DC レベルにもオフセットが存在していますから、 はトータルのオフセット電圧をキャンセルするような値にキャリブレーションしておいてから測定します。
具体的に Vcc = 5 V の BU9480F の場合、
の程度となります。
キャリブレーションの手順としては、
- R ch DAC データを 0xFFFF に設定
- 出力電流がゼロになるように L ch DAC データを設定
- R ch DAC データを 0x8000 に設定し、その時の出力電流をフルスケール電流として記録
となります。
その後、R ch DAC データを 0xFFFF 〜 0x8000 の範囲で変化させて出力周波数測定を行い、実際の入力電流値は、フルスケール電流値と DAC データ設定値から計算で求めます。
今回の測定での具体的数値をあげると、 L ch DAC データは 0xFF86、フルスケール電流は 1.003 mA でした。
当初、N ch J-FET として 2SK30A を使っていましたが、不都合があり、2SK170 に交換しました。 ランクは GR でも BL でも構いません。
XR2206 の入力端子の電圧は約 3 V で、DAC データ 0x0000 付近の電圧は 2.5 V ですから、FET のドレイン・ソース間電圧は 0.5 V となり、2SK30A では非飽和領域に入るため、 より小さな電流しか流せなくなります。
かといって、大きな電流を得るため、 の大きなデバイスを使うと、今度は低電流にするために必要なゲート・バイアス電圧が深くなり、2.5 V では電流を絞り切れない場合が生じます。
結局、 2SK30A では大電流と小電流を両立できないことになります。 2SK170 では、そのような問題はありません。