USBAudio2.0 DACの完全自作!BD34301EKV搭載

USBAudio2.0 DACの自作!BD34301EKV搭載

ハイレゾアンプに続き、デスクトップ向けの高性能DACアンプを作ることになりました。

Amazon Music HD のハイレゾ配信もいつしか無料(追加料金無し)で聴けるようになり、このご時世、PCでゲームをする機会も増えています。

コンパクトなボディーに BD34301EKV を中心としたハイスペックな回路を詰め込んで、スピーカーでもヘッドホンでも手軽にハイレゾが聴けるようにしてみました。

自作USBAudioAmpの中基板3枚で構成しています。

ある程度の余裕があったので、やろうと思えばもっと小型化できそうです。

BD34301EKVの写真BD34301EKV!
必要な周辺部品はほぼパスコンだけです。

パスコンは基板裏面も活用し、チップとの距離を最短にしています。

自作USBAudioAmpの背面初めて使ってみたUSB Type-Cコネクタ。
ハンダ付けはそんなに難しくなかったです。

スピーカー端子は激安品。まあデスクトップ向けなのでこれでいいかなという感じですね。

パワーアンプはエミッタ抵抗レスです。

構成と仕様

デスクトップ向け高性能DACアンプとして、コンパクトサイズを最優先としています。
音質的には原音忠実路線で考え、シンプルで使いやすいように設計します。

ハイレゾ USB Audio Class2.0対応

サンプリング周波数 44.1kHz~384kHz 16/24/32bit PCM対応。
小型化するため、PIC32MZで完全自作して組み込んでいます。
より詳しく⇒USB Audio2.0の自作!PICでI2Sハイレゾ出力に成功

超高性能DAC BD34301EKV 搭載

SN比130dB、THD+N -115dBを誇る、ロームのMUS-IC™シリーズのDACチップ採用。

BD34301EKVブロック図と特徴

BD34301EKV – データシートと製品詳細 | ローム株式会社

高性能アナログ回路

・I/V変換とパワーアンプに OPA161x(歪み率0.000015%)を採用。
・シングルエンド変換回路に INA1620 (歪み率0.000025%)を採用。

I/V変換回路は、ゲイン切り替え方式によりDACでのビット落ちを低減するとともに、アナログボリュームを廃止して、シングルエンド変換回路とアンプ入力の完全直結を実現。
これは、アナログ入力などの外部入力も省き、入力セレクタやバッファなどの余計な回路も一切通していないため、真のダイレクト接続となっています。

リニアトランスバイアス方式 0dB低出力バッファアンプ

デジタルアンプ(ClassD)ではなくアナログアンプを採用し、余計な電圧ゲインをなくしてノイズや歪み率を悪化させないようにしました。無駄にハイパワーなアンプは不要。
また、リニアトランスバイアス方式により、出力段のスイッチング歪を抑えています。

さらに電流帰還をかけて、エミッタ抵抗レスのアンプとしました。

手持ちの都合から4Ωスピーカーで設計、最大出力は1.1Wx2(4Ω)、0.6Wx2(8Ω) です。
真空管アンプで言うところの、いわゆるミニワッターになりますね。

ノイズフィルタ内蔵パワーレールスプリッタ電源回路

ACアダプタ12Vから±電源を生成。パワーアンプも完全DCアンプで組めるため、出力コンデンサを省き小型化にも貢献。

その他

・低消費電力スタンバイモード(無再生状態からオート遷移する)
・SP/HP 切り替えスイッチ(ステレオジャック抜き差し操作をなくした)
・USB Type-C

ブロック図

本作のブロック図です。
自作USBAudioAmpのブロック図

PICのシステムクロックは99MHz、スタンバイモードでは12MHzで動作します。

負電源の必要性について

BD34301EKVのデータシートでは、(見落としでなければ)電流出力ピンの許容する電圧範囲が示されていません。サンプル回路を見ると0V(GND)で使っており、これに従うとすると、どうしても負の電源が必要になります。

チャージポンプなどを利用してI/V変換回路専用の±電源を生成し、他は全て通常の+電源にするという手もありますが、今回は小出力アンプであるということと、アンプのDCカット出力コンデンサの実装スペースが少ないといったことから、パワーレールスプリッタを用意して、完全DCアンプとすることにしました。

