Raspberry Pi Zero W + ES9018K2M DAC
HOME BACK

はじめに

Raspberry Pi Zero Wでいろいろと遊んでみて、WiFiがかなり有効に使えることが判った。
また、大容量のSDカードにOSだけではなく、楽曲ファイルも格納すると便利であることも判ったので、I2S接続でDAC基板と組み合わせてみる。
今回、使用したDAC基板はBreeze Audio ES9018K2M ES9018 I2S Input Decoding Board Mill Plate HIFI DACで、送料込みで$12.19とかなりリーズナブルな値段である。
使用されているDAC-ICはES9018K2Mで、筆者もすでにこのDAC-ICを使用したDIYINHKES9018K2M XMOS DSD DXD 384kHz USB DACというキットを使用しているが、それとの違いもチェックしてみたい。

DAC基板

これが届いたDAC基板で、この他にI2S接続用のコネクターが同梱されていたが、説明書等は一切なかった。
上述したサイトにも記述されているのは一般的な仕様だけであるが、I2S接続のピン・アサインについては画像があった。
電源関係はDC 9-25V (2 wire) or AC 7-18V (3 lines)と記載されてる。
DCの2 wireは判るが、ACの3 linesは意味不明であったが、基板上のパターンをチェックすると、どうやら両波整流用の中点のあるAC入力の意味のようである。
回路構成は、基板の部品配置からDAC-ICの差動出力をOPアンプによりI/V変換しているシンプルなものと思われる。
ちなみにOPアンプにはJRC5532DDが使用されていた。
DC入力は9-25Vとなっていたので、試しに12Vと24Vを供給して、OPアンプの4-8PIN間の電圧を測定してみたら10Vと22Vとなったので、供給する電源電圧によりアナログ部分の性能に影響があるかもしれない。

Raspberry Pi Zero WとDACの接続

Raspberry Pi Zero WのI2S端子は左側写真の位置にあり、DACのI2S端子は右側写真のとおりである。
これらをDACに同梱されているI2S接続用のコネクターで結線する。
ただし、I2S接続用のコネクターを使用するためには、40PINのヘッダーピンをRaspberry Pi Zero Wへ装着する必要がある。

付属のコネクターでLRCK、BCK、DATA、GNDの4本の線をRaspberry Pi Zero Wのヘッダーピンに挿入する。

Raspbian Stretch Lite

本機にインストールするOSはRaspbian Stretch Liteの最新バージョン2017-11-29-raspbian-stretch-liteとした。
当然、WiFiも有効にする必要があるので、 「追補 Raspbian Stretch Liteのヘッドレス・インストール(WiFI編)」を参照してインストールした。

インストールが終了したら、raspi-configを立ち上げて、必要な設定を行う。
$ sudo raspi-config
筆者が実施した設定箇所は以下のとおりである。
1 Change User Password
4 Localisation Options
>I2 Change Timezone
5 Interfacing Options
>P2 SSH
7 Advanced Options
>A1 Expand Filesystem
>A3 Memory Split
8 Update

DAC・MPD関連の設定

ES9018K2MをI2S接続で使用するための設定を施す。
以下のファイルを作成する。
$ sudo vi /etc/asound.conf
pcm.!default {
type hw card 0
}
ctl.!default {
type hw card 0
}

/boot/config.txtに以下を追記する。
$ sudo vi /boot/config.txt
dtoverlay=rpi-dac
dtoverlay=sabreberry32

これでリブートしてaplay -lで確認すると、ドライバー等が組み込まれたことが判る。
$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: ALSA [bcm2835 ALSA], device 0: bcm2835 ALSA [bcm2835 ALSA]
Subdevices: 8/8
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
Subdevice #3: subdevice #3
Subdevice #4: subdevice #4
Subdevice #5: subdevice #5
Subdevice #6: subdevice #6
Subdevice #7: subdevice #7
card 0: ALSA [bcm2835 ALSA], device 1: bcm2835 ALSA [bcm2835 IEC958/HDMI]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: sndrpirpidac [snd_rpi_rpi_dac], device 0: RPi-DAC HiFi pcm1794a-hifi-0 []
Subdevices: 1/1
Subdevice #0: subdevice #0

次はMPD関連のインストール・設定を行う。
$sudo apt-get install mpd mpc
$sudo apt-get install alsa-utils

MPDの設定ファイルである /etc/mpd.conf を編集する。
$sudo vi /etc/mpd.conf
最初に bind_to_address という行を探し#でコメントアウトする。
#bind_to_address "localhost"

次の箇所を以下のように編集する。
audio_output {
type "alsa"
name "My ALSA Device"
device "hw:1,0" # optional
# mixer_type "hardware" # optional
# mixer_device "default" # optional
# mixer_control "PCM" # optional>br> # mixer_index "0" # optional
}

今回は、楽曲ファイルをマイクロSDカード本体に格納することにした。
/ に music ディレクトリーを作りマウントし、/var/lib/mpd/musicへリンクする。
$sudo mkdir /music
$sudo mount -a
$sudo ln -s /music /var/lib/mpd/music

設定が終わったら、MPDを下記のコマンドで再起動する。
sudo /etc/init.d/mpd restart
[ ok ] Restarting mpd (via systemctl): mpd.service

次にUSBメモリーの自動マウントの設定を行う。
$sudo apt-get install usbmount
$sudo ln -s /media /var/lib/mpd/music

