ディジタルチャンデバを検討する!の巻き(その2) 2018.3.18

(前ページはこちら)

修正版の基板を描き終わって発注も完了。来週末には出来上がるでしょう。
で、その合間にソフトの整理です。

ソフトの構成は
機能としては下記のような形になります。項目はTERMスイッチで変更、パラメータはPARAスイッチで変更です。

1.FRONT PAGE

 通常立ち上がった時の画面です。
 ATTENATIONと入力周波数を表示します。
 最下段はフィルターの状態です。
2.フィルター周波数、ゲイン設定

 このページでHPF,LPF,.ゲインを設定します。
 各CHで独立して設定が可能です。表示は文字数抑えるため
 2500は2k5と表示しています。
 ゲインは-20〜+3dBで0.5dB毎に設定可能ですが、+側にするときは
DACの出力が飽和する場合があります。通常は−側だけで使用します。
”<”で表示されているところが変更箇所になります。TERMスイッチで切り替えます。
3.フィルタータイプ選択

 フィルタータイプとしてバターワースとリンクウイッツ・ ライリーの
2種類から選択します。
 既定値はバターワースになります。
4.バイクワッドフィルター次数選択

 フィルタの次数を2次(-12dB/oct)、4次(-24dB/oct)、
6次(-36dB/oct)、8次(-48dB/oct)から選択します。
リンクウイッツ・ ライリーの場合は2,4,8次のみになります。
既定値は4次です。
5.フィルターテーブル選択
 
フィルターの遮断周波数は決められた周波数帯を102分割した
テーブルに基づいて設定しています。その周波数帯を4つのテーブル
から選択します。
 1)40〜20000Hz(既定値)
 2)40〜10000Hz
 3)40〜 5700Hz
 4)40〜 3500Hz
6.出力形式選択

 出力をステレオあるいはMONOにするかを選択します。通常はSTEREO
を選択しますが、サブウーハなど1個だけを用いる場合はMONOを選択すれば
いいでしょう。既定値はSTEREOです。
”<”で表示されているところが変更箇所になります。TERMスイッチで切り替えます。
7.チャンネル連動選択

 各チャンネルの遮断周波数はばらばらに設定できますが、隣のチャンネル間の
それぞれのHPFとLPFを連動して操作したい場合はここでONを選択します。
OFFにすれば、各遮断周波数はばらばらで動きます(既定値はON)。
”<”で表示されているところが変更箇所になります。TERMスイッチで切り替えます。
8.ボリューム選択

 ボリュームを可変抵抗(VR)で設定するか、あるいはキー(SW)で設定するかを
選択します。キー(SW)を選択した場合は、フロントページにてPARAスイッチにて変更が
できます。既定値はVRです。
9.入力フォーマット選択

 入力フォーマットを下記から選択します。
 1)I2S (既定値)
 2)LEFT JUSTIFIED
 3)RIGHT JUSTIFIED 16Bit
 4)RIGHT JUSTIFIED 20Bi
 5)RIGHT JUSTIFIED 24Bit
 6)RIGHT JUSTIFIED 32Bit
10.フロントページリターン速度

 キー操作が一定時間無い場合、自動的にフロントページに移動する時間を設定します。
 1)#0 RETURN OFF (既定値)・・自動では戻りません。
 2)#1 FAST RETURN
 3)#2 MID  RETURN
 4)$3 SLOW RETURN
11.ソフトウエアバージョン情報

 PIC内のソフトウエアのバージョン情報です。
12.初期リセット

 この画面が表示されているときに、PARA+スイッチを押すとシステムの初期化を行います。
 すべてが既定値に設定されます。


隠しコマンド 2018.3.21

隠しコマンドを公開したら、隠しコマンドにならないですけれど(笑)、クロックに関するコマンドを追加で
入れています。隠しコマンドを実行するにはジャンパーの一部を接続します。


JP3_2を接続すると隠しコマンドが実行できます。

隠しコマンドの内容は以下の通りです。

PAGE0、REGISTER4の内容を書き換えます。
内蔵のPLLのENABLE,.DIDABLEを設定します。

既定値はENABLEです。
PAGE0、REGISTER14の内容を書き換えます。
マスタークロックの選択を行います。
AUTO、SCK,.BCKから選択できます。

既定値はAUTOです。
PAGE0、REGISTER37の内容を書き換えます。
クロックのregard/ignoreの選択を行います。

既定値はREGARDです。
これは読み出しオンリーのレジスターの表示です。
詳細はPCM5142のマニュアルを参照します。
これは読み出しオンリーのレジスターの表示です。
詳細はPCM5142のマニュアルを参照します。
これは読み出しオンリーのレジスターの表示です。
詳細はPCM5142のマニュアルを参照します。
これは読み出しオンリーのレジスターの表示です。
詳細はPCM5142のマニュアルを参照します。

SCK(マスタークロック) VS PLL

PCM5142の特徴としては内部にPLL発振器を有しており、SCK(マスタークロック)がなくても動作できます。
そのためRasPiなどのマスタークロックが出力ないものとも簡単に接続することができます。
で、SCKを使用した場合とPLLを使用した場合の違いを検証してみましょう。
そのために、隠しコマンドで作成したREGISTER4,REGUSTER14の設定が役に立ちます。
というか、隠しコマンドはこのためにつくったようなものです。

まずはSCKで動く範囲は

PLLからSCKに単純に変更させても動くものではないようです。動く範囲が限定されています。
以下が動く範囲になります。
条件としてはREGISTER4がPLL=DISABLE 、 REGISTER14=SCKになります。