ただ、レールスプリッタはその原理上、消費電力の半分を熱で捨てることになるため、効率は悪いですね。BTLにしてしまう方法もありますが、本作では見送りです。

トランスリニアバイアス回路について

自作USBAudioAmpのトランスリニアバイアス回路本作の電流帰還付きトランスリニアバイアス回路です。

トランスリニアの回路を考えてみると、結構色んなパターンでトランスリニアバイアスを実現できる事が分かります。その中で一番気に入ったのがこの回路。

ベースは、最も基本的で一般的とも言えるダーリントン接続のSEEP回路なんですが、ちょっとした工夫でそれをトランスリニアバイアス化できました。

さらに定電流源を追加し、電流帰還がかかるようにもしているため、エミッタ抵抗も不要です。

トランスリニア原理を応用したパワーアンプは、こちらで詳しく解析されています。

BD34301EKVの廉価版?について

耳寄り情報です。
BD34301EKVより少しだけスペックの低い BD34352EKVという品種があります。

BD34352EKV は、そのスペックの割にかなりの低価格なので、これを使えばコスパ抜群のDACを作ることができます。

BD34301EKVとBD34352EKVの違い
BD34301EKVBD34352EKV
THD+N-115dB-112dB
SN比130dB126dB
出力電流9.8mA6.25mA
価格¥11500 程度¥1100 程度
MUS-IC™の称号有り無し

この程度の違いなら、コスパを考えて BD34352EKV にするのも断然アリですね。

両者はピンコンパチなので、本作の回路のままで BD34352EKV も動作すると思いますが、出力電流が小さいので、I/V変換回路のゲインを少し高くしてやる必要があります。
また、一部のレジスタで設定する値が異なるので、そこを修正する必要があります。

回路図と基板

回路は機能ごとに3つのパートに分割しました。KiCadの階層シートを使って各機能を記述し、階層シートごとに基板を作る形としています。

抵抗値に「*」が付いている抵抗は、精度が 0.1% の抵抗です。

全体回路図

全体回路図

電源部(PowerSection)

電源部回路図

自作USBAudioAmpの回路図(電源部)

本作では、ACアダプタ電源12Vからレールスプリッタを使って、各電源を生成します。
ACアダプタからの入力は、10mHのコモンモードチョーク(L1)とエミフィル(EMF1)でノイズ対策しています。

パワーレールスプリッタは、よく見るカレントミラー回路を応用したものです。
大電流を取り出せるようにするために、インバーテッドダーリントンの形で出力トランジスタ(Q29,Q30)を追加しています。

この回路では、カレントミラー回路にデュアルトランジスタを使い、なおかつ発熱源がインバーテッドダーリントンの出力側なので熱暴走はしません。
しかし、出力トランジスタの発熱によってそのIcが上昇するため、電源投入直後しばらくの間はバイアス電流量が上昇します。

このままの回路でも特に問題はありませんが、熱的安定性を高めるなら、出力トランジスタ(Q29,Q30)に、0.47Ω程度のエミッタ抵抗を入れた方が良いでしょう。

それから、カレントミラー回路だけでは、出力電流が大きくなった時、中点電位のズレが大きくなります。それを修正するため、OPA990(IC1)を使ってNFBをかけています。
このオペアンプは、電源の絶対定格が42Vと高く、堅牢性の高い安定したオペアンプで、12Vに直結しても安心です。SOT-23パッケージを使っています。

総じてよく見ると、カレントミラー型パワーアンプと同じです。R3とR4で分圧した静的電圧を電力増幅しているようなものです。
なので、出力コンデンサ(C5,C6)を取ると、立派なパワーアンプ(0dB)となります。

ということは、出力コンデンサは、アンプの容量性負荷になるので、接続するコンデンサのESRや容量に注意が必要です。下手すると発振の危険性がありますが、この回路ではゲインが0dBであることもあって、安定しています。
ビビって容量小さめにしましたが、もっと大容量でも問題ないと思います。

アナログ回路の±5Vを生成するのは、超低ノイズで有名な LT3045LT3094 です。
本回路では、手持ちの関係で LT3045EMSE-1 となっていることに注意してください。
後ろに「-1」が付いているものとそうでないものとでは、pin3の機能が異なります。

