ROHMのDAC(BD34301EKV-E2)を試してみましょう!の巻き(完成編)  2021.5.6


(後編はこちら


ソフトも完成! 2021.5.6

ようやくソフトのversion1が完成しました。GW中の完成を目指していましたが、ちょっとだけ伸びてしまいました。
まだ細かい修正点や手を入れたいとこは、まだでてくるでしょうがキリがないので一旦キリをつけました.
さて、ようやく実機に接続しての試聴です.
 といっても夜も遅くなってきているので、静かに試聴です.
 やっぱり新しいDACの音出しっていいですね〜.

実機に接続して試聴です.

つでに、DACを電源投入するときの起動画面を撮っておきました.
いままでのDACと一番違うのは、電源投入時の電圧モニタリングをしているところです.
DAC素子のデータシートにしたがって電源の投入をおこなっています.
DACアナログ(5V、AVCC)の立ち上がりに時間がかかっていますが、LT3042の電圧設定抵抗(50kΩ)に
10uFのコンデンサが並列に繋がっているので、電圧の立ち上がりがなだらかになっているためです.

電源起動時の表示の動画を撮ってみました.手振れがひどいです(笑.


機能整理

ここいらで機能などを整理しておきましょう。書き物にすることで、ひょっとして検討が抜けているところなどが顕在化するかもしれません.
まあ、各順番は思いついたところなのでランダムです.

1.消費電流
 この基板にはOPアンプを動作させる±15V電源とDACのアナログとディジタルの8V程度の3系統の電源が必要です。
 簡略化するなら、DACのアナログとディジタルを共用がいいでしょう。両方をあわせて最大でも400mAあれば十分です。
 でも、ハイエンドのDACを活かす点からも、できれば電源は分離したいところです。以下に消費電流について記します。

 アナログ(±15V)・・最大で100mA程度
  実験用電源につないでいたときはおよそ50mA程度だったので、100mAの供給能力があれば十分でしょう。
  ちなみに使用したOPアンプはOPA134×6個なので、他のOPアンプの場合は必要電流は多少かわると思います。

 DACアナログ・・・・40mA程度
  基板上のレギュレータにLT3042を使用しているのでデータシートからは給電は5.35V以上で足りますが、余裕をみて6V以上が必要です。
  ただし、電圧が高いと損失も大きくなるので供給電圧は6〜9V程度を狙えばいいでしょう。

 ディジタル部・・・・最大で300mA程度
  実測の最大値で260mA程度です。このうちLED表示器が約140mAともっとも電流を消費します。LEDをとりつけないなら
 電流供給は200mAあれば十分でしょう。LEDをとりつけるなら300mA以上はあったほうがいいでしょう。
 ちなみにLED以外の電流消費の多いのはLCDのバックライトで20〜30mA程度流れます。
 DAC素子のDVCC(1.5V)はLT3042をつかい3.3Vから生成していますが、消費電流は多くても50mA程度なので基板放熱で十分です。
  ディジタル部の給電は基板上のレギュレータの電圧降下に依存します。5Vレギュレータに7805をつかうなら8V以上の電圧を供給します。
 私は基板放熱を活かすために表面実装型の低損失型のものをつかっています。これなら6Vもあれば十分です.


基板上の5Vレギュレータはこれをつかっています。


3.3Vはこちらです。ドロップ電圧が1.1Vとすこし大きいですが、5Vから生成するのでこれで十分です。


2.アナログ出力レベル
 この基板は久しぶりのオールインワン構成になっているので、DACのアナログアンプを搭載しています.
回路図の定数で製作した場合の出力電圧はATT=0.0dBで振幅2.9Vです.
実効値で2.06Vrmsですね.2Vrms目標ですがE24系列の抵抗なので多少誤差があります..


最大出力振幅です.


3.入力

この基板は全部で8つの入力系統があります.それをまとめると下表になります. 

CH 入力 入力レベル フォーマット 対応周波数 備考 補足
SPDIF0(*1) 同軸(標準では0.5Vpp) SPDIF 44.1kHz192kHz (*1)
SPDIF1
SPDIF2 CMOS 3.3Vロジック 光モジュール接続を想定
SPDIF3
AUXIN0 CMOS 3.3Vロジック PCM/DSD
自動判定

PCMは
I2S,RJ、LJ
ビット長は
16,20,24,32
から選択

PCM
32kHz768kHz

DSD
2.8224MHz〜22.5792MHz
(DSD64〜DSD512)
PCM9211をスイッチとして使用 (*2)
AUXIN1
EXTIO(*4) BD34301へダイレクト入力
ANALOG 最大3Vpp 96kHz 入力ゲイン変更可能(±20dB) (*3)

(*1)SPDIF入力
 周波数範囲は44.1kHz〜192kHzです.
 PCM9211のデコード仕様から32kHzも可能ですが、BD34301のマスタークロックは22.5792MHzあるいは24.576MHzで
なくてはいけません.PCM9211のデコードは128,256,512Fsの3種類のみの対応であり、768Fsの設定がないため
SPDIFでは32kHzの入力時に所定の周波数のクロックが生成できません. 32kHz入力をおこなうにはSPI(PCM)入力にします.
なお、PCM9211でのデコードの周波数は44.1,48kHzの場合は512Fs、88.2,96kHzの場合は256Fs、176.4,192kHzの
場合は128Fsに設定しておりBD.34301に対応可能なシステムクロックを生成しています.

(*2).SPI入力

DAC34301は3つのSPI(PCM/DSD)入力コネクターがあります.すべて3.3VのCMOSロジックレベルです.
PCMとDSDのフォーマットの違いは、自動判別します。

(i)PCMの場合

対応周波数(FS): 32kHz 〜 768kHz (但しシステムクロックは22.5792MHz、24.576MHzが必要)

768kHzの再生時はBCKが49.152MHzになりますが必要なシステムクロックはその半分の24.576MHzです.
これはSRC4137では対応できません(SRC4137ではシステムクロックはマスタークロックより同等以上になるため)
 なおシステムクロックが49.152MHzになる場合でも、裏技をつかえば再生が可能です.
まず使用するPCMポートはEXTINを使います.そして、.メニューからシステムクロックの設定を自動からマニュアルモードに変更して、
MCK(システムクロック)の分割(M-Div)を1/2に設定します.ただし、これだけでは再生できなくて、
直前にシステムクロックが24.576MHzが供給されている必要があるので、一旦入力をANALOG(ADC)に変更します.
そうするとシステムクロックとして24.576MHzが供給されます. その後に入力をEXTINに変更すると768kHzの再生が、
システムクロック49.152MHzで実行できます. 但し、なぜこれで再生できるかは理由はよくわかりません.というか
 ただし、これはイレギュラーな使い方になるので、どういう不具合が生じるかわからないので
実行の場合は自己責任でやってくださいね. 素直にシステムクロックは22.5792MHzあるいは24.576MHzに設定するのが吉です.

入力周波数
(kHz)
システムクロック
(MHz)
FSO選択
(SRC4137 3#メニュー)
32 24.576 768
44.1 , 48 22.5792
24.576
512
88.2 , 96 256
176.4 192 128
352.8 , 384 64
705.6 , 768 (設定不可)


(ii)DSDの場合

対応周波数:DSD64(2.8224MHz)〜DSD512(22.5792MHz)

DSDで使用する場合のシステムクロックはBCKと同じか、BCKの2倍の周波数を与えます。
もし、システムクロックがマッチしない場合はBCKの信号をシステムクロック(MCk)にもパラに
入力する方法がよいでしょう。

BCK周波数
(MHz)
システムクロック 備考
DSD64 2.8224  =BCK
あるいは
 =2xBCK
DSD入力におけるシステムクロックは
通常はBCKと同じ周波数を加えるようですが、
位相調整ビットをONにすることで、BCKの
2倍の周波数を入力も可能です。
 制御ソフトではBCK周波数を計測して、
位相調整ビットを自動設定します。
DSD128 5.6448
DSD256 11.2896
DSD512 22.5792

(*3)アナログ入力
 PCM9211は96kHzサンプルの24BitADCを搭載しています.入力は最大3Vppであり、そのときに
ほぼフルスケールのDAC出力となるようです.ということはADCに1.5倍のゲインをかけると、
入力電圧と出力電圧はほぼ等しくなるということになります.1.5倍ということで、.設定可能なゲインは
3.5dBですね.

 
上:入力(2Vpp) 下:DAC出力(4Vpp)            上:入力(3Vpp) 下:DAC出力(6Vpp)
いづれもADCのゲインは0dB.


(*4)EXTINの存在理由
 DAC34301ではPCM/DSD入力にはPCM9211で切替する端子が2つあります. おそらくこれで十分かと思いますが、
さらにDACにダイレクトに入力できるEXTIN端子も備えています.なぜEXTINを設けたかというと、1つはDAIを実装しなくて
純粋なDACとしても使えるようにしたかったことがあります.
 そのためBD34301に入力する信号をPCM9211とEXTINを切り替えるロジックIC(74157)の選択端子にはわざとプルダウン抵抗を
とりつけており、DAIやPICを実装しないときはEXTINからの信号を受信できるようにしています.
 BD34301のデータシートは公開されていますから、自分で制御する人用です.なお、基板にはI2C制御信号の端子も設けています.

4.制御ソフト

 こんな感じになる予定です.下記は初期化後直後の設定です.

フロントページ メインページです.
現在の入力選択、その信号周波数、ボリューム値、フィルターの設定状況が表示されます.
なお、ボリューム値はPCMの場合のみ有効です(DSDでは音量調整はできません)。

変更パラメータ(入力信号)
 SPDIF0(既定値)
 SPDIF1
 SPDIF2
 SPDIF3
 AUXIN0
 AUXIN1
 EXTIN
 ANALOG
フィルター設定
(PCM)
PCM再生時のフィルター設定

変更パラメータ:
 SHARP ROLL-OFF(既定値)
 SLOW ROLL-OFF
フォーマット設定
(PCM)
PCM入力端子のフォーマット設定

変更パラメータ:
 フォーマット
   RJ(右詰め)
   LJ(左詰め)
   I2S(既定値)
 ビット長
   16
   20
   24
   32(既定値)

DSDカットオフ周波数設定 DSDのカットオフ周波数設定

変更パラメータ:
  HIGH(既定値)
  MID
  LOW

出力モード設定 出力モード設定

変更パラメータ:
モード
 STEREO(既定値)
 MIX(PCM)、STERO(DSD)
 MONORAL-L
 MONORAL-R
SWAP(左右スワップ)
 OFF(既定値)
 ON
POL(極性)
 L-Nor(ノーマル) RーNor(ノーマル)(既定値)
 L-Inv(反転) RーNor(ノーマル)
 L-Nor(ノーマル) RーInv(反転)
 L-Inv(反転) RーInv(反転)
 
ADC(ANALOG)ゲイン設定 ADCゲイン(アナログ入力ゲイン)

変更パラメータ:
 -20dB〜20dB(0.5dB毎) 既定値は0dB
システムクロック関連設定


(中略)

システムクロック関係設定

変更パラメータ:
MODE
 AUTO(自動:既定値) 入力周波数に応じてメーカ推奨値を設定します.
 MANU(手動) 下記のパラメータを設定します

P-Adj (位相調整)  既定値は各周波数でのメーカ推奨値
 ON
 OFF
M-Div(マスタークロックの分周) 既定値は各周波数でのメーカ推奨値
 1/1
 1/2
 2/3
 1/3N
Hpc(高精度演算) 既定値は各周波数でのメーカ推奨値
 OFF
 ON
OSR(オーバーサンプリング) 既定値は各周波数でのメーカ推奨値
 X8
 X16
 X32

MANU設定にすると、任意のパラメータを設定できますが再生は保証されません.
このメニューは各周波数帯に分かれており全部で9つあります
 PCMで5グループ @32 A44,48 B88,96 C176,192 D352、384
 DSDで4グループ @DSD64 ADSD128 BDSD256 CDSD512

赤外線リモコン学習 赤外線リモコンの学習

学習キーは下記の6種類
 @項目DEC
 A項目INC
 BパラメータDEC
 CパラメータINC
 D音量DOWN
 E音量UP
フロントページへの自動復帰設定 自動復帰設定

キー操作が10秒以上無い場合はフロントページに自動的に復帰させる設定です.

変更パラメータ
 OFF(既定値)
 ON
基板上の電圧モニタリング 基板上の電源電圧モニタリング
 (注)抵抗器の誤差やAD変換精度がありますので測定精度は1%程度です.
BD34301のレジスター設定
一覧
BD34301のレジスターデータ表示
 変更対象となる主要なレジスターとそのデータを表示します.
 4桁の内、上位2桁がレジスターアドレスで下位2桁がデータ値です(16進表示)

※これはリリース時には不要なので割愛するかもしれませんが、
 DAC素子の内部観察のために残すかもしれません.


5;ジャンパーピン

この基板には5つのジャンパーピンがあります. おもにLCDやLED、さらにエンコーダを使わずにシンプルにDACを使用する場合を想定して設けています.
このジャンパーピンは電源投入時にセンスされますので、稼働中の変更は無効です.


ジャンパーピン

開放時の動作 短絡時の動作 説明
M1 ボリューム値は前回値を使用 ボリューム初期値を0.0dBに設定 通常の初期化ではボリュームの初期値は-110.dBになりますが、
短絡することで最大値0.0dBを初期値にします.エンコーダを使用しない場合は短絡させておきます.
M2 PCMフィルターを前回値を使用 PCMフィルターをSLOWに使用 初期化はSHARPになりますが、SLOWで使用する場合は短絡とします.
M3 M3,M4のどちらかでも短絡された場合、AUXIN0,AUXIN1のフォートを変更します.
RJ16 M3=短絡 M4=短絡
RJ24 M3=短絡 M4=開放
RJ32 M3=開放 M4=短絡
EXTINは前回値を使用します.
フォーマットの既定値はI2S-32ビットですが、LCDをつかわずに右詰めフォーマットを入力する場合に使用します.
M4
M5 電源立ち上げ時にパラメータを初期化の実行をおこないます.. 4つのどれかのキーを押しながら電源を立ち上げても初期化を実行しますが、その場合には項目や
パラメータが変更される場合があるので、ジャンパーピンをつかった初期化を加えています.


抜けてました〜 2021.5.7

ロータリーエンコーダをつけていたので、つい抜けていました。エンコーダがないとボリューム調整ができないのも不便です。
ということで、スイッチで音量が調整できるメニューも追加です。これでボリューム調整はエンコーダ、スイッチ、赤外線リモコンの
どれからでも操作できます。でも、考えたらDACで音量調整なんてするかな〜という気もしてきました。やっぱりアンプですよね〜。


ボリューム調整用のメニューも追加です。


マニュアル作成〜 2021.5.8

相変わらずですが、手抜きバージョンの製作マニュアルです。 → DAC34301Manual.pdf

リリースはいつものように基板と主要部品のセットの他に、DAC(BD34301)を除くセットも用意予定です。
その他、色々な組み合わせも可ですが、どうしよう?(リクエスト受付ますね!)


こちらも、準備! 

DAC34301の表示アクセサリとしての2色4桁KEDもソフトも完成です。

2色4桁LEDのソフトも完成です。

こちらも幾つかのモードで動くようにしています。ジャンパーピンが2つあるので、
その組み合わせです。

M2 M1 動作モード 備考
開放 開放 シリアル入力モード DAC34301と接続する場合はこれ
開放 短絡 周波数カウンターモード 周波数カウンターとして動作します。

最小分解能は1kHzです。
精度はPICの内蔵水晶精度の1%程度でしょう

短絡 開放 オーディオ用周波数チェッカー オーディオでの周波数チェッカとして動作します。
(最大で15MHzくらい?)
32kHz〜45.192MHzで周波数を判定します。
短絡 短絡 予約


周波数カウンターとして動作しています。表示は9298kHzです(単位kHz)。
10MHzを超えると2桁目で小数点を表示して赤色で表示します(単位MHz)。


以前の4桁LEDに比べると6割くらいのサイズになりました。

#日曜日から、また3日間出張だなあ〜.

LED表示はすこし改良 2021.5.13

周波数カウンターの機能を向上させると同時に、電圧計モードも追加しました。

M2 M1 動作モード 備考
開放 開放 シリアル入力モード DAC34301と接続する場合はこれ
開放 短絡 周波数カウンターモード 周波数カウンターとして動作します。

測定表示1Hz〜65.76MHz(実際は50MHz程度)
カウント時間を1ms〜1sまで可変。

精度はPICの内蔵水晶精度の1%程度でしょう

手元のPICだと0.18%の誤差でした。カタログ以上の実力はあるようです
短絡 開放 オーディオ用周波数チェッカー オーディオでの周波数チェッカとして動作します。

32kHz〜45.192MHzで周波数を判定します。
短絡 短絡 電圧計モード PICの電源電圧を100%として0.0〜100.0で表示します。

へえ〜 2021.5.13
こんな投稿もいただきました。

廉価のものが出るのは嬉しいですが、データシートをみるとSNRなどの基本性能は変わりますが、ピン配置や機能はBD34301とほとんど同じで、
チップバージョンがちがうだけのような感じです。こりゃ、偽物が出回る可能性が捨てきれません。
 ということで、チップバージョンも表示できるようにしました。新規に立ち上げ時に表示してもよかったのですが、起動画面がごちゃごちゃしそうなので、
レジスター設定一覧のメニューにチップバージョンのレジスター値も表示するようにしました。
 BD34301のレジスターは8ビット長ですが、ほとんどが下位4ビットしかつかっていないので、それらは4ビット表示とすることで表示エリアを
節約しました。

チップバージョンはレジスター01にあり、01ならBD34301で52ならBD34352です。
ちゃんとBD34301のようですね!


さて、そろそろリリースにかかります。

その前に・・・
2色4桁LED表示器がどこまで高周波で動くかを試しておきました。
いままでは、長いRCAケーブルでおこなっていたので、ケーブルの特性が悪くて15MHz程度しか
うまくはかれませんでしたが、発振器にダイレクトに繋いでのテストです。
 その結果は50MHzは問題なくカウントできました。でも65MHzはダメでした。
まあ、50MHzまで測定できればオーディオ用としては問題ないですね。


50MHzでのカウントは問題ないようです。


65MHzはカウントをミスするようです。


DAC34301リリースします。

一応、資料類を整理しておきました。
DAC34301は基板のみなどでも頒布可能です。問い合わせください。

DAC34301 セットA 20,500円 基板+主要部品(BD34301含む) 製作マニュアル
DAC34301Manual.pdf

パーツリスト
DAC34301PartsList.pdf
セットB 10,500円 基板+主要部品(BD34301含まず)
Small-LED4

(オプション
850円 基板+PIC+チップ抵抗、チップコンデンサ 製作マニュアル
small_led4_manual.pdf


申し込みページはこちらです。DACのコーナにあります。


BUGFIX

ご面倒おかけしますが、下記について修正をお願いいたします。

1.ADR1,2のプルアップ抵抗(Rb)2個の値の変更 2021.5.31
 (修正内容) 
  製作マニュアルR2以前での部品表では47kΩになっていますが、2.2kΩ以下(例えば余っている1kΩを使用するか、なければジャンパー)
 としてください。
   
   該当位置のチップ抵抗。上図では修正前の47kΩが実装されています。

 (修正理由) 
  47kΩではプルアップが十分に働かず、「I2C ERROR」が発生する事象が報告されています。

  

(つづく?)