Raspberry Pi I2S 出力で外部クロック使用

システムクロックの線を抜き差しするとポップノイズっぽいのが聞こえたので、
外部クロックを使うようにすればポップノイズが消えるかも知れないと思って試してみました。

結論から言うと、今までの低い音のポップノイズはしなくなったけど、
代わりに高い音のポップノイズが出るようになっただけでした...(´・ω・`)

外部クロックを使用するには、またドライバのソースをいじるのですが、
念のために今までの修正を全て元に戻しておきます。
で、/usr/src/3.8.10+/sound/soc/bcm2708/rpi-tda1541a.c の 46行目を以下のようにします。
        .name           = "TDA1541A",
        .stream_name    = "TDA1541A HiFi",
        .cpu_dai_name   = "bcm2708-i2s.0",
        .codec_dai_name = "tda1541a-hifi",
        .platform_name  = "bcm2708-pcm-audio.0",
        .codec_name     = "tda1541a-codec",
        .dai_fmt        = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF |
                             // SND_SOC_DAIFMT_CBS_CFS,
                        SND_SOC_DAIFMT_CBM_CFS,

        .ops            = &snd_rpi_tda1541a_ops,
        .init           = snd_rpi_tda1541a_init,
これで64fsなビットクロックを外部入力することが出来ます。
でもって、何かしらの外部クロックを接続すればOKです。
今回は PLL1707 を繋いでみました。


丁度いいピッチ変換基板が売られていなくて、かなりごちゃごちゃしちゃってます。( ̄~ ̄;)
PLL1707の768fs出力をDACのシステムクロックへ入力、
PLL1707の768fs出力を12分周した64fsをRPiとDACのビットクロックに入力しています。
分周には
http://homepage2.nifty.com/y-daisan/html/B100529-2.html
を元に 74AC163 と 74HC10 を使用しています。

768fsとなると36MHz以上になります。
74HCシリーズの動作速度は30MHzくらいまでらしいのでカウンターの74163には74AC163を使用しています。
7410のほうは最高でも768fsの半分の周波数なので、74HC10でも大丈夫と思われます。

電子工作を始めるまではデジタル回路にノイズなんてないだろう~
と思っていましたがノイズでまくるんですね(>_<)
今回もノイズに苦しめられましたが、なんとかなってよかった~(;´д`)
検証はしてませんが 74AC163 と 74HC10 にパスコン付けたらノイズが消えた...気がします。




0 件のコメント:

コメントを投稿