BD34352をつかったDACを考えてみよう! 2021.12.14

こんな書き込みをいただきました。



ROHMからの新しいDACですね。以前にROHMのDACについてBD34301をつかったものを基板化しましたが、雰囲気的にはBD34352も同じような
感じです。ただ、BD34301に比べてかなりローコストになっているので、かなりお気楽につかえそうな気がします。
まずは、どんな素子か調べてみましょう!

BD34352 vs BD34301

まずはデータシートから主要な特性をピックアップです。
両者を比較すると、SNRとTHN-Dで約3dBの差がありますが、それ以外は同じの様子です。
なんとパッケージも同じなので、ピンレイアウトが同じならDAC34301のパターンがそのままつかえることになります。

BD34352 BD34301
データシート bd34352ekv-j.pdf bd34301ekv-j.pdf
ビット数 32 32 同じ
動作周波数 768kHz 768kHz 同じ
SNR(dB) 126 130 BD34301の方が3dB良好
THN-D(dB) -112 -115
電圧(AVCC) 4.5-5.5V 4.5-5.5V 同じ
電圧(DVCC) 1.4-1.6V 1.4-1.6V 同じ
I/O電圧(DVCCIO) 3.0-3.6V 3.0-3.6V 同じ
パッケージ HTQFP64 HTQFP64 同じ

ピンレイアウトを比較してみると、ほとんど間違い探しの様相ですが完全にピンコンパチのようです。
こりゃ、基板は共用化できそうな感じです。

BD34352 BD34301
ピンレイアウト 間違い探しのようですが
同じのようですね。

何が違うのかな?
 すくなくとも、SNRとTHN-Dでは3dBの差があるのですが、一体何が違うのだろう? まだマニュアルをよくみていませんがディジタルフィルターあたりに構成が違うのかな?
マニュアルが同じだったらBD34301がBD34352の選別品ということもありうるのかな? それにしても値段が違いすぎるしな〜。一度ゆっくりみてみて比較する必要がありそうです。

どうしよう?
 BD34352とBD34301がピンコンパチなら、すぐにでも基板はつくれそうですが気になるのは昨今の半導体不足です。
たった1個のICが入手できなくても、代替品がなければ致命傷です。DAC34301では電圧レギュレータにLT3042をつかっていますが、これは入手できるかな〜?
とりあえずDIGIKEYにはまだ在庫はありそうです(といっても油断していると、すぐに無くなってしまいますが・・・・)。

まずはポチっとしてみましょう。まだ在庫あればいいけど・・・。

間違い探し? 2021.12.15

具体的にどこがどう違うのか、マニュアルを並べて比べてみました。ほぼコピペで作ったようなマニュアルで、
中身はほとんど同じです。もう間違い探しの世界です。


BD34301とBD34352とで何が違うか調べてみました。

気づいたところは下記点くらいです。反対にいえば、これ以外は主要な特性を除いてほとんど同じということのようです。

BD34301 BD34352
ポストアンプ回路の定数が若干違います。
これは、DACの電流出力の振幅違いによるものでしょう。
電流出力の振幅が違います。BD34301の方が約60%大きいです。
これがSNRの差でしょう。でもAVCCの消費電流は同じなんですよね〜。
チップパージョン
レジスタ01hの読み出しですが、
型番の末尾2桁なので違っていて当然です。
01H 52H
Volume Transision Time(20h)

設定する値をすこし変える必要があるようです。
レジスター42h,43Hの設定

ここもすこし変更必要です。

制御ソフトについては、設定値が異なるだけで設定の順番等はすべて同じのようです。
ということは、BD34301とBD34352の両用できるソフトが簡単にできそうです。
すなわち、チップパージョンのレジスターを読み出して、BD34301かBD34352のどちらであるかをチェックして
チップに応じた設定をすればいいだけですからね。

さてさて、注文したDACは本当に届くだろうか?
12/15現在でCHIP1STOPにはまだ在庫あるようなので、大丈夫そうだけど・・・・・

ブツ入手! 2021.12.17

帰宅したらブツが届いていました.
これで、やる気がでてきました.

ブツ入手です.


半導体不足だなあ〜 2021.12.27