ただし、Raspbian Stretch LiteではUSBメモリーの自動マウントを有効にするためには、以下をslaveからsharedに変更する。
$sudo vi /lib/systemd/system/systemd-udevd.service
MountFlags=shared
リブートすると設定が有効になる。

次にsamba関連の2つのソフトをインストールする。
$sudo apt-get install samba
$sudo apt-get install samba-common-bin
sambaの設定ファイルを編集し下記を追記する。
$sudo vi /etc/samba/smb.conf
[music]
comment = music
read only = no
locking = no
path = /music
guest ok = yes
force user = root

次にpasswdを設定する。
今回はsambaとした。
$sudo smbpasswd -a root
New SMB password:samba
Retype new SMB password:samba

sambaを再起動して完了である。
$sudo service samba restart
Failed to restart samba.service: Unit samba.service is masked.
再起動出来なかったが、それでもWindowsPCから\\192.168.0.90\musicでアクセスすると問題なく/musicに到達し、楽曲ファイルも格納できた。

特性

バラックのままであるが、SDカードに格納した楽曲ファイルを再生すると問題なく聴くことが出来た。
192kHz24bitの再生もOKだったので、特性を計測してみた。
DAC基板の電源は12VのACアダプター、Raspberry Pi Zero Wへはモバイル・バッテリーから供給した。
周波数特性を計測して驚いたのは高域での低下が全くないことであり、今までこのような特性は見たことがない。
また、1kHz0dBFSにおける出力が2.4Vもあり、 OPアンプ周りが、どのような回路構成となっているのか調べてみたいと思っている。
念のため、DAC基板の電源を24VのACアダプターに代えて計測してみたが、特性は同じであった。
特筆すべきはバラックセットのままでも残留雑音が80uVと非常に低いことであり、これには驚いている。

次は歪率特性であるが、こちらもそれなりの特性を示しているが、DAC基板への供給電源電圧により、違いが出ている。
上図が12V電源、下図が24V電源であるが、24V電源の方が最小歪率が低くなっている。

ケーシング

ケーシングするために基板を改造した。
1 両波整流用のダイオード2本を撤去し、1本だけジャンパーして交流入力用端子を直流入力用に転用した。

2 電源ラインの電解コンデンサー680uF63Vを1000uF25Vに交換した。

3 OPアンプ出力の直流遮断用電解コンデンサー220uF6.3Vを音響用の220uF10Vに交換した。

4 出力用RCA端子を撤去して、直接ワイヤーを接続した。

5 5V単電源で使用するために、秋月電子のDC/DCコンバーター・キットを採用し、DAC基板用に14Vを確保した。

左図が電源系統図で、5V電源を秋月電子のDC/DCコンバーター・キットでDAC基板用に昇圧している。
各電源系統の配線にはフェライト・コアFB-801を挿入してある。

タカチのケース(YM-200)を使用し、写真のように配置した。
シャーシーへのアースポイントは、出力のRCA端子で絶縁用ワッシャーを省いてある。
Raspberry Pi Zero WとDAC基板が離れているが、これはI2S接続用ケーブルの取り回しの関係であり、本来であれば、もっと接近して配置すべきである。
USB端子には変換コネクターを接続してケース外からアクセスできるようにした。

まとめ

DC-DCコンバーターを内蔵したので、5V単電源で本機を動作させることができ便利である。
DAC基板自体は12Vで75mA程度の消費電流であり、Raspberry Pi Zero Wと合わせても5Vで数百mA程度の消費電流なので、モバイル・バッテリーでも問題なく動作する。
内蔵WiFiが効いているので、LANケーブルは不要なので取り回しが楽であり、 WiFi経由での楽曲ファイルの入れ替えもストレスを感じない。
本機のコントロールは、PCではGMPC、スマホやタブレットからはDroidMPDで行っている。

下図はDAC基板へ供給する電源電圧を24V(ACアダプター)、14V(DC/DCコンバーター)、12V(ACアダプター)と変化させた場合の歪率特性(1kHz)である。
14V(DC/DCコンバーター)でも24V(ACアダプター)と同様な特性を示しているが、各レベルの歪率が微妙に悪化しているのが気になるところである。
なお、DAC基板へ供給する電源電圧を変えても周波数特性は同じであった。

本機と同様なコンセプトのRaspberry Pi Zero W + pHAT DACと比べて試聴してみた。
pHAT DACのDAC-ICはTI PCM5102Aであり、本機はES9018K2Mであるが、本機の方が一枚上手であると感じられた。
また、同じES9018K2Mを使用したBanana Pro + ES9018K2M DACと比べると同じような傾向の音だと感じた。
それにしてもRaspberry Pi Zero W とES9018K2M DAC基板、合わせて4,000円程度の出費でこれだけの高音質が得られるとは驚きである。
PCM系は192kHz24bitでも問題なく再生できるが、DSDは2.8MHzでも音切れが発生してしまう。
DSD再生中に、topコマンドでCPU使用率を監視するとPCM系再生に比べると大幅に増えているので、Raspberry Pi Zero WではCPU能力が不足しているのかもしれない。
なお、上述したBanana Pro + ES9018K2M DACでは、2.8MHzDSDは再生できるが、5.6MHzでは音切れが発生してしまう。

HOME BACK

Last Update 18/Jan/2018 by mac