USB TypeCは、MicroUSBなどと比べるとピン数が多くなっていますが、従来のような用途で使う限りでは、回路が複雑になるわけではありません。ただ、ピンCC1とCC2に抵抗を接続する必要があります。

これは、接続相手が同じUSB TypeCの場合に、相手に電力供給を受ける側であることを通知するようなもので、その場合、USB仕様で5.1Kと決められています。

電源部基板(90×64 手動配線)

電源部基板ガーバー(表)電源部基板ガーバー(裏)

オーディオ部(AudioSection)

オーディオ部回路図

自作USBAudioAmpの回路図(オーディオ部)

PIC32は、USB Audioの機能に加えて、DACなどのアンプ要素を制御します。

ここで搭載しているUAB Audio機能は、次の記事で開発したもので、352.8kHz/384kHz 24/32bitをサポートするために、2つの外部OSCとクロックデバイダを使っています。
より詳しく⇒USB Audio2.0の自作!PICでI2Sハイレゾ出力に成功

BD34301EKV 自体に必要なのは、ほぼパスコンだけですね。
データシートに載っている回路では、全ての電源ピンに100uFと0.1uFのパスコンが入っていますが、本作ではここにメスを入れて独自に改良しました。

とはいっても、一部容量を変えたり、パスコンの位置をチップに極限に近づける工夫をしただけです。各パスコンの位置がチップに近いため、電解コンデンサは全ての電源ピンに用意する必要性はあまりなくなっています。

アナログ電源の0.1uFのパスコンは、全て1uFのフィルムを使用。また、一部の電解パスコンには低ESRの有機ポリマコンデンサを使用。
例えば、AVCCピンのC71(220uF)は、ESR18mΩという超低ESRな品です。

I/V変換回路には OPA1612 を使いました。ラッチングリレーによって、フィルタ定数を維持しながら、I/V変換ゲインを2通りに切り替えられます。

ボリューム(VR1)はアナログボリュームではなく、電源を分圧した電圧をPICで読み取って、BD34301EKVのデジタルボリュームとIV変換ゲインを制御するためのものです。
つい、Aカーブを使ってしまいましたが、DACのデジタルボリュームは一般にデシベル設定なので、Bカーブの方が良いですね。

オーディオ部基板(90×83 手動配線)

オーディオ部基板ガーバー(表)オーディオ部基板ガーバー(裏)

アンプ部(AmpSection)

アンプ部回路図

自作USBAudioAmpの回路図(アンプ部)

I/V変換後の信号をINA1620で受けて、カットオフ周波数120kHzの多重帰還LPFフィルタと、シングルエンド変換を行います。
そしてそれを、アナログボリュームなど余計なものを挟まず、インピーダンスが低いままダイレクトにアンプに接続している所がポイントです。

INA1620を使うと、誤差0.004%以内の内蔵簿膜抵抗による高精度なシングルエンド変換ができるため、高いCMRRを実現できます。LPF用の270Ω(R53/R54/R55/R56)にも誤差0.1%の薄膜抵抗を使い、コンデンサにはフィルムを使っています。

1pinと6pinの「REF_GND」は、シングルエンド変換時の基準電圧を一点アースポイントにすることを意味していて、実際には電源部のAGNDへ接続します。

JMP1/JMP2とR25/R27は、アンプのテスト用に用意してあります。外部信号を入力する時は、このジャンパーを外します。外すと OPA1611 の+入力が不定になるので、R25/R27でバイアスしています。

アンプ部のリニアトランスバイアス回路部分リニアトランスバイアス回路を構成する部分です。

リニアトランスバイアスの基本的な回路では、終段のコレクタ側に電流検出用のトランジスタを挿入しますが、この回路では終段トランジスタで直接的に電流を検出する形なっているため、よりシンプルな回路になっています。

終段は発熱が大きいため、リニアトランス回路のトランジスタ同士は熱結合すべきです。
本作では、この4つのトランジスタに同じ品種のパワトラを使い、熱結合と放熱が同時にできるよう、機構的に工夫しています。

