WM8805を試してみる!の巻き 2014.1.13

いつもつかっているDAIはCS8416が多いですが、なにやらWM8804/WM8805が噂になっています。
たまには違うDAIをつかってみてみるのも面白そうなので、WM8805を買ってみました。
なぜWM8805にしたかというとデータシートをみて8ch入力が可能なようなので、こちらの方が便利そうです。

W8805を買ってみました。ついでに変換基板に実装!

つかってみよう!
さっそく動かしてみましょう。変換基板には必要な水晶やパスコンなどを実装しました。
WM8805も多彩な機能をもっているので、それをフルに使うにはソフトウエアモードが必要です。

周辺回路を変換基板に実装しました。

ソフトコントロール? 

さて、ソフトコントロールは2wireモードにします。いわゆるI2C制御です。
簡単にPICとつないで、簡単にソフトを組み込んで動かしてみましたが、うまく動きません。

まずはPICとつないで動作確認。動かないな〜


たぶんソフトの設定値が悪いのかな?とおもいつつ、設定するレジスターはたくさんあるので、
下図のような制御スイッチと書き込み内容の確認LCDを取り付けました。
I2Cエラーも出ないので、正常にICにはデータの書き込みがされているようですが、
なぜかうまく動きません。
 どうやらICからの読み出しが問題かな?といっても、R0〜R2の内容は問題なく読み取れるのですが、
R3〜R30の読み取りがおかしいです(すべて00の値)。

まだまだ動かないな〜

ひょっとしてICが壊れてる?

ひょっとしてICが壊れている可能もありますが、気分を変えてH/Wモードで動かしてみることにしました。
すると、問題なくあっさり動き出しました。
ソフトの設定方法に問題があるのかな?もうちょっとよく調べてみましょう。

H/Wで動作確認。


H/Wモードでは問題なく動作しました。写真は48kHzのLRクロックです。

ソフトモードで動きだしました。

どうやら勘違いがあったようです。よくマニュアルを見ると、すべてのレジスターは読み出しできるわけではなく、
リード指定のあるものしか読み出せないようです。


ソフトモードで動き出しました・・・が?

あれ?

周波数出力がおかしいな〜? 48,96,192kHzはいいのですが、
44.1kHzシリーズの周波数がおかしいようです。まだまだソフトの設定がおかしいようです。
 
48kHzは問題なし。                      44.1kHzは出力周波数がちょっと変?

 
96kHzは問題なし。                      88.2kHzは出力周波数がちょっと変?

もっとマニュアルを読まないとだめですね。

だいぶわかってきました。

まだまだ、読み足りないところはありますが、192kHzまで問題なく動作するようになりました。
PLLの定数設定がまずかったようです。
  
 44.1kHz                      48kHz

  
 88.2kHz                      96kHz


 
 176.4kHz                      192kHz

DACにつないでみよう!

接続の構成はPC→DAC2707→(同軸)→ASRC→(同軸)→WM8805→(PCM)→DAC1242-5

DACのアナログ波形を見てみると、44.1kHz、48kHzは問題ないのですが、
88.2kHz入力時には波形に頻繁にノイズが載ります。
ASRCの出力のLRクロックと、WM8805出力のLRクロックを比較してみると、44.1kHz、48kHzは完全に同期していますが、
88.2kHzにはわずかな周波数差があります。このこのあたりが問題でしょう。

ちなみに、88.2kHz時にレジスターステータスをみるとR11にエラーフラグが立っています。
立っているフラグは
UPD_UNLOCK: UNLOCK Update signal
INT_INVALID:INVALID Flag Interrupt signal
INT_TRANS_ERR:INT_N caused by TRANS_ERR flag

44.1,48kHz 88.2kHz
DAC出力
綺麗な信号がでています。

ノイズが乗ります
LR−CLOCK
比較

上:ASRC出力
下:WM8805出力

周波数差なし。WM8805のPLLが正常に動作しています。

周波数差有り。WM8805のPLLがロックしていない?

さてさて、どのように解決できるかな?

ハードウエアモードで動かしてみましょう。 2014.1.23

ちょっとソフトウエアモードで色々と触っていますが、どうしても88.2kHzが動きません。
一度H/Wモードで動かしてみましょう!


H/Wで動かす設定です。はじめて回路図CADをつかってみました。やはり手書きが早いな〜

あたらしいブレッドボードに引っ越してハードウエアモードの結線にしました。


接続は ASRC → WM8805 として、両者のLRCKを比較します。
WM8805のPLLがロックしていていれば、両者はオシロ上で止まってみえるはずです。


接続の様子。ASRCの出力をWM8805に接続しています。

44.1kHz ○ロックしました
48kHz ○ロックしました
88.2kHz ×だめですね〜
96kHz ○ロックしました
192kHz ○ロックしました

やはり88.2kHzはロックしないようです。

ちょっとこの表が気になります。マスターモードで88.2kHzの記述がありません。


H/Wモードの基板を作っちゃえ! 2014.2.22

H/Wモードだけだと、小さくつくれるので2枚つづりにしてみました。

WM8805のH/Wモード基板です。

とりあえず作っちゃえ!

Simple DAI 2種を作ってみる!の巻き。 で継続検討です。

(つづく)