DACのノイズを減らすための長い闘い
DACのノイズを減らすための長い闘いもだんだん勝利が見えてきました。
まず、非常に小さい正弦波を出して(0x1fffと0x2000を繰り返す)、全データバスが激しく同時に遷移する波形を与えます。
そのときに出力のようすはこちら。
XDCファイルにLVCMOSの出力電流の制約を書いて、DACに与えているクロックの電流を減らしてみたのがこちら。
劇的に減りましたね。
クロックはデータが遷移していなくても常に125MHzとか100MHzがDACに与え続けられているので、非常に大きなノイズ源になっているようでした。
次に、周期が異なる2つの正弦波をDACから出力して、クロストークを見ます。
Cosmo-ZのDACから出して、Cosmo-ZのADCでサンプリングしてFFTしてみると、
干渉があるんだかないんだかわからない結果になりました。今、緑のスペクトラムは100kHzで、茶色が約68kHzすが、ここで緑だけを消して見て見ましょう。
100kHzや200kHzのところに何もないので、クロストークが測定できないほど小さいことがわかります。
次に茶色を消して緑のチャネルだけみると、
わずかに、-100dBあたりのところにちょこっとだけいるのが見えます。クロストークは-90dBは達成できているといえます。
これで、「DACのAD9717はIとQチャネルが分離できていないのではないか」という不安は払拭できました。AD9717は2つのチャネルが混ざっているということはなく、7月20日ごろに実験していてうまくいかなかったのはディジタルの遷移が出力に乗ってきているためだったと確信しました。
さて、FPGAにADCやDACをつないだ「RedPitaya」というのがありますが、こちらはどうなっているでしょう。
RedPitayaのヒートシンクを外してみると、FPGAとDACが露出します。
使われているDACはAnalog DeveicesのAD9767で、Cosmo-Z DACで使用しているAD9717とは近い関係にあります。
AD9767も14bitのパラレルバスをDDRでマルチプレクスして14bit 125MHz 2chを実現しているので、条件は同じです。RedPitayaのDACへのデータバスの配線は上の写真のとおりFPGAと直結です。ただし、非常に距離は短くできているようです。
RedPitayaの波形も同じようにノイズが乗っていました。
下の図はRedPitayaで1MHzの方形波を出力したときの出力コネクタを同軸ケーブルでオシロにつないで観測したものです。
矩形波っぽい波形の上に発振するものが見えています。この発振は12~18MHzくらいでした。
ですが、たまに125MHzのクロックに起因すると思われるノイズも乗ります。
RedPitayaで100kHzの正弦波を出力してTHDを測ると-55dB~-72dB程度だったので、このノイズの問題をクリアできていないのではないかと思われます。
| 固定リンク
コメント