リニアトランスバイアス波形LTSpiceでのシミュレーション結果です。
青は上側(Q22)、緑は下側(Q23)、赤は出力。

トランスリニア原理により、終段トランジスタに流れる電流は0にはなりません。

但し、出力が大きくなってくるほど、電流の変化率は急峻に見えてくるので、消費電力とのトレードオフでバイアス電流をなるべく多く流すように調整します。

2SK209は定電流回路で、ソースのVRで電流を調節します。バイアス電流を多く流すと、電流の変化がよりA級に近づくため、さらなる歪の低減やスループットの向上が期待できますが、当然、消費電流が増加し発熱が増えます。本作では25mAに設定しました。

この回路では、電流帰還もかかるようにしており、熱暴走の心配がないため、出力段のエミッタ抵抗は不要。エミッタ抵抗レス信者にとっては嬉しい回路です。
(終段(Q22)で電流が増えると、トランスリニア原理によりQ9の電流も増えるが、Q5BのIcは定電流であるため、Q17への電流が減りQ22も減る)

出力リレーには消費電力を抑えるためにラッチングリレーを使っています。電源を切った時は、電源の電解コンデンサ(主にC51(3300uF))にチャージされている電力が底をつく前に、ソフト側で素早くラッチ操作(10ms)してリレーをOFFします。

アンプ部基板(90×94 手動配線)

アンプ部基板ガーバー(表)アンプ部基板ガーバー(裏)

パーツと入手先

全パーツリストです。(機構部品は含みません)

パーツリスト(タブ区切り)

手持ちの部品以外は、全て通販で揃えました。主に利用した通販サイトです。

より詳しく⇒電子工作パーツ入手先!おすすめの電子パーツ通販と店舗

製作手順

今回は、基板はPCBWayで発注しました。

より詳しく⇒プリント基板の自作!簡単にできる格安オーダーメイド法

オーダー時に提出したガーバーファイルを公開します。

これらのガーバーには含めていませんが、実際には、アンプ基板のボリュームの下に敷く補助基板も追加して発注しました。

ボリューム補助基板の切り出し異種面付けでは追加料金がかかるので、面付けではなくパターンをちょいと追加して、自分で切り出しています。

ミニカッティングテーブルソーミニカッティングテーブルソー
基板のカットが楽チンになる!木材やケースの加工にも使えるミニテーブルソー。この値段で品質もよくオススメ。

基板実装

電源基板(PowerSection)

USB-Cコネクタのハンダ付けUSB Type-Cコネクタのハンダ付けです。思ってたよりかは簡単でした。

エミフィルBNX029-01のハンダ付け。エミフィルBNX029-01のハンダ付けです。

エミフィルBNX029-01のハンダ付け(2)この大きさであの性能はすごいですね。

差動ラインコモンモードチョークのハンダ付け同じくムラタの、小信号差動ライン用のコモンモードチョークフィルタです。
これまたかなり小さいのに、ちゃんとコイルが巻いてあります。
どうやって作ってるんですかね。

電源コモンモードチョークコイルACアダプタからの電源入力に挿入するコモンモードチョークフィルタです。
萌え萌えします。

低背タイプの電解コンデンサ電源カップリング用の電解コンデンサ。
ケースに納めるため、低背タイプを使います。
複数並列にして、もう少し容量を増やしても良いかもしれません。

電源部パワートランジスタの取り付けパワートランジスタは、基板の裏側にこのように取り付けます。

基板とアルミケースの間に5mmのスペーサを挟むと、簡単に放熱機構が作れます。

完成した電源基板(表)電源基板完成(表)

完成した電源基板(裏)電源基板完成(裏)

完成した電源基板(1)電源基板完成。

完成した電源基板(2)愛しのチョークコイル様~

オーディオ基板(AudioSection)

オーディオ基板への発振器の取り付けまずは発振器。
これは5mm×7mmサイズなので余裕です。

BD34301EKVのハンダ付け(1)BD34301EKVのハンダ付けに入ります。

BD34301EKVのハンダ付け(2)位置合わせ定番のやり方です。
位置合わせ中。

SL-54インスペクションルーペ SL-54
電子工作、特に表面実装部品のハンダ付けに超オススメ!というか必須になります。横からコテを入れられるのがポイント。

