AD360ボードでデータが取れるようになった
鋭意開発中の18bit 20ch AD変換ボード「AD360」でデータが取れるようになりました。
このAD360ボードはRX63NとSpartan-3Aを搭載しています。ADCのコントロールはFPGAで行い、データの処理はRXマイコンで行います。
FPGAは、ADCのデータをデコードしてBlockRAMで作ったFIFOに溜めます。FPGAは、RXマイコンの外部バス空間につながっていて、RXマイコンはFPGAのFIFOのステータスを見ながらデータを取得し、そのデータをSDRAMに溜めるという動作を行っています。
このADボードにはキャリブレーション機能というのがあって、入力をGNDに落としてそのときの電圧をオフセットとして引き算できるようになっています。オフセット補正後は、ほとんど0Vの電圧が記録されます。
平均値と標準偏差の計算もRXマイコンでやっています。
標準偏差はノイズレベルを表しますが、200~250μVと大きめの値が出ています。
それは、ボードの入力に換算した電圧だからです。このボードは±10Vの電圧を入力できるようにするため、途中で5分の1に分圧しています。ADCのノイズは40μV~50μV程度なのですが、入力に換算すると5倍しなければいけないので、200~250μVとして計算されてしまいます。
ADCのノイズ自体はどうにもならないのですが、ディジタルフィルタを作って何とかできないかなと思っています。
オフセット除去後の各チャネルの入力波形を見てみましょう。
ほぼ0V付近で推移しています。ギザギザしている1つ1つのレベルが1LSB(約77μV)なので、±2~3LSBの揺れでしょう。
最後に、ファンクションジェネレータで作った振幅約9.8Vの正弦波を入れてみます。
ちゃんと正弦波として表示されました。
ファンクションジェネレータで作った9.8Vppで1.5625kHzの正弦波を入れてみたところ、時間軸で見るとこんな感じですが、
なぜ、1.5625kHzなのかというと、いま、サンプリング周波数が25kHzにしているので、25000/16が半整数になるからです。端数がでない周波数なのでファンクションジェネレータで作りやすいからです。こういう周波数を選ぶと窓関数を使わなくても鋭い周波数分解能が得られます。
(本当は25000/512×17、とか互いに素な値を選ぶのがよいのですが、ファンクションジェネレータがうまく合わせられない)
ざっと測ったところ、ひずみ率は-75dB程度でした。
ここで使っているファンクションジェネレータというのが、GWINSTEK社のSFG-2104で、ひずみ率は-55dBcなので、上のグラフが得られただけでも上出来です。
つまり、この高調波はADCボードのものではなく、ファンクションジェネレータから出ていると考えられます。
明日、会社に行ったら-100dBのオーディオアナライザで測ってみます。
| 固定リンク
コメント