4
04
2015
Raspberry Pi 2 + Volumio + DAC でネットワークオーディオに挑戦(その3)
DACをI2Sダイレクト接続してみる
Raspberry Pi + Volumio の組み合わせでは、先の汎用USBポートを介した接続方法以外に、Raspberry Pi のGPIO(汎用入出力)端子経由で、DACチップの汎用的な入力データフォーマットであるI2Sという形式の信号を出力する事が可能だ.

I2S drivertを “Hifiberry”、Audio Outを “sndrpihifibery” に設定
このI2S接続方式によるRaspberry Pi 用の市販のDACボードは結構市場に出まわっているようで、VolumioのForumでも代表的な物が幾つか紹介されている.“LIST OF I2S DACS FOR RASPBERRY PI”
I2Sについて
I2S という信号の詳細については専門外なので良く分からないが、”Inter-IC Sound” というデジタル音声信号をICチップ間でシリアル伝送するための規格だそうだ.殆どの人はデジタルオーディオデータのシリアル伝送規格として、S/PDIFのような民生用の機器間インタフェースやAES/EBUの様なプロ用のインタフェースを思い浮かべるかもしれないが、I2Sはディジタルオーディオ機器内部の局所的なシリアル伝送方式で、殆どのDACチップはこのI2S信号を処理してアナログ音声信号に変換することができる.
I2Sで使われる信号線としては次の3本の信号線が必要で、大部分のDACチップではこの3本の以外に、マスタークロックと呼ばれるディジタル信号間の同期を取るための基準となるクロック信号が必要だ.
・LRCK ステレオ音声信号のLチャネルとRチャネルを区別するためのクロック信号
・BCLK ビットクロック データ信号の同期を取るためのクロック信号
・SDATA ディジタル音声のデータ信号 (DIN)
・MCLK マスタークロック信号
DACチップによっては、MCLKを外部から供給しなくてもBCLK等のデータから内部で自動的にMCLKを作り出すことができる物があり、この場合はLRCK,BCLK,SDATAの3本だけでDA変換することができる.
Raspbery Pi + Volumio の組み合わせでI2S信号をGPIO端子から出力する場合、残念ながらMCLK信号は出力することができないので、LRCK,BCLK,SDATAの3本だけで対応可能なDACチップを使わざる負えない.”LIST OF I2S DACS FOR RASPBERRY PI”で挙げられている、Raspbery Pi 用のDACボードは殆どが、Texas Instruments(旧Burr-Brown) のPCM5100シリーズを使用している.このPCM5100シリーズDACはDACチップから直接電圧出力が取り出せるローコスト版なので、ハイエンドDACの様な音質をとことん追求するような用途には向かないが、一般的な用途としては十分な音質だろう.このチップのデータシートを見る限り、DACチップの周辺にチャージポンプ用のコンデンサーやローパスフィルタ用のRC回路程度の簡単なパーツを追加するだけで、簡単にオーディオ出力が得られるようなので、今回の実験用としては申し分のないDACチップだろう.興味のある人は日本語で書かれたTexas Instrumentsのホームページがあるので、目を通しておくと良いだろう.

PCM510x Block Diagram
PCM510xA2.1VRMSDirectPathTM, 112/106/100dBAudioStereoDACwithPLLand32-bit, 384 kHz PCMInterface

LRCK: GPIO19 – Pin#35, BCLK: GPIO18 – Pin#12, SDATA: GPIO21 – Pin#40 の出力波形を観察する

I2S信号をオシロスコープで観察してみた(上:BCLK、下:LRCK)

I2S信号(上: SDATA、下: BCLK)
先ずは PCM5102 DACを使ってI2S出力に挑戦してみた
Texas Instruments社のPCM5102を使えば簡単にRasberry Pi 2でI2Sによるサウンド出力が可能であることが分かったので、早速PCM5102を入手してI2S接続を試してみることにした.PCM5102チップは秋葉原辺りでも比較的入手し易く、千石電商の本店2階では1個400円と手頃な価格で売られていた.ただ、問題はこのDACチップは表面実装型のパッケージしかなく、ピン間隔が 1/20inch(約0.64mm)で 20pinある.これを載せることのできるプリント基板を作成するのは、ホビーレベルのアマチュアでは難しいので、とりあえず既製の変換基板を購入し、ピン間隔2.54mmに変換することにする.

先ずはピッチ変換基板上で正確に位置合わせを行う

機械のようには上手く半田が載ってくれない

この方法では綺麗かつ電気的特性を損なわずに実装するのは難しいそうだ

別なDAC(PCM-1794)と変換基板の組み合わせでも挑戦してみるが無残な結果に...
...という訳で、DACチップからの自作は諦めて半完成品のDAC基板を利用することにした

Sunhayato MM-5102 DACモジュール(千石電商本店2Fで購入)

DACチップは予め20pin DIPサイズ基板に実装してあるので扱いやすい