BD34301EKVのハンダ付け(3)端のピンだけ付けたら後は簡単。

BD34301EKVのハンダ付け(4)全ピンをハンダ付けして洗浄したところ。

BD34301EKVのハンダ付け(5)裏側裏側の穴から共晶ハンダを流し込んで、EXP-PADもハンダ付けします。

共晶なのは融点が低くてやりやすいからですが、普通のハンダでもOK。

BD34301EKVの裏側BD34301EKVのアナログ電源ラインのパスコンは、全てフィルムコンデンサです。
デジタル電源にはセラコンを使っています。

これらのパスコンは、基板背面も利用して極力BD34301EKVに近づけています。

オーディオ基板へのI/V変換抵抗のハンダ付けI/V変換回路に使っている高精度抵抗です。

緑色なのが効きそうですが、多分関係ない。

電源ラインのチョークコイルリレーなどの電源供給ラインに挿入するチョークフィルタ。

完成したオーディオ基板(表)オーディオ基板完成(表)

完成したオーディオ基板(裏)オーディオ基板完成(裏)

完成したオーディオ基板オーディオ基板完成

アンプ基板(AMPSection)

INA1620のハンダ付け(1)INA1620のハンダ付けです。
このチップはピンが出ていませんが、溶かしたハンダの毛細管現象と側面の利用でハンダ付けできます。

INA1620の仮付けと四方確認他と同じように端の1ピンだけを仮付けします。
四方の側面を確認し、パッドと位置が合っている事を確認したら、

INA1620のハンダ付け(2)ハンダをペチャと付けながら、全ての面を処理していきます。
フラックスを付けると楽ですね。

INA1620のハンダ付け完了洗浄するとこんな感じ。意外と簡単です。
リフローより美しいかも?

アンプ基板パワートランジスタの取り付け(1)アンプ基板のパワトラも電源基板と同じ要領で付けます。

アルミケースを放熱板として利用します。

アンプ基板パワートランジスタの取り付け(2)全部で8本、できました。

アイソレータコイルの自作準備アイソレータコイルを自作します。

丸棒に巻いたアイソレータコイルポリウレタン線をシゴイて真っすぐにしたら、Φ8mmの棒に巻きつけていくだけです。

自作アイソレータコイルの容量測定目標1uHですが、ちょっとくらいズレてもOK。

LCRメーター LCR40LCRメーター LCR40
C:0.4pF-10000uF(±1.5%)
L:1uH-10H(±1.5%)
但し、小さい値では精度は落ちます。

アンプ基板へのアイソレータコイルの取り付け基板にハンダ付けします。

アンプ基板の完成アンプ基板の完成。

仮組みと動作確認

ケースに組み込む前に、仮組みして動作の確認をします。

コネクタの自作コネクタを作ります。

より詳しく⇒コネクタの自作!電子工作の圧着工具と圧着方法

仮りヒートシンクの取り付け動作確認では、最大の設計値で電流を流してみたりするので、ヒートシンクを取り付けます。

基板同士の接続電源基板のテストが済んだら、各基板を接続して全体の動作テストを行います。

電源基板とアンプ基板の丸ピンソケットを利用した接続一部の接続は丸ピンソケットを利用。
例えば、電源基板とオーディオ基板は、この様にスタッキング接続します。

連結ピンのハンダ付け連結ピンは、この時点でハンダ付け。

USBシリアルの配線ログ表示のためのUSBシリアルは、オーディオ基板上のUARTと2本線で接続します。

PICへのファームウェアの書き込み電源を入れて、PICへファームウェアを書き込みます。

LEDが点灯している様子PICで制御しているLEDが点灯しました。とりあえず成功です。

ケースへの組込み

ケースは、タカチのオーディオ アンプシャーシ EXシリーズ EX11-3-16SS を使い、カスタム加工を行いました。

ケースの加工図
参考までに本作の図面です。

jwcadを使って、DXF形式で加工図面を用意しました。それをマルツ経由で送ったところ、清書した図面が返ってきました。
その一部分抜き出したのが左の図面です。

基板の実装では少々余裕があったので、もう少し小さなケースに入れてさらなる小型化も可能と思います。

