QUAD FN1242Aは実現するか? 2013.10.4

1通のこんなメールをいただきました。

昨年からエレアトさんの「P2D基板」がでまわってから、DSDオンリーのDACが巷では、
なにかと話題になっております。
今は私自身、P2D基板→FN1242A基板(シングル)→ルンダールで聴いていますが、
これがFN1242Aの新たな発見と言いましょうか、なかなか良いです。

そこで、FN1242Aデュアル×2のDSD専用基板を製作して頂ければと妄想しております。

(中略)

FN1242Aはなかなかいい音をだすので、まだまだ人気あるようですね。
まだFN1242Aはモノラルで使ったことはないので、ちょっと検討しましょう。
というか、ちょっとFN1242Aをモノでつかうのは結構裏テクが必要だったりします。
というのもモノラルモードで使用するための説明はマニュアルのバージョンによっては記載がなかったりするので、
なぜか謎に包まれています(笑)。

というか、PCMでもモノラルモードでつかうには、OM0,OM1ビットの変更が必要ですが、これにはソフト制御が必要です。

モノラルモードにするための設定

DSDモードだけにするには勿体ないので、DSDならびにPCMでも使えるように考えたいとおもいます。
マニュアルにはDSDをモノラル差動でつかう場合の回路例がありますが、
これではPCMの場合に左右の位相が変わってしまいます。

メーカのデータシートのDSD差動出力の接続方法。

DSDでもPCMでも同じ出力位相になるようにするためにも、若干の変更が必要です。
おそらく下記のような配線でOKでしょう。

このような接続にすればDSDでもPCMでもOKなはずです。

基板にのるかな?

ざっと必要な部品を配置してみました。さすがに4つのFN1242Aを載せるときついかもです。
もっともDSD専用とかにシンプル化すればいいのですが、やはりPCMも入力可にしたいです。
その切り替え用のICが少し部品数を多くしてしまいますが、まあ仕方ないでしょう。


だいたい配線が完了しました。



こんなご意見も 2013.10.6


こんなリクエストをいただきました。

DSD専用とするなら、とくにPICも必要ありませんしPCM用のバッファーICも不要です。
おそらくDSDを動作させるIC以外の素子がなんらかの影響を及ぼすのでは、とのご意見だろうとおもいます。
ということで、ちょとだけパターンを変更してDSD専用にする場合には、不要なICをすべて排除できるような
パターンを追加しました。違いわかるかな?


すこしパターン変更です。


基板上に設けたDS1〜DS10を半田ジャンパーすれば、PICやバッファーICの実装を不要にしてみました。
これらのジャンパー端子は、ある意味で基板のデバッグに役立つかもしれません。


半田ジャンパー用のパターンを追加しました。

試作基板ができました。 2013.10.16


部品面です。


半田面です。

まずは部品を実装!

お出かけ用の写真かな。

コードネームはDAC1242−5です。末尾の−5は以前にPCM1794を4つ使ったDACのコードネームが
DAC1794−5なので、DAC素子4個使いの基板の末尾は−5とすることにしました。

動作確認! 2013.10.20

まずはDSD専用モード

制御ソフトを組もうとして、PICのIOピンの定義をしていたら、重大な問題があることに気づきました。
詳細は後述するとして、まずはDSD専用モードで動作させましょう!
DSD専用モードではPICは必要ありません。基板上のDS1からDS10をすべて半田ジャンパーにします。


DSDモードの設定。DS1-10を半田ジャンパー。PICは不要。

DSDソースを用意しましょう。
DSDソースにはエレアトさんのUSB−DACがあるのですが出力の位相の確認等をするには正弦波などの
定常信号があると便利です。そういったDSDのデータファイルを作成してもいいのですが、手元に以前に
DSDソースとして改造したAD変換基板があるのでそれをつかうことにしました。
 基板を探してだしたのはいいのですが、この基板からはシステムクロックとなる出力がでていません。
ということでBCK信号を4倍した信号をつくるためにICS570を追加で搭載することにしました。


DSDソース用に改造したD変換基板(システムクロック追加版)。