折角BD34352を入手したのはいいのだけど、その他のICの入手がままならない状況です。
基板としてはDAC34301をベースにする予定でしたが、そこに搭載されるPCM9211の入手がままなりません。
DIGIKEYやMOUSERにも在庫なし。国内商社に在庫あるとこをみつけて注文して、一応オートリプライで
「注文うけつけました」とはありますが、次の日には「取り寄せ品ですが、在庫がありませんでした。」と返されることが
3回ほど続きました。
 こりゃ、半導体不足が解消するまで待つしかないかな〜。

次善策?
 DAC34301はPCM9211がなくても、1ポートだけPCM/DSDの入力が可能です。そこで、PCM9211は無い物として
ソフトを変更すればDAIは外付けになりますが動作させることができます。RasPiなら直結も可能ですね。
でも、やっぱり音楽ソースがCDあるいはPCにしても伝送にSPDIFを使っているので、同軸あるいは光入力ができないと
不便です。

設計変更?
 ここは現在入手できそうなDAIをベースにして設計変更を考えてみましょう。
で、入手できそうなDAIを比較してみました。

CS8416(CZZ) DIR9001 DIX4192
DIGIKEYでの在庫数 1000個弱
(まだまだありそう)
200個強 100個強
(ちょっと心もとない)
SPDIF入力数
SPDIF入力PLLジッタ 200ps 50ps
(かなり優秀)
200ps
PCM入力数 × × 1
(余分に1ポートPCM入力
ができるのはうれしい)
受信可能周波数 192kHz 96kHz
(これはちょっと寂しいかも)
192kHz
使用経験

機能的にはDIX4192が良さそうですが、いかんせん現在の在庫があやしい。
DIR9001はSPDIFのみで使用するならジッタも優秀ですが、いかんせん96kHzまでの対応はちょっとさびしい。
CS8416は192kHzまで使えるし在庫はまだ十分にありそうです。

目的は半導体不足への対応なので、DIX4192では在庫がこころもとないのでCS8416がいいのかもしれません。
まあ、余力があれば今のうちにDIX4192を買い込むという手もありますが・・・・・。
悩みどころです。


CS8416で再設計 2022.1.4

CS8416あるいはDIX4192のどちらに使用かと考えましたがCS8416をつかうことにしましょう.
というのも、DIX4192のデータシートを読んでいて、1.8Vの電源が必要な上に、
外部クロック(水晶じゃなく発振器からの供給)が必要なので部品がかなり増えてしまいそうです.
その点CS8416なら3.3V単一で動作しますし、クロックも不要です.

DAC34301でのディジタル部の回路図(PCM9211をつかっています)


CS8416に入れ替えて再設計です(再設計ということほどではありませんが)

コードネームはDAC343XX


さて.基板のパターンを書く前にここらでコードネームをつけておきましょう.
今回のDACはDAC343XXです. XXの意味はBD34301でもBD34352のどちらでも搭載できるようにするということです.
DACのIDを読み込めばどちらのICかがわかりますので、ソフトでICに応じたパラメータの設定ができます.
どちらのDAC素子をつかってもいいようにというコード名です.

#さて、夜な夜な描くかな〜


アートワーク完成かな〜 2022.1.9


DAIにCS8416(SSOP)をつかったDAC343XXのパターンを描いてみました。


DAIの実装密度が低いので、割とスパースな感じです。


なんてこった! 2022.1.11
そろそろ基板を製作しようかな〜とおもって、念のため部品の在庫状況をDIGIKEYに確認したところ
CS8416-CZZ(SSOPパッケージ)の在庫が急減しています. もう200個強です. 昨年末に1000個弱あったのに〜.
それに対してCS8416-CSZ(SOパッケージ)が復活して5000個以上あります.  これは今のうちに設計変更して
おいたほうがいいかな〜 なんせ一回在庫が無くなると復活するまでにかなりの時間がかかります.

えい!設計変更!

基板があっても素子がなければ只の板. ソフトが無ければ只の箱とPCと同じです.
ちょっと面倒ですが設計変更しましょう. 救いは回路図は変更ないことです. 単にICのサイズが変わるだけですが、
ベタ面を削除しないといけないのですが、これがやっかいです. でも、ここは酔った勢いでやってしまえ〜.


CS8416の部分のパターンを変更してSO-28パッケージとしました.

さて、そろそろ製作にかかろうかな〜.
いや、もう一度チェックしておこうかな〜.

