Banana Pro + ES9018K2M DAC
HOME BACK

はじめに

DAC-ICとして評判の高いES9018K2Mを採用したDIYINHKES9018K2M XMOS DSD DXD 384kHz USB DACというキットとRaspberry PiをI2Sで組み合わせた。
しかし、DSDを再生とするとRaspberry Piの能力不足により、音が途切れてしまう。
そのため、より高性能なBanana Proに置き換えたてみたところDSDの再生もスムーズに出来た。
現在はバラック状態であるが、大きめのケースにきちんと収納する予定である。
すでにBanana ProとPCM5102A DACをI2Sで組み合わせてあるので、こちらも参考にしてもらいたい。

とりあえずの動作確認のため、 電源ケーブルやSATAケーブルがはみ出ている。
Banana ProはSATAボートがあるので120GBのSSDも接続してあるが、こちらも仮置状態である。

Banana ProとDACのI2S接続

Banana ProとES9018K2MをI2Sで接続する。

Banana ProのI2Sの信号はcon6の40ピンヘッダーに以下のように現れる。
pin 35 = LRCK
pin 36 = BCLK
pin 39 = GND
pin 40 = DATA

左写真で40ピンヘッダーの左下が2ピン、その右が1ピン、左上が40ピン、その右が39ピンとなる。

左側写真がDAC基板の裏側から見たI2S端子のピン・アサインであり、このLRCK、BCK、DATA、GNDを4本の線で右側写真のようにBanana Proと接続する。

I2Sをサポートしたイメージ・ファイルとMPD関連の設定

I2Sをサポートしたイメージ・ファイルが必要なので、Banana Pro + PCM5102A DACで使用したrawファイルをダウンロードしようとしたが、「404 Not Found」となってしまった。
Banana Pro + PCM5102A DACで作ったマイクロSDカードをコピーすれば、全く問題ないが、念のため、ネットでI2Sをサポートをしているイメージを検索したら
armbian
がヒットした。
ここの Legacy jessie server (Armbian_5.10_Bananapipro_Debian_jessie_3.4.112.7z)をダウンロードし解凍すると約1.3GB の
Armbian_5.10_Bananapipro_Debian_jessie_3.4.112.raw
が得られるので、これをマイクロSDカードに書き込み、各種設定を施すことにした。
このイメージ・ファイルはデフォルトでDHCPとSSHが動作しているので、割り当てられたIPが推測できれば、SSHクライアントからアクセスできる。

id:root pw:1234
でログインすると以下のようなメッセージが現れる。

Welcome to ARMBIAN Debian GNU/Linux 8 (jessie) 3.4.112-sun7i

System load: 0.97 Up time: 1 min
Memory usage: 5 % of 984Mb IP: 192.168.0.109
CPU temp: 43°C HDD temp: 30°C
Usage of /: 35% of 3.6G

ログイン後、すぐに、pwの変更、userの追加を促されるので実行する。
その後、
# apt-get upgrade
# apt-get update
を行う。

DHCPサーバーで割り当てられたIPは場合によっては変わってしまうので、IPを固定する。
以下のコマンドで /etc/network/interfaces を編集する。
iface eth0 inet dhcp をコメントアウトしてiface eth0 inet static 以下を追加した。
root@bananapi:~# vi /etc/network/interfaces

# Wired adapter #1
auto eth0
#iface eth0 inet dhcp
iface eth0 inet static
address 192.168.0.93
netmask 255.255.255.0
gateway 192.168.0.1

リブート後、現状のオーディオ関係の状態をチェックする。
root@bananapipro:~# aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: sunxicodec [sunxi-CODEC], device 0: M1 PCM [sunxi PCM]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: sunxisndi2s [sunxi-sndi2s], device 0: SUNXI-I2S sndi2s-0 []
Subdevices: 1/1
Subdevice #0: subdevice #0

root@bananapipro:~# cat /proc/asound/cards
0 [sunxicodec ]: sunxi-CODEC - sunxi-CODEC
sunxi-CODEC Audio Codec
1 [sunxisndi2s ]: sunxi-sndi2s - sunxi-sndi2s
sunxi-sndi2s

card 1がI2Sをサポートしていることが分かる。

次にMPD関係のインストール、設定を行う。
# apt-get install mpd mpc
# apt-get install alsa-utils

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

次の箇所を赤字のように編集する。
audio_output {
type "alsa"
name "My ALSA Device"
device "hw:1,0" # optional
# format "44100:16:2" # optional
# mixer_device "default" # optional
# mixer_control "PCM" # optional
# mixer_index "1" # optional
}

設定が終わったら、MPDを下記のコマンドで再起動する。
# /etc/init.d/mpd restart
# /etc/init.d/mpd restart
Stopping Music Player Daemon: mpd.
Starting Music Player Daemon: mpdlisten: bind to '0.0.0.0:6600' failed: Address already in use (continuing anyway, because binding to '[::]:6600' succeeded)
.
bind to '0.0.0.0:6600' failedのエラーであるが、 Binding to IPV6 before IPV4 とのことで、以下のように記述すると解消される。
#bind_to_address "localhost"
bind_to_address "127.0.0.1"
bind_to_address "192.168.0.93"
ただし、筆書の場合、エラーが出たままでも問題なく動作しているが、気になるようであれば追加されたい。
なお、"192.168.0.93"はNICに割り当てたIPである。

次は / に music ディレクトリーを作りマウントし、/var/lib/mpd/musicへリンクする。
# mkdir /music
# mount -a
# ln -s /music /var/lib/mpd/music

