2011-05-14

ES9018 の DPLL:Lowest での I2S 再生

長らく技術的にバグがあるのではといわれ、某所で超ローノイズ電源ならうまく行くケースがあるといわれた件ですが…

Twitter上で「Buffalo II のマイコン抜いたら再生できるよ?」といわれて、はたと思い至りました…そーいやどこのI2CプログラムもループでI2Cコマンド飛ばしてるんぢゃね?と…本来はイベント駆動で不要なコマンド飛ばさないのがいいはずですが…

そこからの連想で、そういえば先日入手したI2Cコントローラー、いらんときはコマンド送信してないな、と…(ボリューム弄るとLEDがちかちかしてコマンド送信してるのがわかる)

試しに、ってんで Lowest にしてみました。

SDTrans192 Rev2.1 ->I2S-> Buffalo II DAC(80MHz版) + I2Cコントローラー

で、96kHz/24bitデータを再生しているんですが…特に音飛びもなく普通に再生できてますね…

ってわけで、マイコンのプログラム(I2Cのコマンド)が悪さしてるのは確実っぽいです。

ちなみにこの構成でも352.8/24は再生できないので、80MHzクロックぢゃだめだ、ってのはそのまま。

===追記===
DPLL Mode Control がデフォルトだと、DPLLの設定を変えてもダメなようですね。
I2Cコントローラーで確認しながら変更中ですが、レジスタ番号指定での変更がうまくいかない…orz というか、あれですね、RS232C経由でアクセスしてるんですが、途中で反応しなくなってしまった…というわけで難航中です。

しかし、わかりにくい設定だこと…

10 件のコメント:

tetu さんのコメント...

CAPRICE(I2S)でもマイコン抜くとES9018のDefaultで動くんですが、mid-lowのようですよ。
88.2/24でも動きますが、1日中鳴らしているとやがてロックが外れます。エアコンの吹き出しの風を当ててやると、又復活します^^; 44.1/16だと外れません。

Dip SWが効かなくなりますから、Dual Monoで使ったりするには不適ですが。

ひよひよ さんのコメント...

をー、そうなんですか、データシート見ると、Lowestがチップのデフォルトになってるようですが、ロットによって違うのかしら…

ともあれI2CからLowestを明確に指定して鳴らしているので、I2C回りの問題かなぁ、と考えています。

もともとMID-LOWでは問題ないなぁ、と思っていて、LOWESTはダメだろうから、って試してもいなかった、のが痛かった…

MASA さんのコメント...

ES9018基板を設計中です。I2Cはコマンド発行時以外はお休みでプログラム完了です。と言うか、ループしっぱなしって発想が理解不能。シリアルポートも出しておけばUSB変換でPCから触れるが、なんかいつもと同じなので今回はPass(手抜き).

電源レギュレータも、世界最小??ノイズレベルですが、効能の有無は分からないです。

bunpei さんのコメント...

Hiyohiyoさんのthe lowest設定の場合、Register #25のdpll_bw_defaultsがAllow all settingsになっていますか?
もしなっていないとbest defaultのままです。
Buffalo IIのコントローラも必要なときにしかコマンドは出ません。

ひよひよ さんのコメント...

Bunpei様

#25がデフォルトのまま臭いので、そこをいじろうとしていますが、まだ終わっていません orz 他の設定は大体見直せたのですが

DPLLだけ変更して352.8/24を聴くと、LowestとHighestでノイズの出方が違うので、なんか効いてるのかしら、とか思いつつ…

息子'sの攻撃が激しく中断中です

MASA さんのコメント...
このコメントは投稿者によって削除されました。
xrmnk344 さんのコメント...

初めまして。
軍鶏さんの記事を拝見しコメントさせていただきます。当方ES9018を用いたDAC基板を設計しています。このICは大分癖がある様です。
当初40MHzで動作させていましたが、fs=96kHz以上で出力が断続しました。そこでマスタークロックをRFSGから50M~100MHzまで入力し動作確認した所残留FMが多少大きめ(5HzDEV程度/50Hz)では44.1kHzでもLOCKしません。そこで60MHzXTALを用いた所96kHzまではLOCKしました。このICの動作は、fsが高く、マスタークロックが低く、マスタークロックの位相雑音が大きく、SPDIF時には動作が不安定になるようです。送り側のXTALに手で触れただけでMUTEします。
一般のXTALで192kHz迄正常に動作させるためには90MHz以上でI2S又はLJ,RJで使用したほうがよいと思います。(保障はできませんが)ICの動作規格は位相雑音が最小もしくは理論上の時であるようです。FILTERの設定では変化しませんでした。
蛇足ですが、当方HP、ブログ(見た目は良くないですが)を最近開設しましたのでご覧下さい。http://aitlabo.net/
AK4399用はほぼ完成、ES9018は検討中、DSD1794は今月中を予定しています。
バッテリー駆動(充電回路内臓)もあります。

ひよひよ さんのコメント...

to xrmnk344 さん

別途メール送らせていただきましたぁ~

そーかロック外れるとMUTEしてるのか、MUTE時間を見直すと切れたように見えないのかしら(まぁ音はともかくとして)

クロック性能が影響するとすると、なかなか難しいですねぇ…ちなみに現在は96MHzで駆動していたりします。

xrmnk344 さんのコメント...

メールでも送りましたが、ES9018はCLOCKの周波数安定度(精度ではなく)が高くないと使えないようです。TCXOorOCXO等使えばよいかも?しかし送り側の変化には対応できません。
register#25のb0を1(bw=>128倍)にしたところ大きく改善しました。
ただしこれでJITTER抑圧が十分か否かは不明です。
もし検討し結果が分かり、お知らせ頂ければ助かります

ひよひよ さんのコメント...

レジスタ設定の意味が今ひとつ詳しく書いてなくて、困ったなぁ、と思いつつ…

#25 DPLL Mode Controlの[0] dpll_bw_128x で、1と0で何が違うのかがいまいち…