こればかりは酔っ払いモードでやると碌なことないので、一度シラフにもどりましょう(笑.

基板作成開始 2022.1.16

とりあえずチェックしてみました。あいかわらず酔っ払いモードなので抜けがありそう・・・・。
でも、まずは基板メーカにデータ送信です。うまくいけば来週には基板が手元にとどくでしょう。


基板到着! 2022.1.31


ようやく基板ができてきました.やっぱりこのサイズは大きいなあ〜.

製作開始 2022.2.2


とりあえず今日はここまで--- 疲れた〜.


一応完成かな〜 2022.2.4

残りの部品を実装です。

お出かけ用の写真をパチリ。


OPアンプはOPA134にしました。ロットで印刷がかなり違います。


確認のために色々と写真をとっておきましたが、半田付けで怪しいところ発見です。


あ、絶対ブリッジしてるわ!修正しましょう!


半田面の状態です。あ、フラックスをふき取っておかなくっちゃ!

さてさて、動作確認の前に机の上を片づけましょう!


ようやく作業再開! 2022.2.27


なかなか時間がとれませんでしたが、作業再開です.
それにしても、DAC34301をリリースしてから時間もたっているので、ソフトの構造はかなり忘れています.
ソースコードをみても、何をしているやらです.ああ、忘れる速度も早くなってきました(汗

とりあえずは、動作確認が先決なのでできるだけ手を加えることは押さえて、ソフトを改修です.
それでも、結構な変更が必要でした.

あれれ?その1

まずは起動チェックからです.
で、電源を投入したところアナログ電源5Vが立ち上がりません.
たぶんレギュレータLT3042の半田付け不良でしょう.
ルーペでよく確認してみると、なんとなく付いてないような気がします.

AVCC(5V)が0Vのままです. LT3042の半田付け不良かな?


拡大したら、確かに半田はついてないです.

ということで、再半田したら電源電圧は正常になりました.


LT3042を再半田したらAVCCも動き出しました.

あれれ?その2

電源チェックはクリアしましたが、次はI2Cエラーが発生してしまいました.
なぜだろう?
BD34352のアクセスの前にはPCA9539というI/Oエクステンダーとの通信を行っているので、
I2C自体は問題ないはずですが,なぜだろう?
とりあえずBD34352の再半田を行いましたが改善しません.


DACとの通信でエラーが発生しています.

その後、オシロでI2C信号をみてるとちょっと違和感があります.どうやらSDAとSCLが反対になっています.
PCA9539には正常に接続されていますが、DAC素子とCS8416には反対に接続されていることは判明です.
ソフトで修正ができる可能性もありますが、とりあえずは動作確認を先決としたいので配線を入れ替えです.


この部分で入れ替えを行います.


部品面で入れ替えのジャンパーをとばします.SDAからSDAへ、そしてSCLからSCLへ.
シルクは大丈夫なんですよね〜.

まずは外部PCM入力(EXTIN)での動作確認

まずはSPDIFではなくて、外部入力を利用した動作の確認を行いました.

外部入力での表示画面です. マスタクロックとLRクロックの計測も問題ないようです.


出力のアナログ信号も確認できました.
出力レベルはほぼ2Vrmsになっています。

さてさて、色々とやることあるな〜

あれれ?その3
次はSPDIF、すなわちCS8416を通しての動作確認です。
で、入力を切り替えても出力が出ません。いや、出力はでていますが数10mVと非常に小さい。
ただ、信号自体は波形を切り替えたら変わるし、ボリュームを変更すれば変わるので、DACは
ちゃんと動いていそう。 フォーマットを間違えているかな? CS8416のプログラムなんて久しぶり
だから、間違えているかもしれないな〜。
 で、色々とやっていたら動き出しました。まずは入力96kHzで確認できました。
なぜ、96kHzかといえばシステムクロックが256fsで24.576MHzになるからです。
BD34352ではクロック入力は22.5792あるいは24.576MHzが必要なためです。


まずはSPDIFで96kHz入力で動作確認です。

あれれ?その4
つぎはSPDIF入力で48kHz入力です。でも、うまく出力がでません。
この原因はシステムクロックは12.288MHzになるので
いわゆる推奨の設定からはずれてしまうためです。


単純にSPDIFで48kHz入力にするとシステムクロックが
低くて出力波形が間引いたような形になってしまいます。


これを動かすために、わざとシステムクロックの分周値
を1/2から1/1に変更です。そうすれば48kHz入力でも動きます。
PCM9211だったらシステムクロックを512fsに設定することもできるのですが、
CS8416だと256fsまでしかできないのですよね。


とりあえず、マニュアルモードで動かしてシステムクロックの分周を1/1(もともと1/2)に変更です。


SPDIF入力で48kHzでの動作もできるようになりました。

あれれ?その5
次はSPDIFで192kHz入力です。これも、このままではうまく信号がでません。


単純にSPDIFで192kHz入力にするとシステムクロックが
高くなりすぎて出力波形が乱れます。


このときの問題点はシステムクロックが反対に49.152MHzと高くなってしまいます。
これの対策はCS8416側で行う必要があります。すなわち、入力信号が192kHzと判別できれば
システムクロックの出力を256fsから128fsに変更させることにします。これって、いちいち
入力周波数を計測して、その度に設定しなおすことになるので結構面倒だったりします。
まあ、CS8416を使うことを決めたときの宿命ですが・・・・。


192kHz入力時はCS8416のシステムクロックを128fsに変更することで、
システムクロックの周波数をわざと下げることにします。


これでSPDIFで192kHz入力時も動作OKです。

これで、ひとまずは基本動作は確認終了です。
あとは、パラメータの自動設定ができるようにプログラムを改修です。
でも、その前にもう一つやり残しがあります。

I2C通信でダイナミックにSDAとSCLは交換できるか?

基板のパターン修正をしなくても済むようにするには、I2C通信するデバイスに応じて
I2CにおけるSDAとSCLを交換できればいいわけです。基本的には大丈夫なような気が
するようなだめなような・・・。それに、I2C動作プログラムの大改修になっちゃうな〜。

つかっているマイコンがPIC18F27Q43なので、いままでのPIC18F26K20に比べると
倍のプログラム容量があるのでやってみるかなあ〜.

大丈夫ですね 2022.2.28

昨晩のうちにプログラムを修正しておいたので、試してみましょう。
まずは、配線を元に戻しておきます。

パターン修正前に戻します

最初に動作させたときにはI2Cエラーが発生してしまいましたが、
一か所プログラムの間違いがあったので、それを修正したらエラーも消えました。
どうやら、問題なくSDAとSCLの交換ができたようです。

ただし、SCLラインはドライブ定義、SDAラインはオープンドレイン定義となっているので、
切替時には必ずSCL,SDAともにHレベルになっていることを確認するようにしています。
万が一、どちらかがLレベルであればバスエラー表示をするようにしました。
まあ、どちらかといえばこのチェックは半田不良があった場合などのチェックになりますが。

仕様整理
だいぶ完成に近づいてきたので、すこし仕様を整理です。こんなとことかな。

ハードウエア
 入力:SPDIF×4(同軸2,ディジタル2)
       サンプル周波数 44.1,48,88.2.96,176.4,192kHz

     EXTIN: PCMあるいはDSD(PCM,DSDは自動判定)
       PCMの場合 サンプル周波数 32〜768kHz
                対応フォーマット I2S,.LJ,RJ ビット数 16,20,24,32
       DSDの場合 サンプル周波数 DSD64,DSD128,DSD256,DSD512

 出力: アナログ×1 シングルエンドあるいはバランス出力
      出力レベルはシングルエンドで約2Vrms

 電源: 1)ディジタルおよびDACアナログ 独立給電(共通でも可)
       必要電圧 約6〜8V (5Vの電圧レギュレータの電圧ドロップに依存)
       必要電流 約250mA(ディジタル+アナログLCD+small-LED4含む)

      2)アナログアンプ部
       必要電圧 約±12〜15V
       必要電流 約100mA

 外付け表示器: 2004LCD(必須)
            small-LED4(オプション)