OSとMPDのバージョンは以下のとおりである。
# uname -a
Linux bananapipro 3.4.112-sun7i #15 SMP PREEMPT Thu Apr 28 23:39:36 CEST 2016 armv7l GNU/Linux

# mpd -V
Music Player Daemon 0.19.1

その他の設定

120GBのSSDをBanana ProのSATAポートに接続して、楽曲ファイルを格納する。
以下のコマンドで接続したSSDのデバイス名を確認する。
# dmesg
[ 2.679296] sd 0:0:0:0: [sda] 234441648 512-byte logical blocks: (120 GB/111 GiB)
[ 2.683813] sd 0:0:0:0: [sda] Write Protect is off
[ 2.687869] sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
[ 2.695973] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 2.698838] sda: sda1
120GBSSDはsda1であることが分かった。
このSSDはすでにext4でフォーマットされているが、新規にext4でフォーマットする場合はfdiskでパーテーションを作った後、
# mkfs -t ext4 /dev/sda1
としてフォーマットする。
これを/musicにマウントするために/etc/fstabに以下の行を追加した。
/dev/sda1 /music ext4 defaults 0 0

筆者は楽曲ファイルの管理はWin7PCのiTunesで行い、楽曲ファイルは自作NASに格納しているが、本機にもsambaをインストールしておけば、このNASに格納した楽曲ファイルをWin7PC上でドラッグするだけで簡単に移動させることができる。
samba関連の2つのソフトをインストールする。
# apt-get install samba
# apt-get install samba-common-bin

sambaの設定ファイルを編集し下記を追記する。
# vi /etc/samba/smb.conf
[music]
comment = music
read only = no
locking = no
path = /music
guest ok = yes
force user = root

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

sambaを再起動して完了である。
# service samba restart
Stopping Samba daemons: nmbd smbd.
Starting Samba daemons: nmbd smbd.

Win7PCから本機の /music へアクセスする場合、スタートボタンのすぐ上の検索窓に \\192.168.0.93(本機に設定した固定IP) と入力し、次に検索されたコンピュータをクリックし、 ID:root、PASSWD:samba とタイプすると共有フォルダー /music が見えるはずである。
これで楽曲ファイルをNASから本機の /music へドラッグするだけでコピーすることができる。

ケース、回路

今回のケースは、いつもより大きめのタカチYM-300(300mm*50mm*200mm)を使用したので、スペース的には余裕がある。
そのため、空いたスペースに小出力アンプも組み込んでみた。
本機でBGMを楽しむ場合、数百mW出力のアンプが内蔵されていると便利である。
ただし、+5V単電源で動作させる必要があるので、NJM2073DをBTL動作させてみたが、 本機のDAC部がバランス出力となっているので、このアンプもバランス入力とした。
この回路では利得調整のため負帰還をかけているが、そうすると入力インピーダンスが10kオーム程度に低下してしまう。
DACの出力インピーダンスは10数kオーム程度もあるため、マッチングのために2SK30のソース・フォロワーを挿入してある。
この内蔵アンプを使用する場合は、ケース外部でDAC出力からアンプ入力へケーブルで接続する。

DAC部はRaspberry Piと組み合わせた「Raspberry Pi+ES9018K2M DAC」と同じである。
DIYINHKの ES9018K2M XMOS DSD DXD 384kHz USB DACキットを使用しているが、オリジナルのOPアンプを使ったI/V回路をスルーして、トランスを使用したI/V回路を採用している。
そのため、OPアンプ用の+-12V電源は不要となり、外部からの電源供給は5V電源だけでOKである。
I/V入力部に使用している直流遮断用のコンデンサーを無極性タイプの330uFに変更した。

特性

PCにインストールしたefu氏のテスト信号発生ソフト WaveGeneでいろいろな周波数、いろいろなレベルの192kHz24BITの サイン波を発生させ、waveファイルとしてSSDに格納した。
それを再生しDACのアナログ出力電圧を計測したが、平衡入力の電子電圧計を持っていないので、DAC出力を不平衡にして計測した。
1kHz0dBFSを再生すると出力電圧は1.0Vとなった。

周波数特性であるが、高域は10kHzから低下が始まっているが、 これはI/V回路の抵抗と並列に入っているコンデンサーの影響と思われる。

歪率特性では100Hz、1kHz、10kHzは揃っており、最小の歪率が0.02%程度となった。

次にアンプ部の特性を計測してみた。
このアンプはDACに接続して使用するので、192kHz24BITのサイン波をDACからアンプまで通してその出力を計測してみた。
1kHz0dBFSを再生し、8オーム負荷で出力電圧が1.5V(=0.28W)となるように音量調整して計測した。

周波数特性であるが、低域は全く問題ないが、高域はDAC単体と比較すると落ち込みが少ないので、アンプ自体の特性として高域が若干ではあるが持ち上がっているのかもしれない。

歪率特性ではアンプを通しているので、DAC単体よりは良くないが、それでもDAC単体と同様な傾向を示している。

まとめ

DAC単体として実際にシステムに組み込んで聞いてみると、出力電圧が1Vと他のDACの半分程度しかないのがネックとなっており、音量が若干、不足する。
しかし、定位が非常にはっきりとしており、音像が前に展開し、ソースの録音の良し悪しが良く分かるのは好ましいと思う。

このNJM2073DをBTL動作にしたアンプは、面白半分で組み込んでみたが、そこそこのパフォーマンスを持っているのには驚いてしまった。
本機は寝室で使用しており、以前は真空管アンプをDAC出力に接続していたが、最近は専ら、このNJM2073Dアンプで聴いている。
小音量で聴く分には、十分、用が足りており、省エネで発熱も少なく、夏向きである。

HOME BACK

Last Update 26/June/2016 by mac