アンダーサンプリング
IF455kHzのサンプリング周波数ですが、とりあえずCQ12月号のJA2SVZ氏の記事を参考に、折り返しがゼロIFになる455kHz×4/5=364kHzでアンダーサンプリングすることにしました。この理由としてADC(LTC1407A)のスペックと、50MHzをDCMで3/4倍した37.5MHzを1/103すると大体364kHzとなるからです。(数10Hzの誤差はありますが、IFの帯域幅から考えると全く問題無いレベル。)
で、スタータキットに搭載されているADCはSPI制御なので、SPIクロックにDCMから生成した37.5MHzを与え、103クロック毎にADC_CONVをアクティブにしてやれば約364kHzでサンプリングされるはずだったのですが、予期もしないところで問題が…
DCMが何故かロックしないのです(・_・、)
DCM単体では全く問題なく37.5MHzを生成してるのですが、SPIインターフェース部分の信号線を徐々に増やすと(SPIインターフェースにぶら下がる他のデバイスをディスエーブルする信号も含めて)、あるところで何故かアンロックしてしまいます。ISEでは特に問題なく合成されているようなので、他にDCMを使う上で何か「おまじない」があるのでしょうか???
僕の知識では、これ以上わからないので、某ジャンクパーツ屋で見つけた37.5MHzの水晶発振器(SG-8002JF)をスタータキットの補助クロックオシレータソケットに実装して進めることにしました。
(PLLタイプなので若干ジッタが多いですが、とりあえずということで…)

補助クロックオシレータを使用するようにVHDLソースなどを変更すると、あっさりとADCが動作。
(あ゛ー疲れた…、最初からそーすれば良かったなぁ)
# 次はこれをIQに振り分けて、そのままD/Aしてみよう。



コメント
こんばんは! Pochiです。
ちゃくちゃくと進めておられますね! :)
アンダーサンプリングは正解と思います。455kHzのIF信号は事前にしっかり帯域制限がかかった信号ですもんね。
DCMの件、私はAltera一本槍でXilinxは使ったことがないので、一般論しかいえませんが、スタータキット基板のPLL/DLLアナログ系電源のバイパスキャパシタなどノイズ対策が軟弱だったりするのでしょうかねぇ? いずれにしてもやっぱADクロックは原発振を素直に分周した信号で駆動するのがよさげに思います。
RJBさんの挑戦をみていて、私もかなりムラムラしてきました。 CQ誌でもDRM受信がいろいろとりあげられてますしね。 ダイレクトコンバージョン受信機とか挑戦してみたいなぁ。
投稿者: Pochi | 2007年02月07日 01:19
Pochiさん、どうもです!
なかなか時間が取れなくて、ノロノロですけど…(^_^;)
FPGAも電源やピン配置などが鬼門のようですが、格安?スタータキットだと、どこまで対策されているかは、ちょっと?ですね。
投稿者: RJB | 2007年02月08日 01:39