操作&ソフトウエア
 操作方法:
     パラメータ設定  コンソールスイッチ、赤外線リモコン
     ボリューム設定  ロータリーエンコーダ、赤外線リモコン
                 ボリュームは-110dB〜0dBで0.5dB毎に調整可
 フィルター切替:     SLOW/SHARP
                DSDカットオフ周波数
 入力フォーマット切替: I2S,LJ,RJ ビット数16〜32 ※EXTINのみ変更可
 設定パラメータ:     SPDIFでは自動設定
                EXTINでは自動設定あるいはマニュアル設定を選択。
                マニュアル設定ではオーバサンプリング、クロック分周、Hpc等の変更可能
 アナログ出力設定:   STEREO、MONO等
                左右スワップ、極性変更も可能


その他
 DACチップのBD34301とBD34352の自動判別機能あり(DACチップにあわせてパラメータを自動変更)

ソフトも完成かなあ〜 2022.3.1

さて、ソフトもほぼ完成した感じなので、試聴環境を揃えましょう!
以前にDAC34301を収めたケースがあるので、横着してその基板と入れ替えです。


DAC34301を入れていたアクリルケースを利用しましょう。このDAC34301をDAC343XXと交換です。


交換後です。ほとんど間違い探しですね。

試聴!

夜も遅いのでヘッドホンで試聴です。ヘッドホンの方が音に集中できるのと、細かいところまでわかるので
案外こちらのほうが試聴には適しているかもしれません。


