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種を作ってみる!の巻き。 で継続検討です。
(つづく)