« 粗大ごみ処分 | トップページ | RX-DIPの基板が出来上がった! »

2013.02.02

Spartan-6にA/Dコンバータを接続

特電Spartan-6ボードが計測・制御用に使いやすくなるようにA/D・D/A拡張ボードを計画しています。

いろいろと手ごろなA/Dコンバータを調べていて、目に飛び込んできたのが、AnalogDevices社のPulSARシリーズ。さっそく、AD7689という8chの16bit品を使ってみました。

このADコンバータは、こんな構造をしています。

Ad7689_sch

逐次比較とか二重積分とかΔΣとかではなく、こんな感じでスイッチドキャパシタが並んでいる構造です。そして、これらのコンデンサをカチカチしながら比較することでA/D変換をするというものです。うーん、なんともAnalogDevices社らしきA/D変換器。

ですが、この構造がドハマリでした。A/Dコンバータの前にはOPアンプを置くのがふつうですが、この変換用コンデンサ(トータルで27pFくらいあるらしい)に充電するときに、アナログ入力端子から比較的大きな電流が流れ込みます。その電流を流すためにOPアンプが頑張るわけですが、20年くらい前からある(秋葉原で買えるような定番の)古いタイプのOPアンプだと十分な勢いで流し込めないばかりか、発振してしまうのです。

このA/Dコンバータに正しい電圧を与えるには、ADA4841とかAD8608とか、比較的最近のOPアンプをつかわなければならないのです。

また、電源の変動にもとても敏感なようです。

実際に試作ボードを作ってみて変換した結果がこのとおり。アナログ電源には7805を使っています。アナログ入力は半固定抵抗をつないで指でぐりぐり回しています。

FPGAがとりこんだA/D変換値は、FPGAの未使用ピンに出して、MITOUJTAGを使ってバウンダリスキャンで観察しています。MITOUJTAGを使えば、端子の状態が波形として見えるので、波形表示アプリをつくらなくてもFPGAの端子に出すだけでグラフとしてみることができるのは便利です。

Reg7805_1

で、全体の16bitの波形をアナログ的に表したのが上の緑色の波形。下の激しく変動しているのは下位4bitだけを表示しています。

半固定抵抗を固定させて、下位4bitの動きだけみてみると、何も指を触れなければ±3くらいの範囲で揺れていることがわかります。

Reg7805_2

つまり、12bitは確実にクリアできていて、13bitくらいの精度といえます。16bitのA/D変換では1LSBが62μVです。変換値の変動は0.5mV以内ということです。

ただ、AD7689のデータシートをみると±2くらいには収まるはずなので、もっと精度は出るはずです。

Ad7682_7689_hist


そこで、本当にそんな精度が出るのかと思い、AD7689の純正評価ボードを購入していろいろ実験してみました。下の写真は評価ボードとSpartan-6ボードをつないだところの写真です。SPI接続で4本の線でつないでいます。

Ad7689spartan6_2

この評価ボードは、電源6Vを入力して、ボード上のSW電源で6V→5Vに落とし、さらにアイソレートスイッチング電源が乗っていて、絶縁されたディジタル電源とアナログ電源を供給するようになっています。さらに、ディジタルのラインもアイソレートされています。

なるほど。このようにして、電源の変動やノイズからアナログ系を守るわけですね。
コイルやコンデンサだけのフィルタでは不十分だということがわかりました。

この評価ボード、デジタル信号もアイソレートされているのですが、そこが曲者でした。25MHzまでの信号は通ることになっているのですが、実際には25MHzは通りませんでした。それに、AD7689は内部リファレンスを使うようにすると、バグっているような動作をすることがあります。

いろいろな紆余曲折を経て、だんだんきれいな波形が取れるようになってきました。半固定抵抗を止めると、下位4bitの変動は4以内に収まるので、14bitくらいの精度は得られていると思われます。全体的にドリフトしているのは半固定抵抗の発熱によるものです。

Ad7689_kiku6v_sw

やはり、どのような電源を使うかが非常に効いてきます。評価ボード上で2段階のSW電源を入れているのに、大元の電源の品質に相当影響されます。

結局のところ、ベストな波形はつぎのとおり。変動は±2くらいの範囲に収まっています。

Ad7689_best

ようやく16bitのA/Dコンバータらしくなってきました。

この1週間、実験をしていてわかったことをまとめると、

 ・13bitの精度までは簡単にいく。そこから先が大変。
 ・プリアンプには推奨された最新のOPアンプを使うこと
 ・A/Dコンバータのリファレンス電圧は外部VREF ICを使うこと
 ・電源電圧の変動には非常に敏感。絶縁SW電源で分離すること

そのほか、AD7689の評価ボードの部品をつけたりはずしたり取り換えたりして、いろいろなコツをつかみました。というわけで、特電オリジナルなA/D変換ボードを作ろうと思います。

電源が非常に重要なので、絶縁SW電源で分離したあと、コイルやコンデンサを経て、さらにローノイズのリニア電源を通そうかなと思います。

|

« 粗大ごみ処分 | トップページ | RX-DIPの基板が出来上がった! »

コメント

いつも楽しく拝見させていただいています。
この様子ですと、電源インピーダンスも真面目に考えて設計しないと、痛い目を見そうですね。

投稿: | 2013.02.04 18:20

電源インピーダンスはあまり関係ないと思います。

投稿: なひたふ | 2013.02.05 14:32

電源インピーダンスの件、関係無い様で大変失礼しました。

最大16bitで、250kspsということで、同じ周期(リファレンスも同一電源から取ったレギュレータであれば500kHz周期)でAD7689の内部コンデンサへ充電のために電源が揺さぶられる可能性があるわけで、アナログ側のAD7689へ信号を供給するOPアンプ(プリアンプ)のPSRR、強いてはアンプに電源を供給するPSRRが効く帯域かな?と考えておりました。
一般的な高性能リニアレギュレータであっても、数百kHz帯の電源安定性(ループ特性の余有)はかなり低いですし、PSRRも良くて60dB程度、目標とする16bitには程遠いな~と感じておりました。
そうなると、コンデンサのサイズ(寄生インダクタンス)・容量・またそれらの配置・パターンレイアウトなどを全体的に思慮した、『電源インピーダンス』の妥当な設計が必要なのだと考えておりました。
(この辺はデカップリングとか、某A社さん的にはパワーインティグリティーとか呼ばれておりますが…)

もう少し深く勉強させていただきます。ありがとうございました。

投稿: 先ほどの意見者 | 2013.02.05 19:44

電源のインピーダンスは確かに重要ですが、パスコンやコイルの配置なので、すでに高速デジタル回路のやりかたで確立されてしまっています。
データシートに、何層以上で、どこそこの位置にコンデンサを置けみたいに書かれているので、周波数の高い成分については、その通りに作っていけばそれでいいのでしょう。

問題はより周波数の低い成分だと思います。絶縁型スイッチング電源をかましたり、VREFだけすごく綺麗にしたりといったテクニックが必要なのかなと思います。

どんなに悪い電源を使っても(USB供給だったり、モータ系と共有していたりしても)、ちゃんと16bitの精度が出せるようにしたいと思っています。
スーパーキャパシタを3個くらい用意して、順次切り替えながら供給していくような電源を作りたいですね。

投稿: なひたふ | 2013.02.07 12:14

電源の安定性に関する考察、勉強になりました。
このプロジェクトには期待しています。

投稿: AD変換+FPGAに興味のある者 | 2013.02.09 07:21

コメントを書く



(ウェブ上には掲載しません)




« 粗大ごみ処分 | トップページ | RX-DIPの基板が出来上がった! »