SRC4137をDAIだけで動くようにしてみよう! 2020.4.7

SRC4137はDAIにDIX9211を使用し、ASRC(非同期サンプリングコンバータ)にAK4137を用いた、
DDC(ディジタルディジタルコンバータ)であり、PCM信号をDSDへ、またその逆にも変換できると同時に
サンプリング周波数も変更できる非常に多機能な基板です。
 でも用途によってはDAIのみだけでよくASRCまでは不要と言う場合もあります。
そのときはわざわざSRC4137基板を用いなくても、DAI機能だけがあるその他の基板を用いればいいのですが、
DAI単体機能の基板ではLCDを設置できるものがありません。
 LCDでDAIで選択している機器名を任意に編集して表示できるようにすれば、ケースに組み込んだときも操作が
しやすくなるかもしれません。というのも、いままではSPDIF入力のときは、単純にSPDIF0とかSPDIF1などと表示して
いましたが、これが、CDP-XXXX とか HDMI INPUT とか実際に接続している機器名が表示できれば
わかりやすくなります。
 
 そこで、SRC4137基板をつかって、DAI単体を動かしてLCDに任意に表示できるようなソフトを作ってやろうというのが
今回の取り組みです。これができれば、DAIを取り付けていない、DAC44992WAY化したDIV5142基板に搭載しようかと思っています。


完成したら、これにDAIとして搭載予定です。

部品を準備

SRC4137の基板はありますが、手元のDIX9211の予備が少ないこともあるので、
部品箱を探して評価用に変換基板に取り付けたものを探すことに。
そこから、DIX9211を含めて必要な部品を再利用です。
QFPのICをとりはずすのも、だいぶ慣れてきました。


DIX9211の評価時につかった変換基板をばらして部品を再利用です。


これだけ再利用できます。

基板の再組み立て

新しい基板を用意して、DAIを動かすのに必要な部品だけを搭載です。
AK4137を搭載しないとなると、それに付随する発振器や分周回路が不要になるので
必要な部品はとても少なくて済みます。

必要な部品を搭載しました。かなり少ないです。


黄色線の内側のみが実装エリアです。

ソフトを書いていきましょう

今回はDIX9211ではメインの出力ポートはダイレクトにAK4137に接続されているので、そのまま出力端子
として取り出すことはできません。そのため、SRC4137では入力可能なPCMコネクタが3つありますが、
入力は2個として、1個は出力コネクタに変更します。
 入力はPCMが2個で、SPDIFが4個(同軸2、ディジタル2)になります。


PCM(DSD)の入出力こういう形になります。

DAI自体の制御ソフトはいままでに書いているのですが、表示する文字の編集ソフトがすこし時間がかかりそうです。

基本部分は完成 2020.4.10

なんとか、一気に基本部分を書き上げました。まだまだバグはありますが週末にかけて修正していきましょう。


2004のLCDをとりつけ状態です。上2行がタイトルで、3行目が入力、4行目が周波数表示です。
周波数は入力がないのでレンジオーバの表示になっています。



一行目のタイトルを変更している様子です。


1602のLCDも対応です。この場合はタイトル表示はありません。


入力表示を編集してみました。

タクトスイッチをつかって編集するのですが、キーの長押しでリピートはかけていますが、
キャラクター文字が200ほどあるので、選択に結構時間がかかるときがあります。
キーの長押しのリピート速度はかなり速くしたほうが良さそうです。

BCK周波数表示対応 2020.4.11

入力信号の周波数を得る場合、DIX9211のあるレジスターを読み込めばLRクロックの周波数を知ることができます。
LRクロックですから、いわゆるPCM信号時のサンプリング周波数になります。

PCM信号のクロック周波数はDIX9211のレジスタから知ることができます。

それに大して、DSD信号の場合のクロック周波数を知ろうとした場合は、BCKの周波数を測定する必要があります。
これについては、残念ながらDIX9211にはその機能はありません。そもそも、DIX9211はDSD信号を主体に扱うようには
疲れていません。ただし、DIX9211は単なるスイッチの役割だけなのでDSD信号の切り替えはできます。

 BCK信号の周波数を知るためには、PICで計測させることにします。
DIX9211からのBCKの出力をPICのCLK計測用の端子に接続です。基板の一部にジャンパーを飛ばします。
勿論。このジャンパーはBCKの信号を計測する場合にのみ必要なので、とくに周波数の表示も不要な場合は必要ありません。


BCK信号を計測するために飛ばしたジャンパー線です。

PICの周波数計測の誤差は実測で1%くらいでる可能もあるので、そのまま周波数を表示することはせず、
近似する既定の周波数に変換して表示させることにしました。モード設定で、測定した生データを表示させても
面白いかもしれませんね。


