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に到達し、楽曲ファイルも格納できた。

OSとMPDのバージョンは以下のとおりである。
$ uname -a
Linux raspberrypi 4.9.59+ #1047 Sun Oct 29 11:47:10 GMT 2017 armv6l GNU/Linux

$ mpd -V
Music Player Daemon 0.19.21

特性

バラックのままであるが、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では音切れが発生してしまう。

追補

ES9018K2Mは平衡出力であるので、これをそのまま増幅してトランスで合成することも可能である。
かなり以前に製作した器材がお蔵入りの状態となっていたので、これを引っ張り出して新たに購入したRaspberry Pi Zero W、 ES9018K2M DAC基板と組み合わせてみた。
ここで問題となるのが、ES9018K2Mからの平衡出力の取り出しである。
基板上のチップ抵抗を外してワイヤーを半田付けすれば取り出せそうであるが、残念ながらそのような細かい作業のスキルがない。
基板のI/V変換のOPアンプ周りをチェックすると下図のような構成となっていたので、OPアンプを外してそのソケットから信号を取り出すことにした。
当然ではあるが、最適な回路、定数ではないが平衡電圧信号を得られるので、コンデンサーで直流カットして6DJ8差動アンプへ入力する。

写真左側は本来のOPアンプの電源ラインへ5Vを供給するように改造してある。
DAC-IC周りへはOPアンプの電源ラインから3.3Vレギュレーターを経由して電力供給しているが、 OPアンプを使用しないので、ここへ5Vを供給すれば、DAC基板として動作する。
なお、不要部品を取り外してワイヤー接続端子としている。

5V電源は、6.3Vヒーター端子から5Vレギュレーターで安定化したもので、Raspberry Pi Zero Wへも供給する。

写真右側でははOPアンプを外し、別ソケットを挿入して平衡出力を取り出している。

回路図は以下のとおりである。

ラインアウトプット・トランスはタムラA-8713である。
タムラA-8713は1:2次側インピーダンス 20kCT(5ksplit):600CT(150split)、1次最大直流電流DC10mAx2である。
6DJ8の差動アンプは片側4mAを流し、FETの定電流回路でトータル8mAとしてある。

電源トランスは、大昔のタンゴ ST-30Sであるが、 高圧巻き線はAC260Vもあるので、中点を使用してAC130Vを全波整流し、リップル・フィルターFETのゲートにツェナー・ダイオードを挿入して安定化した。
2本の6DJ8/E88CCのヒーターを直列に接続して12Vで点灯させるが、こちらもトランスの巻き線がAC15Vと高めなので3端子レギュレーターを挿入してある。
前述したが、5V電源は6.3Vヒーター端子を整流して5Vレギュレーターで安定化した。

既存器材を再利用したので、ケース内の配置は合理的ではなく、バラック状態である。
ケース内のスペースが不足していたので、苦肉の策でRaspberry Pi Zero Wと ES9018K2M DAC基板はサブシャーシーに搭載して前面パネル裏に取り付けた。

OSは上述したRaspbian Stretch Liteであり、WiFIが効いているので、LANは不要であり、楽曲ファイルもマイクロSDカード内に格納してあるので、AC電源ケーブルを接続するだけでオペレートできる。

以下は192kHz24bitのサンプルwavで計測した特性である。
周波数特性は、低域、高域ともかなり低下が著しいが、気になるのは-20dBでの低域の低下であり、今回のベースとなった真空管バッファ・アンプでも-20dBで同様な傾向があったので、それを引き継いでいるようである。

次は歪率特性であるが、こちらは掲載するのが嫌になるほどひどいものである。
100Hzのデータが不可解な動きを示しているが、こちらもベースとなった真空管バッファ・アンプでも同様な傾向があるが、本機の方がそれが強調されているようである。
資料を整理していたら、本機に使用したタムラA-8713に関するデータが出てきた。
歪率特性の悪さは、どうやらタムラA-8713に由来しているようであり、このデータを覚えていたら、今回のトライはなかったと思われる。

試聴すると特性ほどにはひどいとは感じられないが、せっかく真空管差動アンプを投入してもそれなりの結果が得られていないことは残念である。

HOME BACK

Last Update 25/Mar/2018 by mac