アナログシンセの VCO ブロック (52) -- マルチ出力アンチログ回路の測定 (2)

今回は、CV に対する VCO 出力周波数のピッチ誤差の測定結果を示します。
PWM による DA でアナログ CV を作り出すわけですが、今回は ATmega168/328 の 8 ビット・タイマである Timer2 を使って PWM 波を発生させることにしました。
Timer0 は Arduino のシステム用途に使われ、16 ビット・タイマの Timer1 はレシプロカル周波数カウンタとして VCO 周波数の測定に占有するので、自由に用途を決められるのは 8 ビット・タイマの Timer2 だけとなります。
Timer2 の PWM 出力は 2 系統あるので、VCO 2 つまでならコントロールできます。
PWM の動作モードとしては「Phase Correct PWM」を使用し、タイマ・クロックの 1/510 が PWM 周波数となり、デューティー 0/255 から 255/255 までの PWM 波を発生可能です。
PWM 周波数としては可聴周波数域外であることが望ましく、今回は Timer2 にプリスケーラなしの CPU クロック 16 MHz を供給して、16 [MHz] / 510 = 31.373 [kHz] を PWM 周波数としました。
MIDI ノート・ナンバーは半音きざみで 0 から 127 までですから、PWM 波としては 1/2 半音ステップの分解能を得ることができます。
VCO のピッチ誤差の測定結果のグラフを下に示します。

横軸が MIDI ノート・ナンバー (0 〜 127) で表した「CV」値です。
今回の回路では、PWM DA が VCO 回路に組み込まれている形となり、CV はアナログ電圧値としては外部に現れないので、ディジタル値である MIDI ノート・ナンバーを使用しています。
縦軸は理想特性からの誤差を「セント」(1 オクターブ = 1200 セント) で表示したものです。
赤色のトレースが測定結果で、このグラフのスケールでは全く重なっていて判別できませんが、2 回分の測定結果をプロットしてあります。
MIDI ノート・ナンバー最大値の 127 付近で、約 50 セント (1/2 半音) ピッチが下がっています。
青色のトレースは、リセット方式の VCO でのリセット時間誤差曲線に当てはめたものです。
周波数の低い部分での測定結果の誤差の出方は、リセット時間換算で約 2.61 μs の曲線にほぼ一致しています。 周波数の高い部分では、測定結果と「リセット時間誤差モデル」との差が開いてきます。
今回は「リワインド」式 VCO を使用しているので、「リセット時間誤差」は発生しないはずですが、おそらくこれはアンチログ出力トランジスタの (Spice の Ebers-Moll モデルでの) エミッタの「オーミック」直列抵抗 RE による誤差と考えられます。
説明は次回の記事に回します。