届いたケース。EX11-3-16SS。ケースが届きました。

LEDの導光管を作るベースとなる、穴を開けた木の棒まず、LEDの導光管を作ります。
木の棒に穴を開けてΦ2mmのアクリル棒を突っ込み、サンドペーパーで磨いて平らでザラザラした断面を作ります。

ケースの穴にLED導光管を挿入したところケースのLED穴に突っ込んで、

LED導光管の接着固定裏側から接着剤で固定します。

青いのは、セリアで見つけた接着剤専用のハケです。

TWM-06アクリル丸棒 2mmφ
アクリルでできた丸棒です。
アクリルでなくとも、プラスチックの丸棒でも良いかもしれません。

電源基板の固定用スペーサーを置いたところ電源基板を固定します。
裏側からビスを刺し、M3x5mmのスペーサーを置きます。

ビスは、超低頭ビスを使いました。

電源基板のパワトラにシリコングリスを塗ったところ電源基板のパワトラにシリコンラバーシート置いて、さらにシリコングリスを塗ります。0.2mm程の隙間があるので。

電源基板のネジ止め基板をネジ止め。
ナットや一部は六角スペーサも使います。

ACアダプタやUSBの穴位置USBのコネクタや、ACアダプタの穴位置は設計通りにピッタリ!一安心です。

ちなみに、このACアダプタジャックは、秋月電子で売っている最大10A流せるタイプです。

アンプ基板を固定する用意次に、同様にアンプ基板を固定する準備。
こちらは3mmスペーサーです。

コイルの絶縁コイルが上の基板にギリギリなので、念のためポリイミドテープで絶縁しておきます。

ポリイミドテープポリイミドテープ
電子機器内部の絶縁に非常に良く使われている絶縁テープ。バッテリー周辺などで一度は見たことがある人も多いと思います。

アンプ基板のパワトラにシリコングリスを塗ったところこちらのパワトラにもシリコングリスを塗っておきます。

放熱だけでなく、リニアトランスバイアス回路のトランジスタ同士の熱結合が目的です。

アンプ基板の固定ビス止めします。
コネクタを接続して配線します。
こんな感じで収まりました。

フロントパネルへのスイッチの取付けフロントパネルにスイッチを取り付けます。

スイッチを締め付けているところスイッチの六角ナットは小さいので、このレンチがないと厳しいです。ラジオペンチとかでやると、パネルにキズを付けてしまいます。

TWM-06モンキー@ポケット TWM-06
ボリュームやスイッチなどの薄型ナットの締め付けにオススメです。ラジオペンチでやると傷つけやすいですからね。

フロントパネルの取り付けフロントパネルを取り付けます。

ちなみに、このスイッチは軸が少し回るため、あまりオススメできませんね。

フロントパネルとLEDの位置合わせLEDの位置もピッタシ。

ボリュームノブの位置合わせ不安だったボリュームノブの位置ズレも無し!

スピーカー端子ヤフオクで買った激安のスピーカー端子。

品質はイマイチですが安い。

スピーカー端子の絶縁スピーカー端子へ配線して、天板と接触しないようにポリイミドテープで絶縁します。

オーディオ基板の固定オーディオ基板を固定して、全ての配線を終えます。

ケースの底ケースの底はこんな感じです

このケースにはゴム足が付属しますが、もう少し高さが欲しかったので、秋月で買ったゴム足を貼り付けました。

天板の固定天板を固定して完成~!

ヒョイと持てるコンパクト感。

発熱ですが、室温25℃でしばらく使っていると、ケースがほんのり温かくなる程度でした。

ファームウェア

本作のソフトは、別記事で紹介しているUABAudioの試作で開発したソースに対して、DACなどのアンプとしての制御処理を追加しただけのものです。

DACとの兼ね合いなどで少しばかり追加変更していますが、UABAudioとしてのコアロジックはそのままです。
より詳しく⇒USB Audio2.0の自作!PICでI2Sハイレゾ出力に成功

主な追加内容は次の通り。

  • BD34301EKVの制御
  • その他制御(出力リレーやLEDなど)

BD34301EKVの制御

BD34301EKVの制御は、データシートの内容だけで十分でした。
BD34301EKVデータシート

制御シーケンス