ICS570はSO-8パッケージ(1.27mmピッチ)なので、変換基板が必要になりますが手元にDAC9018Sのクロック逓倍基板が
あったので、これを流用することにしました。そうすれば配線数も減るので製作が楽になります。

DAC9018Sクロック逓倍基板を活用してBCKの4倍信号(SCK)を作成しました。

接続してみよう!
こうしてDSDソースが出来上がりました。では、DAC1242-5と接続してみましょう。

DSDソースとDAC1242−5とを接続して動作確認です。

出力の確認は信号が正常に出ているかどうかと、位相のチェックです。

R,Lそれぞれの出力は

Rの出力はRP(正:非反転)、RM(負:反転)です。同様にLの出力はLP(正:非反転)、LM(負:反転)です。
まずは、それぞれのチャンネルの出力の位相が反転しているかどうかの確認です。
これはFN1242Aが動いていれば問題はないはずです。
まずは動作していることを確認しました。
 
RPとRMの出力。互いに位相は反転しています。

次はL,Rの出力位相が一致しているかどうかの確認です。これも問題ないようですね。

RPとLPの出力。2つの位相は一致しています。

USB−DACと接続してみましょう!
エレアトさんのUSB−AUDIOと接続してみました。接続は7ピンのコネクタで行いますが、
手持ちの連結ピンとICソケットを用いて接合部を組み立てました。

こんな感じでコネクタ部を組み立てました。

コネクタを接続すれば動作確認の環境は整います。

USB−AUDIOとDAC1242-5との接続。

動作には実際の音楽ソースを使っていますが、問題なく動きますね。

出力波形。差動出力なので位相が反転しています。

重大な問題とは・・・ 2013.10.21

PCM入力時はFN1242AをPICでシリアル制御しますが、すべての設定がシリアル制御できると思い込んでいたフシがあります。
すなわち入力フォーマット(右詰、左詰、I2S)の設定もシリアル制御できるものと思っていました。
他のDACについてはシリアル制御時はほぼすべての設定を行うことができます。
※それとも、単にPICとFN1242AのFMT0〜3の端子への接続を忘れたのかも・・・

あたらめて、シリアル制御で変更できるコマンドにはFMTの項目がありません。ん〜不思議なDACだ。

シリアル制御できる項目にFMT0〜3の項目がありません。

おもむろにジャンパーを

FMT0〜3の制御をPICでできるように、PICの空き端子からジャンパーを飛ばしました。ちょうど、3本分のジャンパーを追加です。
近くに、適当なランドがあったのでそこを利用して、ジャンパー線を飛ばしました。
 
ジャンパー線を飛ばす前。                                ジャンパー線を飛ばした状態。

さて、これですべての制御がPICからできるはずです。
ということで、DSD専用モードのときに短絡させていたDS1〜10の半田ジャンパー部をすべて吸い取ります。


DS1〜10はすべて半田を吸い取ります。

DSDの動作確認

まずはソフトにDSD動作を書き込んで、動作確認です。
制御方法としては、FN1242Aをリセットした状態で、FN1242Aの端子をDSD起動にするようにPICを設定したのち、
リセットを解除します。

問題なくDSDで動作しました。

次はPCMでの動作確認 2013.10.22

PCM信号のソースとしては、できればRenewFFASRCを使いたいところですが、まだソフトが完成していないので
ここはFFASRCを使いました。DAC1242-5の受信フォーマットをRJ(右詰)、LJ(左詰)、I2S等を変更して
問題なく受信できることを確認しました。

PCM信号の入力での動作確認中です。ソースはFFASRCを使っています。

ついでに電子ボリューム機能も・・・・あれ? 

電子ボリューム機能も取り付けられるようにVRもとりつけてみました。


VRを取り付けました!

VRの電圧出力をAD変換してそのままFN1242Aのレジスタに書き込むプログラムを作成して動作確認を行いましたが、
あれれ?他のDAC素子とは違い、VRの位置に対してリニアに振幅が変わります。なんか、変です。
マニュアルを再確認すると、減衰率は次のようになっているようです。

