USB-DACを内蔵したヘッドホンアンプを自作しました。
Texas Instruments(旧BurrBrown)のPCM270xシリーズはUSB Audio Classに対応しており、USBI/Fに加え、DDCやDACが内蔵されています。 このシリーズにバッファ用のアンプを付けるだけで、最大48kHz, 16bitのUSB-DACが完成するため、PCオーディオの工作には良く用いられているようです。 本作例では、PCM270xをDDCとして使用し、DACは外部ICを使うことで高音質化を図りました。
PCM270xシリーズからは、PCM2706Cを選択しました。このICは、多くのDACが対応している16bit I2S信号を出力できます。
DAC ICには、電圧出力タイプのPCM5102Aを採用しました。PCM1794のような電流出力タイプではなく電圧出力タイプを採用した理由は、後段のバッファアンプを簡素化するためです。 またPCM5102Aは、RaspberryPiと組み合わせて用いることが多いようで、ネット上に作例が豊富なことも採用した理由です。
PCM2706CやPCM5102Aの動作電圧である3.3Vと、バッファアンプ用の電源12Vを生成する回路です。 ACアダプタの入力15Vを、レギュレータICのMC78M12とNJU7223DL1で受け(※)、12Vと3.3Vを生成します。
また、ACアダプタのスイッチングノイズを軽減するために、L1,C1,R1でLPF(fc=700Hz程度)を構成しています。
(※)バッファアンプ用の電源から、ノイズ源となりそうなディジタルIC用電源を分離するために、レギュレータを並列に接続しましたが、15V→12V→3.3Vのように直列で良かったかもしれません。 並列に構成したことによって、15V→3.3Vの降圧による損失が大きくなり、NJU7223DL1が発熱してしまいました(触った感じで60℃ぐらい)。 今回はヒートシンクを付けて誤魔化しましたが、次は熱設計に気を付けようと思います。
クロックX1には、デジットのPCM270xキットで採用事例があるFOX ElectronicsのFOX924B 12MHzを採用しました。 FOX924Bシリーズは温度補償型の水晶発振器(TCXO)であり、周波数許容偏差が±1.5ppmという精度を誇る上に比較的安価(Digikeyで@279yen)のため、オーディオ系回りの工作に使いやすいと思います。
FSEL(9pin)をGNDに落とすことで、I2S信号(DATA, SCK, BCK, LRCK)を出力する設定としました。さらにPSEL(16pin)をGNDに落とすことで、USBバスパワーを使用しない設定としました。
なお、CK(14pin), DT(15pin)は、デバイス名を設定するEEPROMを接続するために引き出しましたが、まだ実験出来ていません。
PCM2706Cから出力されたI2S信号(DATA, SCK, BCK, LRCK)をPCM5102Aでデコードし、アナログ出力に変換します。
FMT端子(16pin)をGNDに落とすことで、I2S信号をデコードする設定としました。またFLT端子(11pin)は補完フィルタの種類を選択するもので、今回はFIRフィルタを選択することとし、GNDに落としました(※)。
(※)ネット上のどこかで補完フィルタの種類によって音質が若干変わるという記述を見かけましたが、私には違いが分からなかったのでとりあえずFIRを選びました。
バッファアンプ部では、アナログ・デバイセズのアプリケーションノートAN-581と、 Texas InstrumentsのアプリケーションノートJAJA203を参考に(というか丸パクリ)して、 オペアンプOPA2604APを単電源で使いつつ、並列に配置しヘッドフォン駆動能力を上げました。
上図には、右側チャンネルの回路を示しています。 R17とC36はLPFで、カットオフ周波数fc=15kHzにしました(※1)。 オペアンプを単電源で動作させるため、AN-581 に従い電源12Vの中点(+6V)が基準となるようにバイアスをかけました。PCM5102Aのアナログ出力はGND電位が基準となっているため、バイアスカット用のC37が必要です。 JAJA203に従い、OPA2604APを並列に配置し、 増幅率は1倍(Unity-gain)に設定しました。 OPA2604APはUnity-gain stableですが、念のため発振防止用にC41とR25を付けました。 C42はバイアスカット用のコンデンサです(※2)。2連ボリュームVR1を通してヘッドフォンジャックに接続(※3)しました。
(※1)PCM5102Aデータシートの回路例にあるので、とりあえず付けました。折り返しノイズの除去を目的としている、という認識で良いのでしょうか?fc=15kHzで違和感は無かったのですが、
今回扱うサンプリング周波数は48kHzのため、折り返し地点までの24kHz付近までfcを上げても良いのかもしれません。
(※2)1000uFだと、電源投入後に音声が出力される(コンデンサが充電される)まで数秒掛かったので、470uF位で良いかもしれません。
(※3)今回、ボリュームをヘッドフォン出力の直前に挿入したのですが、ボリュームを最小にしても極めて小さい音が漏れます。
ボリュームをアンプ前段の位置(R17の位置)にすると音漏れは無くなったので、ボリュームの位置が関係しているかもしれません。原因はいずれ検証することにします。
今回もOSSのKiCadで設計し、99mm×84mmの2層基板になりました。
アートワークで特に気を付けたのは、コンデンサの配置です。 +3.3Vラインの供給は、できる限りC9から行うようにしました。
アナログ回路、特にオペアンプ周辺は最短配線になるように頑張ったのですが、NFBのループが大きかったり、配線が汚かったりしますので、改良の余地がめっちゃ有りそう…。
生板の製造と外装アクリルのレーザーカットはElecrowにお願いしました。相変わらず安いのでプロトタイピングには重宝します。 シルクのズレはまぁまぁ許容範囲でした。
部品をはんだ付けして完成です。PCにつなぐとすぐに使えて便利。音質は私好みで、なかなか満足です。
今回はとても難産でした。オペアンプの電源を逆接してゴミと化したrev1、生半可な知識で仮想電源回路に手を出し不安定になったrev2を経て、 ようやく動くものを作ることができました。 また表面実装品を初めて全面採用したことで、はんだ付けの難易度が上がり、実装にとても苦労しました。 おかげさまで技量は上がったような気はします。
あと、自分の知識に危機感を覚えたので、本を読んでいます。川田 章弘氏の著作「OPアンプ活用 成功のかぎ」という書籍がちょうど良い感じです。 この本には、本作例にも用いたJAJA203の回路も詳しく解説されているので、ステップアップにお勧めです。
今後の展望としては、高音質化や、ミキサー回路と組み合わせてより実用的なものを作ることを考えています。 また、フィルタやボリューム回路の検討、配線の最適化、音質が良いと言われる「電流出力タイプのDAC + I-Vアンプ」の構成も試してみたいですね。