電源立ち上げシーケンスと立ち下げシーケンスが詳しく載っているので、それをそのまま実装しただけです。他のDACに比べるとやや複雑というか、ここまで書かれていない事の方が多いと思います。

電源立ち上げシーケンス

BD34301EKVの電源立ち上げタイミングチャート

電源立ち下げシーケンス

BD34301EKVの電源立ち下げタイミングチャート

この中で電源制御、例えば、AVCCより先にDVDDを供給するとか、もしこの通りじゃなかったら壊れるのか?と心配になりますが、多分そんな事はありません。もし壊れるならそう書いてあるはずだし、そもそもその程度で壊れるような製品は出さないでしょう。
これらの手順を守らないと、本来の性能を発揮しないモードに入ってしまう可能性があるとか、そういった話なのではないかと思います。

本作では、DVDDIO(3.3V)は常時ONしているので、その次から始まります。電源立ち上げ時はほぼ指示されている通り。立ち下げ時はAVCCの降下を待っている間に全体の電源が切れますが、完全な電源OFFなので特に問題ないだろうと考えています。

また、サンプリングレート変更時には、PCMモード間でのモード切り替えを実施する必要があります。もちろん、これもそのまま実行しているだけです。

PCMモード間モード切り替えシーケンス

BD34301EKVのPCMモード切り替えタイミングチャート

ボリューム制御

BD34301EKVのボリューム設定方法自体は簡単なんですが、そのボリューム値を決めるのに工夫が必要でした。

まず、本作ではI/V変換回路のゲインを切り替えて、なるべく音量の大きい領域でDACを使うように考えているため、アッテネータのリレー制御を伴います。

また、DACのボリュームはデシベル設定なので、アナログボリュームのAカーブで読み込んだ電圧に比例したデシベル値では、急激に音量が上がるように聞こえてしまいます。

今回は、回路でAカーブを使ってしまったので、それを補正する処理を入れました。

結果的には思惑通りにできましたが、今思うと、例えBカーブ品を使っていたとしても、この補正は必要なんじゃないかと思うほど急激にボリュームが上がる感じがします。

なお、補正値の計算で乗数を求めるのに指数関数を使いましたが、これを使った途端に負荷が上がり、最適化レベルが0でないとSPIでアンダーフローが出るようになりました。
PIC32でも、浮動小数点演算は重たいようです。

音質関連レジスタの設定

音質に影響するレジスタの設定値については推奨値が書かれていて、本作では全てその通りにしています。
BD34301EKVの推奨設定表

デジタルフィルタは、サンプリング周波数が88.2/96kHz以下ではシャープロールオフ、176.4/192kHz以上ではスローロールオフにしてみました。

その他制御

シャットダウンと出力リレー

回路図のところにも書きましたが、出力リレーにはラッチングタイプを使っています。
本作はいきなり電源が切れるタイプなので、電源の電解コンデンサのチャージ電力が無くなる前に素早くリレーをOFFしなければなりません。

タスク処理にて、AVDDの電圧を常時監視し、所定の電圧(4.8V)を下回ったら速攻でシャットダウン処理を実行するようにしています。

シャットダウン処理では、リレーをOFFラッチした後、USBを切断し、DACの電源立ち下がりシーケンスを実行します。3300uFの電源コンデンサの余力でここまでできます。

パワーセーブ

USB未構成の時は、CPUをガンガンに回していても仕方ないのでクロックダウンします。
USB未構成というのは、USBケーブルが接続されていなかったり、PCがスリープしていたり、PC側でオーディオデバイスが非アクティブとされている状態です。

また、USBが構成されたにも関わらず、1分以上経っても音声再生が開始されない場合も同様にクロックダウンします。

どちらの場合でも、システムクロックを(99MHz→12MHz)するとともに、AVDDをOFFして消費電力を抑えます。

また、AVDDをOFFすると、先の電圧監視ができず電源OFF操作が検知ができなくなるため、この時点で出力リレーのOFFや、DACの電源立ち下がりシーケンスも実行します。

LED表示

次のような表示にしてみました。

  • 起動直後:1秒間点灯
  • USB未構成:長周期OFF点滅
  • パワーセーブ:長周期ON点滅
  • 再生準備中:短周期点滅
  • アイドル/再生中:点灯