44.1/48kHz 88.2/96kHz 176.4/192kHZ
SCK
49.15MHz
45.16MHz
−− (512FS)

OK
(256FS)

OK
SCK
24.58MHz
22.58MHz
(512FS)

OK
(256FS)

NG
(128FS)

NG
SCK
12.29MHz
11.29MHz
(256FS)

NG
(128Fs)

NG
(64FS)

NG

24.58MHzのときは限定的に48kHzでも動作するようです。基本的には動作には高い周波数がいるといいうことでしょう。
内部のminiDSPを動作させるための最低クロックが規定されているためだと思います。

SCK VS PLL

では、SCKとPLLでの違いをみてみましょう。

1)SCK=24.58MHzの場合
ここは限定的に48kHz入力でSCKが24.58MHz(512FS)の場合で比較してみました。
わかりやすいように周波数は10kHzと高めで評価しています。
PLLをDISABLEにすれば当然動作しません。PLLをENABLEにしたまま、SCK入力にすると波形が乱れます。
PLLと、純粋なSCKだけの比較ではほとんど波形の違いはわかりません。

PLL信号を使用
REGISTER14=PLL
SCK信号を使用
REGISTER14=SCK
PLL動作ON
REGISTER4=ENABLE
PLL動作OFF
REGISTER4=DISABLE

2)SCK=49.15MHzの場合
次は96kHz入力でSCKが49.15MHz(256FS)の場合です。
同じく周波数は10kHzと高めで評価しています。
先と同様に、 PLLをDISABLEにすれば当然動作しません。PLLをENABLEにしたまま、SCK入力にすると波形が乱れます。
PLLと、純粋なSCKだけでの比較ではほとんど波形の違いはわかりません。

PLL信号を使用
REGISTER14=PLL
SCK信号を使用
REGISTER14=SCK
PLL動作ON
REGISTER4=ENABLE
PLL動作OFF
REGISTER4=DISABLE


結果としてPLLとSCKも同じ?

結果としてはSCKで動作させる場合にはPLLをDISABLEにしないと、おそらくPLLからの干渉があるのかわかりませんが、
出力波形が乱れてしまいます。
 純粋にPLLとSCK(PLLはDISABLE)のクロックで比較した場合の波形の違いは見られません。
ということで、SCKとPLLのどちらを選択してもいいような気がしますが、なにやらマニュアルではジッタの関係から
SCKにした方が音はよいようです(聞いてみてはいませんが・・・)。SRC4137と接続するなら、水晶発振でのマスタクロック
なのでジッタは低いので、この場合はSCKで動かしたほうがいいでしょう。ただ、SCKで動かす場合は動作範囲が
限られる点は注意が必要です。まあ、それほど動作条件を変更させない場合は問題ないですが。

ようやくv2基板を入手しました。 2018.3.28

新潟から九州まで出張が続いたので基板の入手はおおよそ1週間遅れてしまいましたが、
ようやく今日現物に出会えました。


v2基板が到着しました。


修正部分のチップ抵抗Raを追加しています。

組み立てていきましょう!その前に・・・

さて新しい基板で組み立てていきますが、新しい部品をつかうのも勿体ないので、主要な部品はすべて再利用です。
ということで、前の基板から部品をどんどん外していきます。

まずはRCAコネクタを取り外し。


SSOPのPCM5142も取り外しました。


PCM5142とちょっと高い10uFのセラコンも再利用です。

組みあがりました!

ほとんど部品の再利用で組みあがりました。ICにはかなり熱が加わっていますが、手半田ごときの熱量で壊れることもないでしょう。

新しい基板でくみあがりました。

動かしてみましょう!
さて、通電して問題ないか確認してみましょう。

通電して動作確認です。

基板単体での動作のほか、アナログ出力とディジタル出力も問題ないことを確認しました。
さて、これでDIV5142は完成かな・・・あ!!!

マニュアルを書かないと!

とはいえ、また出張が続くので書く暇がないな〜。でも、再来週くらいにはリリースできるでしょう。

ようやくマニュアル作成に着手です。 2018.4.5

ほとんど家にいることがないので、なかなか進まなかったですがようやくマニュアルR1ができました。
DIV5142Manual.pdf

回路図はボチボチ清書して追加しましょう。

DIV5142ですがリリース開始しました。 2018.4.6

【番外編】
PiPA5756Dを動かして見よう! 2018.4.14

PCM5142とTAS5756はほぼソフトウエアがコンパチなので、DIV5142のソフトでPiPA5756Dを動かしてみることにしました。
PiPA5756Dは2チャンネルの素子のみなので、すこしソフトを改造してCH3,4を無視するようにしました。
PICは部品を取り外したDIV5142側のみに取り付けて、I2C信号と電源(5,3.3V)ならびにLRCK信号線をPiPA5756とDIV5142間で接続します。

こんな感じでDIV5142(主要部品は取り外し済み)とPiPA5756Dと接続。

早速動かしてみましょう!

PiPA5756D側にPCM信号を入れて所定の動作をするかどうかを確認しておきましょう。

こんな感じで動作確認しています。

問題なく動作することが確認できました。フィルターも問題なく動いています。

問題なく動作しました。


TAS5756はDクラスアンプ内蔵でもあるので、これを使えばばダイレクトにスピーカに接続できますから、
マルチチャンネルが極めて簡単に実現できそうですね。

(つづく)