BCKの周波数の信号を表示できるようにしました。

ほぼ完成! 2020.4.13

ソフトもほぼバグも取れたようです。ここいらで、すこし機能の整理です。

1)入出力
 入力は6個
  SPDIF0(RX0) ・・・ 同軸入力用(75Ω終端)
  SPDIF1(RX1)・・・  同軸入力用(75Ω終端)
  SPDIF2(RX2)・・・・ ディジタル入力用(3.3Vロジック、光受信モジュールなど)
  SPDIF3(RX3)・・・・ ディジタル入力用(3.3Vロジック、光受信モジュールなど)
  PCM0 ・・・・・・・   PCM/DSD入力(10pコネクタ)
  PCM1 ・・・・・・・   PCM/DSD入力(10pコネクタ)

 出力は1個(2個追加可能)
  AUXOUT・・・・・・  1個 PCM/DSD入力(10pコネクタ)
  MAINPORT・・・・  2個(オプション。追加でロジックIC実装必要)(*1)


(*1)SRC4137のPCM-OUT,DSD-OUTも使えるようにします(どちらも同じピン配置)
  DAC4499を2枚接続する場合などに便利かもです。

出力コネクタを増設する場合の追加です。あまり使うこともないでしょう。



2)電源
  5V単一電源です。必要な電流容量はLCDのバックライトを含めて100mA弱(実測)です

3)操作
  基板上の4つのタクトスイッチを用います。基板からの外出し用の基板端子もあります。

  TERM+:設定項目の選択(次へ)
  TERM-:設定項目の選択(次へ)
  INC:  パラメータの変更(+1)
  INC:  パラメータの変更(-1)


4) 入力切替
  操作にはSRC4137と同様に4つのスイッチを使いますが、
  常用となるのは入力切替(INC、DEC)だけなので、ケースにはINCあるいはDECのどちらか1個だけ
  スイッチをとりつけるだけでいいでしょう。
  その他の設定は基板上のスイッチで済ませられます(勿論、ケースに組み込んでもOK)。
  
  入力は6個ありますが、使用しない入力もあるので、使用する入力を選択できるようにしました。
  これで、切り替え時には未接続な入力をスキップすることができます。

・表示内容(FRONT PAGE)
  表示器にはLCDが必要で、1602(16文字2行)あるいは2004(20文字×4行)のものが使用可能です。
  (秋月のSC1602とSC2004では電源ピン、GNDピンの位置が異なるの注意が必要です)。

 表示は使用するLCDにより情報量がことなります。2004LCDを使用すれば、TITLE1、TITLE2を使用して
 装置名等の表示が可能になります。TITLE3,4は6個の入力にあわせて表示します。接続している機器名を
 表示することを想定しています。
  TITLE4は周波数表示を想定しています。周波数の表示には8文字必要なので末尾の8文字を充当します。
 周波数表示については有無を選択できます。

 2004LCDの場合
   TITLE1:  20文字。編集可。
   TITLE2:  20文字。編集可。
   TITLE3:  6個の入力にあわせて表示(20文字×6個)。編集可。
   TITLE4:  6個の入力にあわせて表示(20文字×6個)。編集可。周波数を表示する場合は末尾の8文字を充当。

 1602LCD
   TITLE3:  6個の入力にあわせて表示(16文字×6個)。編集可。
   TITLE4:  6個の入力にあわせて表示(16文字×6個)。編集可。周波数を表示する場合は末尾の8文字を充当。

  

・表示に使えるキャラクター
 これについてはLCD内蔵のROMを使います。下記の文字が使用可能です。


使用可能なキャラクター文字。

5)各種設定
i)入力設定

 6個の入力のそれぞれの使用有無ならびに、使用する場合の画面表示を設定します。

 パラメータは下記の4つ
  NOT USE     ・・・・  使用しません。入力選択はスキップされます。
  USE Title Only  ・・・・  使用します。TITLE4には編集した文字のみ表示されます(周波数は表示しません)。
  USE with LR-Frq ・・・・ 使用します。TITLE4の末尾4文字はFS周波数(44.1kHz、192kHz等)が表示されます。
  USE with BC-Frq ・・・・ 使用します。TITLE4の末尾4文字はビットクロックの既定周波数(2.822MHz等)が表示されます。
  USE with BC RAW ・・・・ 使用します。TITLE4の末尾4文字はビットクロックの測定値(2.822MHz等)が表示されます。
                    PICの内部クロックで計測しますが1%程度の誤差を含む可能がありますので、値の補正も可です。
                   

入力設定画面


