CS4398を調べてみる!の巻き 2015.1.12

ちょと前にBBSでCS4398の話題が投稿されました。そういえば、いまままでBB(いまではTI社)を
主体にDACを作っていましたがシーラスロジックのDACは作ったことがありません。
 ちょっと興味が沸いてきたので調べてみました。
まずはHPを覗いてみると、こんなヘッドラインです。

DSD機能もあり、120dBの高性能なDACのようです。


さらに興味を引く記述があります。DSD専用のプロセッサも内蔵しているとのこと。
多くのDACではDSDモードではボリューム機能はないのですが、これができるとなると
便利かもです。ちなみにES9018SではDSDモードでもボリューム機能はあります。


もうすこし調べてみようと思いマニュアルをダウンロードです。おもわず印刷しましたが全部で45ページあります。
多いな〜。

CS4398のマニュアルです。結構なボリュームです。

マニュアルの日付をみてみると、最初にリリースされたのは2002年なのでそれほど新しい素子ではないようです。
マニュアルの更新も2005年で終わっています。まあ、こなれたDACということなのでしょう。

結構クセあるかな?


マニュアルをざっと眺めると、いろいろと気になる記載があります。
たとえばDSD入力モードにおいても64Xモードか128Xモードかを指定する必要があるようです。
ということは入力信号を常に検知する必要があるということかな?

もうすこし読み込んでいきましょう。

でもおもしろそうなので・・・

評価するにも、手組は大変なのでちょっと評価基板のパターンを描いてみることにしました。
いろいろな機能を試せるようにLCDも接続できるようにしています。
さらに、DSDでのマスタークロック、ビットクロックさらにPCMでもLRクロック、ビットクロック、マスタークロックの
周波数が検知できるような構成にしています。これで、各種の周波数の組み合わせに対応した機能確認ができるように
するつもりです。
 また基板サイズ的にはRaspberry Piとの組み合わせも考えて、いつものサイズの1/2で描いてみました。
ちょうどMINI-AMPなどと同じサイズです。
 さて、作ってみようかどうしようか・・・・ 連休中に悩みましょう。


まずは基板パターンを作ってみました。

試作基板ができてきました。 2015.2.11

すこし前に出来ていましたが、しばらく忘れていました(笑)。

基板が出来上がりました。


とりあえず、また忘れないように回路図をつくっておきましょう。

こんな感じの回路です。まだFIXしていないところが多数・・・。

いきなり間違い発見です。

間違いその1:余分な配線がありました。


間違いその2:なぜかコンデンサの部品番号が”JP”になっています。

あっという間に完成!

部品がとても少ないので、あっという間に完成です。

完成しました。とりあえずお出かけ用の写真です。

動作確認にはソフトを書かないといけないのですが、ソフト動作させるために必要なスイッチと表示器(LCD)を用意しました。
さて、マニュアルを読み込みましょう!

動作確認の準備は着々と進んでいます。

動作はしているようだけど・・・・
I2C通信は大丈夫のようです。チップIDが問題なく表示できました。
このチップのREVISIONは2のようです。

I2C通信は問題ないようです。

PCM入力で正弦波をいれてみました。波形はでますが、ちょっと波形が正弦波じゃないな〜
どこか設定かアナログ回路を間違えているかな?


正弦波じゃないのはなぜ?

間違いその3:

なんとVREFを5Vに接続していませんでした。VREFは5Vまでの任意の電圧を加えることができるので、
何を接続しようかと考えていて、失念したのでしょう(笑)。


VREFの接続を忘れてました。                         近くの5Vラインから調達です。

これで無事、出力波形が制限波になりました。

正弦波出力が得られました。

CS4398の癖?

CS4398はDSD入力とPCM入力がそれぞれ分離された入力ピンがあるので、外付けの切り替え器なしで簡単にDACが構成
できそうな感じですが、そうは問屋がおろしません。
回路図をみてもらうと74LVC125が沢山ありますが、これは多数のピンの周波数をセンスするためのスイッチ代わりに用いています。

DSDとPCMの入力は分離されているが・・・・

DSDでは
DSDモードでは×64と×128モードが入力可能ですが、それらで動作させるには内部レジスターのセットが必要ですが、
まず動作周波数(×64あるいは×128)とマスタークロックの周波数がわかっていなければなりません。
そのためDSDのBCK(SCK)とMCLKを個別にセンスできるようになっています。


DSDで動作させるには、入力の周波数とマスタークロックの周波数がわからないといけません。

PCMでは
またPCM入力でも動作周波数がSINGLE(44.1、48kHz)、DOUBLE(88.2,96kHz)、QUAD(176,192kHz)を
判別してレジスターのセットが必要です。このために、少なくともLRCKのセンスが必要です。

PCMでのレジスター設定

さらに、LRCK動作周波数のほかマスタークロックの周波数によっても、分周比率を設定する必要があります。
となるとBCKのほかMCLKの動作周波数のセンスが必要です。本来はMCLKだけでもいいのですが、こうなればついでに計れるものは
すべて計ることにします(笑)


MCLKによってもレジスタの設定の変更が必要です。

水晶発振器を搭載!

PIC自体の内部クロックの精度は1%と高く、それを用いてもいいのですが折角なので、水晶発振子も搭載することにしました。
こうすることにより、周波数判定の許容値を狭くすることができるのでプログラムの作成の負荷が低くなります。
 
最初は内部クロックでいこうかとおもいましたが・・・・            水晶を搭載することにしました。

ついでに、
74LVC125の1回路の入力がオープンになっていたところがあるので、
気持ち悪いのでVDDに接続することにしました。IC2のPIN9,10をまとめて近くのVDDに接続しました。
 

本格的にソフトを組みましょう!


(つづくかな?)