8
12
2016
Network Audio Playerもどき
lightMPD + XMOS USB DDC でネットワークプレイヤーの実験

シンプルな構成でネットワークオーディオプレイヤーを試作してみた
lightMPD によるネットワークプレーヤーがそこそこ使えそうなので、これまでの Raspberry Pi (I2S) + PCM1792A + SRC の組み合わせから、Raspberry Pi (USB) + XMOS USB DDC + ES9018K2M の組み合わせに変えてみた.
lightMPD でDSDを再生する場合、I2S信号のままDoPモードで出力し、AK4137の DoP → DSD 変換を用いる予定だが、AK4137の準備がまだできていないので、今回は Raspberry Pi から一旦USB信号で出力し、それを USB DDC で受けて、I2S/DSD 信号に変換し、DACから出力することにした. この方法の利点は市販のUSB DACをそのまま使えることだろう.
先ずはRaspberry Pi 2 のノイズ対策から

電源改良Raspberry Pi 2 【シリーズレギュレータから+3.3V(黄色線 ), +1.8V(薄紫線)を供給】

6ch デジタルアイソレータ(Si8660)でRaspberry Pi 側のノイズ流入を阻止する
Raspberry Pi 2 のローノイズ化については、以前に紹介したのでここでは省略するが、Raspberry Pi 2 が内部で生成する+3.3Vと+1.8Vの電源を、内蔵のDC/DCコンバータを使わずに、外部のシリーズレギュレータを用いて供給している.今回はRaspberry Pi 2 用のユニバーサルボード(サンハヤトやスイッチサイエンス社など)に、+5VDCを供給し、そこから低ドロップアウト型の三端子レギュレータを用いて、+3.3VDC/+1.8VDC を作り出している.
デジタルアイソレータは6chのSI8660 を使用した.Raspberry Pi からのI2S信号3本(LRCK/BCK/SDATA)以外に、RST/DSD ON/MUTE などの制御信号もアイソレートできるように余裕を持たせている.今後I2CやSPIなどのデジタルアイソレータも載せる予定だ.現状ではRaspberry Pi からこれらの制御信号は出力できていないが、今後専用のデバイスドライバなどを開発してRaspberry Pi 側から直接DACボードをコントロールすることを検討するつもりだ.
DIYINHKの新アイテムを導入
Raspberry Pi でI2S出力する際の最大の問題は、I2S出力信号にMCK(マスタークロック)が含まれていないことだ.このMCK信号がないと、大部分の高性能DACは動作しない.MCK信号が出力されない状態でも使えるDACは幾つかあるが、現在市販されているRaspberry Pi 用のDACの大部分はMCKが不要なTI製のPCM5102をDACチップとして使用している.
PCM5102自体はそれ程悪くはないが、やはりもっと高性能なDACを使いたいところだ.高性能DACでMCKが不要なDACはあまりないが、ESSテクノロジー社の ES90xx シリーズは MCKをチップ内部で自動生成する機能があり、ジッター除去機能と相まって、比較的高性能なデジタルオーディオ機器に使われている.
今回は ES9018K2M というDACチップを搭載した、DIYINHKの ES9018K2M XMOS DSD DXDを使ってみた.この ES9018K2M + XMOS DSD DXD のセットでは、XMOSプロセッサ側にES9018K2M制御(I2C)用のコードが組み込まれており、PCM/DSDの自動切り替えやSMUTEなどの処理を行ってくれる.自分で専用の組み込みの制御プログラムを書かなくても良いので、今回のようなちょっとした実験には都合が良い.但し、DIYINHKでは、ES9018K2M + XMOS DSD DXD のセットとして、両方同時に購入しないと、DACボード専用の制御プログラムは組み込まれていないので注意が必要だ.
【追記】このXMOS USB DDCとのセットでなければDSDの自動切り替えができないと思っていたが、実際にこのセットのXMOS USB DDCのI2C出力の様子を観察してみたが、DSD切り替えのコントロールを行っている様子はみられない.実際にI2C側の結線を行わない状態でも、きちんとDSD再生が行われるのでES9018K2M DACチップはDSD自動切り替えモードを持っているようだ.(ES9018K2Mのデータシートが入手できないので詳細は不明)
実際に BeagleBone Black(Green) で Botic ディストリビューションとの組みあわせでは、このDIYINHKのES9018K2M DACボードとの組みあわせで、DAC側のコントロールレジスタをI2Cコマンドで何も制御しない状態でI2S/DSDの自動切り替え再生が行われることを確認している.詳細は『BeagleBone + Botic で簡単DSD Native 再生(その1)』を参照して欲しい.

旧ES9018K2M DAC(左中)、旧XMOS 384kHz DXD USB to I2S/DSD PCB(中央)
新ES9018K2M DAC(左下)、新XMOS 384kHz DXD DSD256 USB to I2S/DSD/SPDIF PCB(中央下)、
AK4495SEQ DAC(右下)

XMOS 384kHz DXD DSD256 high-quality USB to I2S/DSD/SPDIF PCB

ES9018K2M XMOS DSD DXD 384kHz USB DAC with Bit-perfect volume control and SPDIF input

768kHz/32Bit AK4495SEQ DAC, I2S/DSD input
テスト結果
今回のRaspberry Pi 2 + lightMPD + ES9018K2M XMOS DSD DXD 384kHz USB DAC の組み合わせでは、PCM/DSDともにほぼ問題無く再生できた.PCM系では352.8KHz(384KHzは未確認)まで、DSDに関しては DSD256(11.2MHz)まで再生できることを確認している.市販品でDSD256に対応している製品はあまりないので、DSD256を試して見るには良い組み合わせだろう.
同じ構成で、DACを同じDIYINHKの768kHz/32Bit AK4495SEQ DACに交換して試してみたが、PCM系の再生では352.8KHzがホワイトノイズ混じりで上手く再生できなかった.理由は良く分からないが、パラレルモードではなくシリアルモードできちんとDACを制御していないのが原因かもしれない.(追記:パラレルモードでの設定をデフォルトの状態からヘッダーピンを使って任意の設定に変更したところ 352.8KHzでも正常に音が出るようになった.でもAK4495のデータシートには、352.8KHz/705.6KHzに関する記載が無いのだが... ???)
AK4495SEQ DACの組み合わせでは、DSDへの切り替えにはシリアルモードでDSDへ切り替える必要があるので、今回は時間の都合でプログラミングできていないので、DSDの再生は試すことができなかった.
まだ短時間しかテストできていないが、ネットワークオーディオプレイヤーとして、Raspberry Pi 2 + lightMPD + USB DAC の組み合わせはかなり有望かもしれない.

Cantata でDSD/FLACなどの音源を再生してみる