PCM2901 USB-DAC/ADCの製作
TIから発売されている、USB-DAC/ADC ICであるPCM2901Eを使用して、回路を組み立ててみました。
回路図
- Rはカーボン抵抗またはチップ抵抗を使用しました。
- R*には音響用抵抗(ニッコーム)を使用しました。
- R18, R19には金属皮膜抵抗(1%)を使用しました。
- 電解の無印Cは標準品電解コンデンサ*1を使用しました。部品節約ではなく、あえて標準品を使っているところも多くあります
- 電解のC*にはOS-CONを使用しました。
- 電解のC8は、PC用超低ESRコンデンサを使用しました。
- コンデンサのCには積層セラミック0.1uF(チップ)を使用しました。
- コンデンサのC*にはフィルムコンを使用しました。
- L1のコイルは精密ドライバーにエナメル線を巻き付けた空芯コイル(数uH?)を使いました。
- それ以外のコイルはチップコイル(LQM18F 1uF/150mA/120MHz)を使用しました。
一部実際の回路とは異なります(スペースの都合上省略した電源のLCフィルタが回路図上には書かれていたりします)。この回路での最大出力は1.98Vppになります。
後日、C27, C31を1500uF 6.3VのPC用超低ESR品に変更しました。ノイズ対策として重要です。
回路の解説
バスパワー駆動です。DAC部はDC直結になっています。VcomやVoutは非再生時の出力インピーダンスが大変低く、DC的に切り離さないと電圧が変動してしまいます。消費電力を下げるため、内部的に回路を切り替えているようです。そのせいで、曲と曲の継ぎ目にわずかなノイズが出ますが、解決策が思い当たらず諦めました。
この回路は出力に直接ヘッドホンを差し込めるようになっています。それを見越して出力抵抗もあえて付けていません。出力段がLPFになっているため、ある程度までの容量性負荷は駆動出来ます。その場合、ボリューム調整をデジタルボリューム(ソフトウェアボリューム)で行うしかないため、アンプを使用する場合に比べ再生SNRはよくありません。おまけ的な使い方にはなりますが、下手なアンプを付けるよりはよっぽど良い音です。
出力は位相反転アンプです。できることなら反転アンプにはしたくなったのですが、LPF出力、DC直結、なるべくシンプルな回路と色々と考えた末このような構成になりました。1段目のオペアンプでDCオフセット解除+反転アンプ動作が行えればよかったのですが、非再生時の低出力インピーダンスが問題となり、初段を非反転増幅にすることができませんでした。(初段の入力インピーダンスが充分大きくないとオフセットが出てしまう)
このDAC、出力は(他のDACに比べて)あまり綺麗ではありません。無音データを再生すると、P-P値で10mV程度のノイズの上に100mV程度のノイズが乗っています。デルタシグマDACですから高域ノイズは仕方ないのですが、2Vpp出力に対してこのノイズは大きく廉価版という印象は拭えません。(左写真)
このためLPFは必須になります。2次フィルタも考えましたが位相特性を綺麗にする(群遅延を直線にする)ことが難しいため、1次CRフィルタの2段構成にしました。1段でもよいのかもしれません。
なお使用するオペアンプ(U5, U6)は任意で構いませんが、同じ構成を取る場合、±4.5V電源で+2.6V*2が出力できる必要があります。OPA系は難しいかもしれません。
PCM270xでの製作を考えている方への注意
PCM2702, PCM2704等ではVcomの電圧+0.02Vぐらいが実際の中点電圧として使用されます。この仕様のため、ここに示した方法でDC直結回路を構成しても20mV程度のオフセットが出てしまう可能性があります。
実装
SSOP28→DIP変換基板(@秋月)を使い、ユニバーサル基板で実装しました。当初考えていたよりも電源回路が相当大きくなってしまい(基板約半分)、録音ボリュームを付けることはできませんでした。デジタルボリュームも存在しないため常にボリューム一定という測定という意味ではありがたい(?)回路になりました。
回路図からもわかるとおり、電源回路は特に気を遣いました。各段でのデカップリングを徹底し、それらがなるべく1点に集まるよう(可能な限り共通ラインを持たないように)配慮しました。
全体像 | (a)C31負極 | (b)C5正極とUSB D+ | (c)OPアンプ負電源 |
---|---|---|---|
ノイズの問題は主に2つあります。
- LTC660で負電源生成時のノイズ。ここでチャージポンプの切り替えが発生するたびにスパイクノイズが発生します。(写真(a))
- デジタル部でUSBの通信が約1msごとに発生し、これがまた電源ノイズの原因となっています。(写真(b))
LCやRCで徹底的にフィルタしたものの、完全にノイズはほぼ除去することはてきませんでした。写真(c)をみると、DCDCノイズがうっすら残っています。
ループバックテスト
ループバック接続したところ、最大音量設定時に-1.3dBぐらいの入力となったのでRMAAを取りました。
周波数応答 (40Hz-15kHz), dB | +0.10, -0.06 | Very good |
---|---|---|
Noise level, dB (A) | -89.7 | Good |
Dynamic range, dB (A) | 89.8 | Good |
THD, % | 0.0053 | Very good |
THD + Noise, dB (A) | -80.3 | Good |
IMD + Noise, % | 0.011 | Very good |
Stereo crosstalk, dB | -91.1 | Excellent |
IMD at 10 kHz, % | 0.011 | Very good |
General performance | Very good |
ちなみに、PCM2901EのADC仕様によれば、SNR=89dB, THD+N=0.01%だそうですので、ほぼスペック通りの性能が出ています。
ノイズレベルを測定してみると、1kHzノイズおよびその高調波が出ていることがわかります。USB通信によるノイズが影響しているようです。しかしながら、チップ内で影響しているのか、電源経由かは分かりません。50Hzは商用電源ノイズでしょう。(蛍光灯からの容量結合か?)
周波数応答を見ると高域にうねりがあります。うねりがないことが分かっている別のADCで調べても同じ特性が表れたため、DAC自体が持つ特性のようです。
周波数応答 | ノイズレベル |
---|---|
その他
回路についてツッコミなどは歓迎します。
DCDCはチャージポンプの方がノイズ面から有利と思っていたのですが、スパイクノイズを除去する難しさを考えると、インダクタを使った方が良いのでしょうか。非常に悩ましいところです。