ii)フォーマット設定
 SPDIF入力の場合に、出力するフォーマットを選択します。
 パラメータは下記の4つ
 I2S          ・・・・・ PHILIPSとSONYによる提唱フォーマットです。これが現在では標準でしょう。
 LEFT JUSTIFIED ・・・  左詰めフォーマット
 RIGHT-J 16Bit  ・・・・  右詰めフォーマット16Bit
 RIGHT-J 24Bit  ・・・・  右詰めフォーマット24Bit


フォーマット設定画面


iii) タイトル編集
 TITLE1 → TITLE2 → TITLE3-0〜5 → TITLE4-0〜5 の順に編集します。
 途中でやめても、内容は保存されています。
 編集する文字をTERM-,TERM+で選択し、キャラクタ文字をINC、DECで設定します。
 2004LCDの場合は選択する文字位置は”^”で示されます。
 1602LCDの場合は選択する文字位置はTITLE3の場合は入力にあわせて”0”〜”5”で示されます。そして
 TITLE4の場合は入力にあわせて”A”〜”F”で示されます。


タイトル編集画面例(2004の場合)


タイトル編集画面例(1602の場合)


iv)タイトル文字のコピー
 TITLE3ならびにTITLE4は同じ文字を何度も入力する必要が生じることもあるので、
 TITLE3-0ならびにTITLE4-0の内容を、それぞれTITLE3-1〜5、TITLE4-1〜5にコピーが可能です。
 下記の画面が表示されたときにINCボタンを押せばコピーされます。取り消しはできません。

 タイトル文字のコピー


v)ビットクロック測定値の補正入力
 入力設定時にUSE with BC RAW を選択した場合に、ビットクロックの測定周波数が表示されますが、
 PIC内蔵のクロック誤差が生じます。それを補正するための係数の設定です。この係数を乗じた周波数が
 表示されます。設定範囲は0.97〜1.03の範囲で0.0001ステップで変更できます。

ビットクロック測定値の補正入力

vi)自動復帰の有無選択
 キー操作が10秒以上なければ自動的にFRONT PAGEへの復帰の有無を設定します。
 タイトル編集後に、FRONT PAGEまで戻るのが面倒な場合に、ONにすればいいでしょう。
 設定パラメータ
  OFF        ・・ 自動復帰しません。
  ON in 10sec  ・・ キー操作が10秒なければ、自動的にFRONT PAGEに戻ります。

自動復帰の有無選択

vii)LCD選択
 使用するLCDのタイプを選択します。デフォルトはSC1602になっています。SC2004を実装している場合は、
 起動時にTERM-を押せばこの画面になりますので、最初にLCDの選択をすればいいでしょう。
  設定パラメータ
  SC1602(16*2)・・・ 16文字2行のLCD用に表示します。
  SC2004(20*4)・・・ 20文字4行のLCD用に表示します。

 LCD選択

5)初期化
 操作キーを同時に2個以上押しながら電源を投入した場合に、設定パラメータは初期化されます。

組み込んでみよう!
 2020.4.14

ソフトが完成したので、当初予定の機器内に組み込んでいきましょう。
組み入れる機器の現状は

 DIV5142(2WAY版)DAC4499(4ch仕様)→DAC4499−IV(OPA)

になっているので、これに追加して

 DIR(onSRC4137)→ DIV5142(2WAY版)DAC4499(4ch仕様)→DAC4499−IV(OPA)

という構成にして、直接的にSPDIFの信号が入力できるようにします。
DAC4499は4chモードで動かしますが、特段設定を変更するところはないのでシンプルファンクションモードに設定します。


DAC4499の上にDIR(onSRC4137)を搭載します。


DAC4499はシンプルファンクションで4chモードなので、ジャンパーは
すべてとりはずした状態になっています。



基板ののせました。まずはLCDとしてSC1602をのせています。

タイトルを変更しましょう!

折角なので、動作時のタイトルを変更しましょう。あまりゴチャゴチャ表示しても見にくいので、
シンプルに描いてみました。特殊文字をつかえば、凝った表示にできるかもしれませんが、
まずはこれでいいでしょう。


これはデフォルトのタイトルになります。


変更したタイトルです。シンプルに3行目は空白にして、4行目に入力と周波数を表示させました。

さて、備忘録として資料をまとめておきましょう。

製作マニュアルを作成しました → DIRonSRC4137Manual.pdf

PICのラベルも作りました。


これでリリースできますが、DIX9211の在庫あったかな?

リリースしました! 2020.4.15

アクセサリーのコーナに掲載しています。

DIRonSRC4137
 基板(SRC4137v2)と主要部品(DIX9211、PIC、水晶、チップCR) :   5500円
 オプション(74LVC245、チップR、(チップCは上記の余りを使ってください) 200円

(つづく)