基本構成は
PCのUSBポート→CM6631A・USB/I2S返還→アイソレータ→CPM3060・24ビットCODEC→OPA2134・バッファ→出力、おまけとしてNJM4580ヘッドフォンアンプ
電源は小型トロイダルトランス+3端子レギュレータによる±8V。
PCM3060はCODECだけど、DACとしてのみ使用。
まず、問題となったのはPCM3060の出力。せっかく差動出力になっているのだが、DACがΔΣコンバータであり、ノイズシェーピングはされているといえ、かなり高いレベルの高周波ノイズが出てくる。差動出力に対して逆相で出てくるから、高性能オペアンプをバッファにするとノイズが素通りして、ヘタをすれば、その混変調成分が耳に聞こえる周波数となってしまう。
いろいろやってみたのだが、LCフィルタはインピーダンスがまともに定まらない低周波領域ではあまりいい成績とならない。結局、2段CRフィルタで高周波成分を落とすことになった。カットオフ周波数は100KHz程度(使用するメインのサンプリングレートは96KSPSなので、いわゆるナイキスト周波数の倍)。
さて、PCM3060のもうひとつの弱点は「基準電圧が電源端子」だということ。つまり電源がタコだと音質はタコ以下になるので、電源の安定度、低インピーダンス化、低雑音化は必須となる。普通のボルテージリファレンスなどは安定度は高くてもノイズが多かったりする。そこで、今回は「普通じゃないリファレンス」を使った超低雑音・低インピーダンス電源でデジタル電源・アナログ電源両方を駆動した。高速ハイパワーオペアンプによる電源駆動なので電源としてソースだけでなく、シンクもできるため、大変低インピーダンスにできる。
もうひとつの雑音源が「アイソレータ」だった。USBアイソレータだとアナログデバイセスのADUM4160以外に選択肢がほとんどない。もちろん優秀なICなのだが、今回はこれを使っていない。信号がI2Sになったあとで、シリコンラボのアイソレータを使ってみたのだが、これが問題になった。アイソレータとしては大変優秀で、信号の遅れもスキューも少なく、絶縁も完璧だったのだが・・・落とし穴があった。
絶縁されたUSB・I2Sコンバータ側は「グラウンドが浮いている」ためにPC側のグラウンドノイズで「振り回される」ことになる。さらにI2S信号は平衡伝送ではないので、配線がアンテナになり、発生した高周波成分が回路全体を振り回してくれたのだ。
これは平衡伝送にしてシールド内に放り込んでやらねば、抜本的な対策はできないので、またこんど。
途中ではあるが、ノイズ計測のためにアナログ出力を超高感度の計測器(FFTアナライザ・とても高い機械だが、ナノボルト級の雑音までスペクトル観測できる)に入れてみた。
ケースに入れていないので60Hzなどのハム成分が30マイクロボルト程度見られた。ヘッドフォンアンプを通して聞いても何のノイズも聞こえない。それ以外の周波数の雑音は1マイクロボルト以下。
これでようやく、16ビット相当のSN比に到達した(−90dB・1KHzなどの信号をPCから送ると聞き取ることが可能なので、だいたい合ってる)。
次はちょっと横道にそれて、サンプリングレート・ビット数などの情報をI2S信号から得ることができるかどうか、やってみようと考えている。
ログインしてコメントを確認・投稿する