まずはSPDIF入力で試聴です。

こみ上げて来た!!

 最初に音出ししたとき、何かがこみ上げて来ました! というのも、久しぶりに古いユーミンの曲を鳴らしてみたのですが、
あまりの懐かしさというか、その曲をよく聞いていた学生自体の想い出が浮かび上がってきて、おもわず身震いして
しまいました。 そういうことってないですか? それほど多くはないですが、ある音楽と結びつく特別な場景や体験が
あったりします。
 まあ、自分の想い出なんかはよりあえずおいておいて、音質ですが極めてクリアーで、かつ正直な音です。
これは主観的なものが大きいですが、ROHMのDACって、もの凄く真面目で音楽好きな技術者が、正直につくった
感じがします。これはDACのデータシートをみていてそう思うのですが、他のメーカのデータシートでは書いてないようなことが
結構、細かいところまで書いてあって関心したりするのでよね。
 その対極にあるのがESS社のES9018SやES9038Dかな〜という気がします。音はもちろん素晴らしいのですが、
どうもデータシートが手抜きです。DACそのものを作ることに尽力しすぎてデータシートまで手が回らなかったとも思えます。
 その点、TI社のデータシートは大手らしくデータシートの見本のような感じさえします。非常にわかりやすいし、必要にして
十分です。それに文章の正確性も申し分ない感じです。かなり査読が入っているのかな〜とも思えてきます。

さらにDSDでも鳴らしてみましょう!

DSDを入力するには、DSDのソースが必要なのでAK4137を使ったSRC4137でPCMから変換します。
SRC4137単独の基板もあるのですが、手を加えすぎて調子が悪いというか不調になっているので、
組み込まれたSRC4137から信号を横取りです。どこから信号を取り出したかといえば、
SRC4137とDIV5142(2WAY版)とDAC4499をまとめて組み込んで、Integration Unitで統合した装置からです。
これ一つでSPDIF入力から2WAYマルチ出力ができるだけでなく、すべての基板のセッティングが一つのLCD
で見ることができます。


SRC4137基板から信号を横取りしてDSDでも試聴です。


DSD512で試聴しています。

 DSDとPCMを比較してみましたが、あまり差は感じないですね。というか、あまりにも懐かしい音楽に
のめり込んでしまって、そこまで気が回らないのかもしれません。

DSD再生時の注意点

DSD再生時にはDACのVOLUMEは効きません。つねに最大出力になります。そのため、PCMで小さい音量で
聞いていて、信号がDSDに変わるといきなり爆音になってしまいます。LCDにはDACに設定される減衰量が
表示されていますが、DSDの時は無効になります。そのため、DSD再生時は表示はすこし変更したほうが
勘違いしなくて済みそうです。少し手を加えましょう。

製作マニュアルを書きましょう・・・

これが、一番面倒だったりします。 まるでESS社みたいだなあ〜(笑。
まだDAC34301で書いたものがあるので、ほぼコピペで済ませちゃいましょう!


マニュアル書きました。2022.3.2

超手抜きバージョンです

製作マニュアル       : DAC343XXManual.pdf
キット価格&パーツ添付 :DAC343XXPartsList.pdf

準備に1,2日かかるかもしれませんがリリースします。

(つづく・・・かな?)