Raspberry Pi Zero W + UDA1334A DAC
HOME BACK

はじめに

Raspberry Pi Zero Wと組み合わせる小型のDAC基板を探していた時、たまたま見つけたのがUDA1334Aを搭載した本機である。
寸法は 40.0 mm x 25.0 mm x 7.1 mmとかなり小型であるが、データシートを見ると出力は900mVしかなく、ハイレゾは96kHzまでしか 対応していないが、小型で安価ということで通販で購入してみた。

下記が届いたUDA1334A DACであるが、ピンヘッダーも同封されていた。
I2Sで使用する場合、左側写真下の9ピンだけに半田付けすれば事足りるが、折角なので全てのピンを半田付けした。

セット・アップ

初めて使用するUDA1334A DACであるので、Raspberry Pi Zero Wと仮接続してデータ採取することにした。
ジャンクのパネルにUDA1334A DACとRaspberry Pi Zero Wを仮配置し、ジャーパー線で両者を接続した。
DACの電源は5Vであるが、Raspberry Pi Zero W経由で供給することにした。
UDA1334A DACとRaspberry Pi Zero間の結線は以下の表のとおりである。
DACのPIN7-PIN8-PIN9は表には記載されていなが、オーディオ出力で PIN7-左チャンネル、PIN8-オーディオGND、PIN9-右チャンネルでRCA端子に接続されている。
なお、DACのPIN2は3.3Vで使用していない。

OSのインストール、DAC・MPD関連の設定

OSとしてはRaspbianの後継であるRaspberry Pi OS Liteをインストールしたが、詳細については 「Raspberry Pi OS Lite のインストール備忘録」を参照してもらいたい。

UDA1334A DACとRaspberry Pi Zero WはI2Sで接続されているので、音響関係の現況を確認してみる。
$ aplay -l
aplay: device_list:272: no soundcards found...

音響関係は認識されていないので、以下の設定を施す。
$ 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=hifiberry-dac

これでリブートしてaplay -lで確認すると、デバイスが認識されドライバーが組み込まれたことが判る。
$ aplay -l
aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: sndrpihifiberry [snd_rpi_hifiberry_dac], device 0: HifiBerry DAC HiFi pcm5102a-hifi-0 [HifiBerry DAC HiFi pcm5102a-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:0,0" # optional
# mixer_type "hardware" # optional
# mixer_device "default" # optional
# mixer_control "PCM" # optional
# mixer_index "0" # optional
}

次に、楽曲ファイル格納用ディレクトリー musicを作り、マウントし、リンクを張る。
$sudo mkdir /music
$sudo mount -a
$sudo ln -s /music /var/lib/mpd/music

次にUSBデバイスの自動マウントの設定を行う。
$sudo apt-get install usbmount
$sudo ln -s /media /var/lib/mpd/music
次に以下のファイルを作り、コメントする。
$sudo mkdir /etc/systemd/system/systemd-udevd.service.d
$sudo vi /etc/systemd/system/systemd-udevd.service.d/00-my-custom-mountflags.conf
[Service]
PrivateMounts=no

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

次に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

[media]
comment = media
read only = no
locking = no
path = /media
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 not found.
再起動出来なかったが、それでもWindowsPCから\\192.168.0.90へでアクセスすると問題なく/media、/musicに到達し、楽曲ファイルも格納できた。

最後に、OSとMPDのバージョンは以下のとおりである。
$ uname -a
Linux raspberrypi 5.4.83+ #1379 Mon Dec 14 13:06:05 GMT 2020 armv6l GNU/Linux

$ mpd -V
Music Player Daemon 0.21.5 (0.21.5)

特性

PCにインストールしたefu氏のテスト信号発生ソフト WaveGeneでいろいろな周波数、いろいろなレベルの96kHz24BITの サイン波を発生させ、waveファイルとして/musicに格納した。
それを再生しDACのアナログ出力電圧を計測してみた。
1kHz0dBFSを再生すると出力電圧は1.0Vとなり、残留ノイズは0.24mVとかなり高めであるが、これは金属製のケースに入っておらず、むき出しのままであることが影響していると思われる。
周波数特性は、5Hzから30kHzまで、ほぼフラットであり-20dBでも同じ傾向であった。、

歪率特性は、かなりお粗末であり、今まで製作したI2S接続のDACの中で最低な特性となってしまった。

まとめ

データシートを見て気になったのが、Product specification 2000 Jul 31の記述である。
どうやら、このUDA1334Aは20年以上も前に開発された製品であると思われる。
筆者がI2S接続に手を出したのが、2014年頃なので、このUDA1334Aが2000年当時どのようにして使われていたか興味のあるところである。
仮接続の状態だが、当然、音出し可能であり、ハイレゾは96kHz24BITのWAVは問題なく再生できたが、192kHzは駄目である。
やはり、出力が1Vしかないので、メイン・アンプのボリウムを上げる必要がある。
肝心の音であるが、あまりピンとくるものではなく、このDACをどのようにすべきか悩みそうである。

HOME BACK

Last Update 28/Mar/2021 by mac