ディジタルチャンデバを検討する!の巻き(その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クラスアンプ内蔵でもあるので、これを使えばばダイレクトにスピーカに接続できますから、
マルチチャンネルが極めて簡単に実現できそうですね。
DIV5142の赤外線リモコン対応大作戦! 2019.9.26
DIV5142基板を用いてパラメトリックイコライザやグラフィックイコライザの検討を進めていますが、その中で
操作スイッチのクリックノイズをなくす方法もわかってきたので、あわあせてDIV5142のソフトも改編しておきたいと思います。
でも、折角の改編なので機能追加として赤外線リモコンもつかえるようにしていこうかと思っています。
で、そうした場合に色々と考えないといけないのですが、
@どこにつなぐ?
赤外線リモコン用の受信モジュールをつなぐためにはPICのIO端子が必要になります。
で、ちょうどつかっていない端子がありました。正確にはつかっているのだけど、開発時以外には使わないポートです。
ICSP端子に開発以外には使わないPICの端子がでているのでこれをつかいましょう。
ここをつかって赤外線受光モジュールを接続しましょう!
Aプログラム容量は足りる?
これは実際にやってみないとわからないところがあります。
すでにPIC18F26K20(64Kバイト容量)で85%をつかっています。のこり15%で組み込めるかどうかです。
むずかしいようなら、かなり大幅なダイエット作戦が必要になりそうです。
B改造で済む?
ここが結構悩むところです。もともとは、処理速度的にはあまり高速である必要もなかったので、
操作スイッチの検出はソフトウエアのポーリングおこなっていました。そこに赤外線リモコンの操作がはいるとなると、
ポーリングしていたのでは間に合いません。割り込み処理を行う必要があるのですが、大幅なプログラムの構造を変更
する必要がでてきます。
これについては技術的にはできるのだけれど、どこまで忍耐強く取り組めるかが鍵です(笑。
なんとか、完成! 2019.9.28
ICSPコネクタに赤外線受光モジュールを追加しました。
項目設定の追加は2点
今回の改造で、項目の設定は2点増えました。いくつかある設定項目の一番最後に追加しています。
@リモコン学習
この画面が出て、PARA+(SW3)を押すと、赤外線リモコンの学習モードになります。
学習するキーは下記の6点です。
1:TERM+ (SW1) ・・・項目のインクリメント
2:TERM− (SW2) ・・・項目のデクリメント
3:PARA+ (INC SW3) ・・・パラメータのインクリメント
4:PATA− (DEC SW4) ・・・パラメータのデクリメント
5:VOLUMI UP
6:VOLUMI DOWN
学習方法はEVC72320Tと同じで、設定するリモコンのキーを1回押して、確認のためにもう1回押します。
追加その1:赤外線リモコンの学習です。
なお、リモコンの学習が完了すると、自動的に赤外線のリモコンの受光を有効にすると同時に、
ボリュームの調整方法をVRからSWに変更します。
A赤外線リモコンの有効設定
学習したリモコンを有効にするかどうかの設定です。有効の場合はVALIDを選択します。
使い勝手は?
チャンネルデバイダーにリモコンは必要?というご意見もでてきそうですが、離れたリスニングポイントで調整するのは便利かもしれません。
今回の改造に赤外線リモコンを加えるのも大きな目的ですが、それ以上に変わったのが、フィルターの定数切り替え時のノイズをなくしたことです。
これにより、調整のシームレス性がでたような気がします。ただし、入力周波数が変わった場合などは、DSPのプログラムの構成が完全に入れ替わるので
そのときは、すこしだけ音が途切れます。
改造用キットのリリース
改造用のPICと赤外線受光モジュールをセットで改造キットとしてリリースしています。
製作 参考マニュアル
(つづく)