これって、DATA(VRの電圧値)に対してリニアに変化する式ですね(笑)。
Aカーブ(対数)のVRを使えば電子ボリュームとして使えそうです。でも本来は電子ボリュームとしての用途というよりは、
他の機器との出力レベル差を合わせるためのボリューム機能として考えたほうがよさそうです。
 なお電子ボリュームが機能するのはPCM入力のみで、DSD入力では機能しないようです。

ソフトの構成は

こんな感じでで入力のフォーマットを選択できるようにしましょう。
デフォルトはDSDです。

入力フォーマットの設定(H:開放、L:GND)

入力FORMAT  DSD   I2C
(16-24)
LJ
(16-24)
 RJ 
(16)
 RJ 
(24)
端子 P5 H L H H H
端子 P6 H H L H H
端子 P7 H H H L H
端子 P8 H H H H L

※ I2C:IIS format LJ:Left Justified(前詰め) RJ:Right Justified(後詰め)


電子ボリューム接続(PCM入力のみ)

機能 
端子 P9 GND
端子 P10 VR(2)入力
端子 P11 Vdd(3.3V)

その他の端子はMUTEリレーを駆動するために、それぞれ時間差を得てL→Hレベルになるようにしました。


MUTE RELAY制御

機能
端子 P12 予約
端子 P13 約1.5秒後にL→Hに変化
端子 P14 約3秒後にL→Hに変化

これでソフト完成かな?

試聴はRenewFFASRCとあわせておこないましょう!

RenewFFASRCのコーナに統合します


ソフトの一部改造版を作ってみました。 2014.14.24

DAC1242-5ではFN1242Aをモノラルモードで動作させるために、ソフト制御を行っていますが、FN1242Aは少し癖があり、
十分に高いシステムクロックが入っていないとソフトモードが動作しない状況があるようです。
そのため、たとえばDAIが立ち上がる前にDAC1242-5が立ち上がる(電源投入後0.5秒後)と、
PCM入力時に信号がきていない状態で動作を開始するため、正常に立ち上がらない可能性があります。
 これを回避するためには
  ADAC1242-5の立ち上がり時間を十分に遅くする(例えば5秒くらいの余裕時間をもたせる)。
  @若干パターンを変更して、BCK信号をセンスして、入力が確定していることを確認したうえでソフト制御を行う
の2パターンが考えられます。
Aについては実現は簡単です。プログラムの定数を変更するだけです。
@については、下記のように修正が必要です。

ABCK信号をセンスする改造を行う場合の手順
(1)手順1
 PIC(IC8)のPin11に入るラインをカットする。下図の黄色の×印のところを切断。

黄色線をカット


(1)手順2
 下図の2箇所(黄色線、赤色線)を接続する。なお、下図ではV1基板ですので青色のジャンパ線が3本ありますが、
これは無視してください(V2基板ではありません)。
    
黄色線、赤色線を接続する。                                変更例

(3)手順3 
 PICのソフトを入れ替える。

以上が修正の概要になります。これらの改造は不要な場合がほとんどかもしれませんが、基板の組み合わせにより
上記の改造が必要になるかもしれません。
 そのためこの改造に対応したPICをリリースします。下記の要領とさせていただきますので、ご希望の方はご連絡ください。

(1)PICを送付して書き換え後に返送。
 返送用の封筒を同封の上、送付ください。送付先はメールにてご連絡しますので、まず「DAC基板」を件名にしてメールください。
 なお送付時には下記のどちらのVerを書き換えるかを明示ください。
  AVer3: 電源ON時の立ち上がりのディレイタイムを5秒に設定する。
  @ver2: BCKをセンスして動作させる。

(2)実費での発送
 書き込みしたPICを送付します。費用は400円になりますが、送料が加算されます。
 どちらのverにするかをご指定ください。
  AVer3: 電源ON時の立ち上がりのディレイタイムを5秒に設定する。
  @ver2: BCKをセンスして動作させる。

(3)PICライタをお持ちなら書き込む。
 下記にファイルを入れておきます。なおオリジナルのバージョンはUPしませんので、
 書き換え時は十分に注意ください(新しいPICを用意してください)。
 
  AVer3: 電源ON時の立ち上がりのディレイタイムを5秒に設定する。
       →V3HEXコード。

  @ver2: BCKをセンスして動作させる。
       →V2HEXコード。