高音質ラズパイ用DACの設計と製作
概要
ラズパイ用の高音質DAC(msBerryDAC)を開発しました。対応機種は次のとおりです。
- Raspberry Piシリーズ
- Raspberry Pi Zeroでの動作報告もあります。
購入は取扱店からお願いします。
発端
ラズパイにI2S機能がついていてDACボードを製作できることは随分昔から知っていましたが、全く製作する気はありませんでした。
なぜなら、ラズパイのI2Sクロックはかなり狂っていて(詳しくはほーりーさんの記事をご覧ください)、そのようなクロックではどんなに頑張っても良い音質のDACを製作することは無理があるからです。
ところが今年初め頃、HiFiBerryDAC+ PROという外部クロック搭載のラズパイ用DACが存在することを知りました。これを応用すれば、高音質なラズパイ用DACを製作できそうです。
設計要件
去年はadiaryの開発に集中していましたので、久しぶりの大型ハードウェア開発です。新型のD級ヘッドホンアンプと並列しながらの開発となりました。
- 「HiFiBerry DAC+ PRO」互換(ドライバ互換)
- 完成品で頒布。
- 値段は1万円。
「HiFiBerry DAC+ PRO」互換
独自のハードウェア構成とすると、ドライバを新規に開発せねばなりません。それ自体は別段構わないのですが、別の問題があります。
ラズパイ用には色々なオーディオ用ディストリビューション(ソフトウェア)が頒布されています。独自のハードウェアを色々なディストリビューションで使えるようにするためには、どうしてもユーザー側の手間が増えてしまいます。
せっかく扱いやすい音楽再生用ディストリビューションがたくさんあるのに、ドライバのコンパイルなど、とても初心者におすすめできる作業ではありません。
完成品で頒布
いつもならキットにしてコストを下げるところですが、かなりのコスト高を覚悟して完成品の頒布を優先しました。ハンダ付けなどできない層にも気軽に使ってもらいたいという気持ちからです。
価格設定
回路や部品選択は一切妥協するつもりはありませんが、値段が高過ぎると購入のハードルはどうしても高くなります。絶対の自信を持って作るけども、今回のDACに関しては多くの人に使ってもらいたいという気持ちから価格をギリギリまで下げました。
開発中、オーディオ関係に詳しい人に意見を伺ったとき
「安いと性能が悪いと思われる」
とも忠告されましたが、「値段を半分にして倍の人数に使ってもらえたら嬉しい」というただそれだけの理由で、無茶をしてこの値段に設定しています。
下調べ
部品選択をしようにも、昔に調査したきりぜんぜん更新されていませんでした。そこでまず部品について再調査することから始めました。
回路図と解説
※製品版とは一部回路が異なることがあります。
設計仕様
- PCM5122 384KHz/32bit DAC
- 外部クロック動作
解説
見ると分かるとおり、大半が電源回路になっています。今では稚拙なところもあるPCM2702DACを最初に発表した時からの信条でもありますが、どんなに良いDACチップでも電源の設計が悪いと大した音は出てきません。*1
逆に、大して音が良くないと思われているDACチップでも、きちんと電源を設計してあげると、とても素敵な音を奏でるようになります。実際、PCM2702 DAC(48KHz/16bit)を改造しつつ未だに現役使用していますが「HiFiBerry DAC+ PRO(384KHz/32bit)」よりもよっぽど良い音が出ています。
DACチップであるPCM5122は内部で負電源を生成する機能を持っていますが、今回の回路ではその機能を使用せず外部からローノイズの負電源を与えています。
また、よくあるDAC回路では、各部の電源を一つのレギュレーターで生成しているものが多いのですが、その構成では電源ノイズの影響を互いに受けてしまいます。かと言って単純に電源レギュレーターを分けただけでは、高周波ノイズが簡単に通過してしまい、これまた互いにノイズの影響を受けてしまいます。
この回路では、電源をそれぞれ独立に「コイル、フェライトビーズ、抵抗、大容量電解コン」でフィルタした上で、ローノイズの電圧レギュレーターを使用して電源を供給しています。
- ADP150は、超ローノイズの電源レギュレーターです。
- ADP7182もローノイズの負電源レギュレーターで、C72によって低周波まで低ノイズのレギュレーションを実現しています。
- クロックには、水晶発振器よりも音質に優れるMEMS素子10ppm/25ppm発振器を使用しています。*2
- 出力はパッシブフィルタ構成です。これには次の狙いがあります。
- オペアンプによる音質劣化を受けることなくフィルタを構成できる。
スピーカー用の他、ヘッドホンでの使用も考え、最大出力を2Vpp程度に下げる。
- R1~R6には音質の優れる薄膜チップ抵抗を使用しています。
- C1~C4には音質の優れるチップコンデンサ、ECHUを使用しています。
再生ソフト
HiFiBerry DAC+ PRO互換にした甲斐があり、以下のラズパイ用ディストリビューションがそのまま使用できます。
- Volumio2
- Moode Audio Player 2.6
- Rune Audio
- lightMPD
その他、多くのオーディオ用ディストリビューションは「HiFiBerry DAC+ PRO」に対応しているので、そのまま使用することができます(I2Sドライバ名は「HiFiBerry DAC+ PRO」または「HiFiBerry DAC Plus」を選択してください)。
また再生ディストリビューションによって音質が少し異なるようです。個人的には384KHz/32bitにアップサンプリングした状態で再生するのが一番良いように思います(Volumio2での384/32再生確認済)。
製作当時はLinuxカーネルの制約から384KHz再生ができるディストリビューションは限られていたのですが、今では384KHz再生できるようになっているようです。
製造
設計を終えたのは良いとしても、完成品を売るためにはリフローで製造しなければなりません。
部品調達から、メタルマスク、リフロー業者への依頼まで、慣れないことだらけでてんてこ舞いになりました。特に部品調達。部品の種類はかなり絞り込んだつもりだったのですが、それでも結構な量を調達するにあたり、あちこち調べまわっていたら大変な手間(と金額)になりました。
なるほど、調達を専門にする業者があるの分かる気がする。この作業とても面倒くさい。
サポート情報(Ver1.01基板専用)
この項目は2016年に頒布したVer1.01基板専用の情報です。
ヘッドホンアンプ部について
Bispaよりオプションで提供されているヘッドホンアンプ部についてですが、無線LAN運用時に誘導ノイズが発生することが確認されています。以下対策方法です。
- USB WiFi全体をアルミホイルで覆う。
- オペアンプの2pin/6pinに直付けで100pFのチップコンを入れGNDに落とす。
- 他の方法で解決できるなら付けない方が音質は良いです。
- 裏面を銅箔テープでシールドする。
- C23/C24を大容量高分子コンデンサ(6.3V/470uF以上。PSF/PSC/SEPC等)に変更する。
- ラズパイ3内蔵無線LANアンテナに、上から銅箔テープを貼る。
出力を大きくする
出力をあえて小さめに設定してありますが、どうしても大きくないと困るという場合はパターンカットすることで大きくすることが可能です。
この変更を行うと10dBほど大きくなりますが、20KHzで2dBほど減衰します。
サポート情報(Ver1.11基板用)
DAC部の変更点。
- LINE出力が約2Vrms(±3V程度)に変更されています。*3
HPA部の変更点。
- ヘッドホン最大出力は約1Vrms(±1.5V程度)です。
- 疑似Tアッテネーター(右画像参照)にすると音質が向上します。ただし、極小音量でボリュームが調整しにくくなります。*4
- テストした範囲ではOPA1602が最も音質に優れました。
- しかしOPA1602は裸ゲインが大きくWiFiノイズの影響を受けやすいため、手軽に影響を皆無にしたければADA4622をおすすめします。
Volumio2にて音が本体から再生される場合
おそらくDAC出力ドライバが正しく設定されていません。
出力ドライバを正しく設定していれば、例えmsBerryDAC本体に不良があろうともラズパイ本体やHDMIから音が出ることはありません。再生ボタンを押した瞬間に画像のようにエラーになります。
対応策。
- I2S DACのon/off設定をいじる。
- Volumio2の再インストール。
- Volumio2以外のディストリビューションを試す。
- Volumio2の不具合と思って諦める。
Volumio2の設定例
Volumio2等でのラズパイ3内蔵WiFi無効化
/etc/modprobe.d 以下の適切なファイルに、以下を記述。
blacklist brcmfmac
出力の4極ジャックについて
出力には4極ジャックを使用しています。普通の3.5mm3極プラグを刺せばそのまま使えますが、4極プラグを刺せばLGとRG(左右のGND)を分けて取り出すことが出来ます。
極性は、プラグ先頭から L/R/LG/RG です。
独立電源化について
基板左上の5Vのシルク内にある細いパターンをカットして、5Vの下側とGNDに良質な5V電源を与えると、ラズパイ本体の電源とmsBerryDACの電源を分けることができます。*5
おそらく劇的な効果を生むと思いますが、試してはいません。
C1/C2音質改善改造
msBerryDACの出力フィルタにある、C1/C2ですが容量が大きめでDACへの負荷が高すぎたようです。
C1/C2の容量を「10nF → 1nF(ECHU 1nF=1000pFを強く推奨)」に変更すると劇的に音質が改善します。(ECHU千石でも売ってるそうです(2%品))
代わりの部品を買うのが面倒という人は、C1/C2を外してしまっても構いません。音の広がり(奥行き感)は外したほうが上です。
おそらくR1-R4も1KΩぐらいのほうが良いと思いますが(未テスト)、RT0603の25ppm以下が手に入る人以外は、試すのはやめたほうが良いです。
取り扱い店
完売しました。購入されたみなさまありがとうございました。
作例、評価、参考リンクなど
- msBerryDACで検索してください。
- Twitterのツイート検索
ラズパイ4でmsBerryDACをUSB-DAC化する記事。