ソースとビルド

公開しているファイルは、MPLAB Xプロジェクトを含んでいます。

ソースファイル一式(c/hファイル in ZIP)

解凍して出てきたプロジェクトをパソコン上の適当な場所にコピーして、MPLAB X で開けばビルドできます。ビルドに必要な外部ライブラリなどはありません。

なお、最適化レベルは「2」に設定してあります。(これより低いと高レートで受信時にSPIのアンダーフローが発生します)

使用したIDEのバージョンは下記の通り。2022/4 頃の最新版です。

MPLAB X IDE:v6.00
XC32:v4.00

MPLAB- X IDE | Microchip Technology Inc.

書き込みやデバッグには PICkit4 を使いました。

Microchip MPLAB PICkit4インサーキットデバッガ/プログラマPICkit4
PICkit3より色々拡張されていますが、速度が早くなったのが一番のメリットです。PICkit3のもっさり感が解消されています。

動作検証

音質評価

普通に良い音です。ノイズも全くありません。面白くない評価ですが、そういう音です。

0dBアンプという先入観もあるせいか、非常に素直な音だと感じています。深い心地よさとか、みなぎる力強さとか、そういったものはないような気がします。
まさに、「何も足さない何も引かない」と言ったところでしょうか。雑味が混じっていないと響かない人にとっては、少々物足りなさを感じるかもしれません。

ゆえに、音源の品質がそのまま出てくる感じですね。これだと、ゲームサウンドも選ばないと思いますので、デスクトップ向けと言っていいかもしれません。

BD34301EKVの音質ですが、なんと表現したら良いやら…。
定位とかシンバルやらボーカルがどうだとか、、どうなんでしょう。素晴らしい臨場感に、いい音としか言えないです。。

こんな事を言うと一部の大先生に怒られるかもしれませんが、現代の高性能DACはどれも同じ理論に基づく似たようなデジタル処理なので、人の耳で聴いてそんなに違いがわかるものなのか?という疑問を持っています。(もちろんアナログ部の違いはありますが)

音が違うとすれば、I/V変換など他の回路との相性や影響が大きいハズなので、SNR 120dB、THD+N -110dB を超えるような超高性能DACの音質について、人の耳で単体評価することは難しいのではないかと。

それに、そんなレベルになってくると、再生側は音源側の特性で覆いかぶされてしまい、もうそっちの話になってくるのでは?と思ったりもします。

波形確認

各部の波形です。

HiRes USBAudioAmp MCLKの波形見る意味はないかもしれませんが、MCLKの波形確認です。

PICのREFCLKOからの出力、49.152MHzを、1/2分周した後の24.576MHzです。

パワーアンプ

回路図中のJMP1/2を外した状態で、TP8/TP9から入力し、TP6/TP7でのアンプ出力を計測しました。

6Vppの1KHzと100KHzで、4Ωのセメント抵抗を負荷としています。

HiRes USBAudioAmp 出力(正弦波1kHz)1kHz正弦波。

HiRes USBAudioAmp 出力(正弦波100kHz)100kHz正弦波。特に問題ありません。

HiRes USBAudioAmp 出力(方形波1kHz)1kHz方形波。

HiRes USBAudioAmp 出力(方形波100kHz)100kHz方形波。

このスケールで見で、立ち上がり斜めが見えるということは、スループットはさほど高くはないですね。最終出力段のトランジスタ1石に4Ω負荷なのでこんなもんでしょう。

出力1W程度なので特に問題ではないですね。

RIGOL デジタルオシロスコープ DS1202Z-E 200MHz 2ch 1GSa/sRIGOL DS1202Z-E
RIGOLも低価格オシロで知られる中国メーカーです。この価格で200MHzで1Gs/sですから、電子工作には十分なスペックです。

ダウンロード

製作に使用した全ファイルです。無断で二次配布することはご遠慮ください。ご紹介いただく場合は当記事へのリンクを張ってください。連絡は不要です。

全回路図(pdfファイル in ZIP)
ソースファイル(c/hファイル in ZIP)
パーツリスト(タブ区切り)

ファームウェア開発環境:MPLAB-X IDE