18bit 精密AD変換ボード>18bit A/D開発日記

18bit A/D開発日記

18bit AD変換ボードのサンプルアプリを更新

平成26年10月26日

特電18bit AD変換ボードのサンプルアプリを更新しました。

Ad18brd_2

→ 18bit A/D変換ボードの紹介ページへ


今回の更新でFFTができるようになりました。1MHzまで見えるスペアナができるようになりました。

ダウンロードはこちらです。全ソースコードも付いています。

● 18bit A/D テストアプリケーション 2014/10/26 Rev1.2

下の図は、CH1(青)は市販のファンクションジェネレータの出力する信号をFFTしたもので、CH2(赤)は18bit A/D変換ボード上の簡易DACが出力した疑似乱数(XorShift128)です。

18bitadc_fft_1

使ったファンクションジェネレータはDDS式なので、スプリアスが結構でています。アナログ式のオーディオアナライザをつなげば-100dBくらいまで減るでしょう。

このFFTの画面は毎秒47回ほど更新できているようです。やはり、ソフトウェアでFFTしたり、窓関数をかけたり、対数を取るところが重いです。本当ならばFPGA内のハードウェアでやらせてしまえばいいのでしょうが、18bitのデータを扱っているので、浮動小数点数のロジックを組むのが大変そうです。

 

さて、窓関数も何種類か選べます。

18bitadc_fft_2

ハニング、ハミング、ブラックマンくらいで十分だと思います。

このソフト結構すぐれもので、ヒストグラムとかも取れます。

18bitadc_fft_3

入力がGNDのときのノイズは40μVくらいで、上の図のヒストグラムは踊っているように見えます。

入力GND時のヒストグラムは・・綺麗なものです。

18bitadc_fft_4

 

FFTができるようになったら、面白くて、我ながらハマってしまいました。

 

インバータ式の蛍光灯に近づけてみたり

18bitadc_fft_5

うーん、何か面白い信号源がほしい。1000Vくらいの放電をさせてみてスペクトルをとってみようかな・・

 

18bit A/D変換ボードの製造を徐々に増やしています

平成26年9月9日

18bit A/D変換ボードの製造を徐々に増やしています。

今日は8台製造しました。

Adc18_8

このうち2台を動作テストしたのですが、成績は良好です。

入力を50Ωでショートしたとき、±2LSBくらいしか振れていません。

 

Ad18_noise

簡易的に測ったINLも、±100μVの範囲内にあるようです。(入力電圧が±1V以上で大きくなっているのは、信号発生器の問題)

 

Adc18_inl_2

18bit A/D変換器は、本当に微弱なものを測っているためか、いろいろ謎現象があって落ち込むことも多かったのですが、自分に少しだけ自信が持てました。

再びAD変換器の性能を測定

平成26年9月3日

先月18bit A/D変換ボードを発売したところ、あっという間に完売してしまったので、次のロットを製造しているところです。

最初に検査してから1か月くらい経ったのですが、経時変化はどうだろうということで再びいろいろと疑問に思っていたことを測定してみました。

まず、社内用の量産型の試作器004番。8月11日に、標準電圧発生器を使って簡易的にINLを測定した結果です。

Ad18_0902_1

CH1のゲイン誤差は0.055%、オフセットは1.6mV。CH2のゲイン誤差は0.052%、オフセットは0.25mVでした。INLは±50μVくらいでしょう。±1V以上でINLが悪化しているようにみえるのは、信号源の問題です。

今日測った結果は、

Ad18_0902_2

で、CH1のゲイン誤差は0.055%、オフセットは1.62mV。CH2のゲイン誤差は0.057%、オフセットは0.35mVでした。ほとんど変わっていません。むしろ、標準電圧源の変化のほうもあるのかもしれません。

また、別の試作基板000番では、CH1のゲイン誤差は0.063%、オフセットは0.26mV。CH2のゲイン誤差は0.07%、オフセットは1.5mVでした。CH1だから大きいとかそういうことはなく、回路の個体差といえます。

つまり、oneゲイン誤差やオフセットの誤差は、経時変化はほとんどなく、回路に固有の値であることがわかりました。

次に、ゲイン誤差に影響しているのはVREFの電圧なのですが、ADCに与えるリファレンス電源を、ADCの内蔵リファレンスにしてみました。すると・・

Ad18_0902_3

このように、入力電圧が0Vの近辺で最大2mVくらいの誤差が生じるのでした。

だから、two内蔵リファレンスは絶対に使ってはいけない。外付けリファレンスは必須なのです。

それから、今の回路は差動アンプにTHS4130というOPアンプを使っています。このTHS4130は電源電圧範囲が広く±5Vの電源で動かすことができます。しかし、THS4130は消費電流が15mAもあります。

低消費電力の回路にしたくなったので、THS4521に置き換えてみました。THS4521は1.6mAくらいしか消費しませんが、電源電圧は±2.5Vが最大です。ということは±2Vくらいまでの信号しか扱えません。

試作基板000番のCH1のTHS4130をTHS4521に置き換えてみると・・

Ad18_0902_4

ゲイン誤差0.048%、オフセット0.55mVなので、なぜか最初のより良いです。THS4521は意外と良いかもしれない。±2.2Vくらいまでは誤差なく出ています。

つまり、threeADCの入力フルスケールを+2.048Vまたは+2.0Vにして、THS4521を使うことで低消費電力化が図れるかもしれません。

 

最後に、電源電圧のノイズがどの程度AD変換値に影響を与えるかという検証をしました。18bit A/Dボードの電源はLT3439という超低ノイズのスイッチング電源を使っているのですが、一般のスイッチング電源と比べてどうでしょうか?

下の図はLT3439を使ったスイッチング電源部です。はんだ付けしたり外したりを繰り返しているので、ちょっと汚くなっています。

Ad18_0902_7

データシートによれば、LT3439のリップルは0.2mVpp以下とのことです。まずLT3439を使った通常のボードで入力をGNDに落として測ってみます。

Ad18_0902_5

CH1の標準偏差は約2.1LSB(40μV)、CH2の標準偏差は約2.3(44μV)でした。

 

次に、オンボードのスイッチング電源を外して、秋月で売っているMCW03-05D05を使ってみました。

Ad18_0902_8

この電源のリップルは50mVppだそうです。入力0Vで測ってみると、

Ad18_0902_6

CH1の標準偏差は約2.2LSB(42μV)、CH2の標準偏差は約2.4LSB(46μV)でした。

つまり、電源ノイズが50mV増えると、測定されたノイズが2μVくらい増えました。25000分の1ですから電源のノイズが変換値に与える影響は-88dBくらいといえます。

OPA211のPSRRは1kHzで-100dBくらい。THS4521のPSRRは-80~-100dBくらい。AD7986のPSRRは不明ですが、だいたいそのくらいでしょう。

電源のノイズが変換値に与える影響は-90dBくらいと見積って、fourスイッチング電源のノイズが50mVppあれば変換結果に2μVくらいのノイズとして乗るというのは妥当だと思います。

この2μVを大きいとみるか、小さいとみるかはそれぞれです。この18bit A/D変換器ではフルスケールが±2.5Vもあるのですから。

もし20bitのA/D変換器を作るとしたら普通の(ノイズが大きい)スイッチング電源を使ってはいけないでしょう。

18bit A/D変換装置の精度を落としていた原因が判明

平成26年8月8日(金)

長い間、悩んでいた問題がようやく解決できました。

18bit A/D変換器のテストをしていて、入力電圧がフルスケールの端に近づくにつれて簡易的に測ったINLが悪化しているという問題があることに気が付きました。

簡易的な測定というのは、「GPIB制御の標準電圧発生器でいろんな電圧を作ってADCで測る」というシンプルなやり方です。

S字を描いていて直線的ではなく厄介な感じがしますが、INLが悪化といっても±400uVくらいだったので、この問題は個体差か、計測時のやり方の問題か、標準電圧発生器の問題だろうと思っていました。

Inl1

出荷テスト用に数台のボードを並べて測ってみて、すべてのボードで同じような現象が起きたので、これは何か理由があるな・・と。これはヤバい。

 

この原因を見つけるのはとても苦労しました。何日もかかってようやくわかりました。

対策をしたほうと、していない方を比べてみるとその差は歴然としています。

Inl2

対策をする前(青)は、0.8%くらいのゲイン誤差で、INLは±400uVくらいです。

それに対して、対策をした後(赤)は、0.02%くらいのゲイン誤差で、INLは±100uVくらいのように見えます。

しかし、上ののグラフで入力電圧が±1Vを超えるとギザギザが大きくなっているのは標準電圧発生器のノイズが増えているためです。実際には0V近辺の値が正しい値なので、このA/DボードのINLは±40uVと推定できます。つまり、±2LSBくらいです。

この綺麗なINLのグラフは何度やっても、同じようにとれるようになりました。

Inl3

何台かのボードで測ってみても、ゲイン誤差は0.03~0.05%以下になりました。2.5Vを与えたときに2.499くらいまでは正確にでます。

明日はよりしっかりとした測定をするため、、低ひずみな正弦波を使ってDNLを測定してみることにします。

今回判明した「精度を落としていた原因」については、次回の月刊特電のネタにしようと思います。ご期待ください!

AD変換器のDNLを測定した

平成26年7月30日

開発中の18bit A/D変換器のDNLを測定しました。

極めて歪のすくない正弦波を入力し、実際に計測されたヒストグラムに、計算で求めた確率密度関数をフィットさせます。

Board2_ch1

こうして求めらたDNLは±0.3LSB程度でした。データシートどおりの性能が出ているということです。

なんだかギザギザしていると感じるか方がいるかもしれませんが、横が262144とべらぼうに長いのです。12bitや10bitとは違うのです。1LSBの電圧の幅が狭いし、±0.3LSBくらいの誤差があれば、このくらいギザギザしてしまいます。12bit ADCなら横が平均化されるのでもっと平になりますが、18bitだとこんなものです。

ということで、18bit A/D変換ボードの性能がひととおり測定できました。

開発した18bit A/D変換はちゃんと18bit ADCとして十分な精度が出ているという結論が、ようやくでました。測定を始めて3か月くらいかかりました。

本日からオンラインショップで予約受付開始します。

18bit A/D変換器のヒストグラムからDNLを推定

2014.07.25(金)

A/D変換器にはINLやDNLといった特性があります。これらは、何Vを入れたときにどういうコードが出力されるかといった特性が、どれだけ直線からずれているかを示すものです。

DNLというのは、いわばAD変換特性の、1つ1つの階段の幅のようなものです。DNLの考え方を下の図に簡単に示します。

Hist10_2
上の図では階段の幅が狭くなったり、広くなったり、しています。これが1LSBからどれだけずれているかが、DNLです。よって、上の図のような特性が得られた場合、DNLは-0.25LSB~+0.5LSBといえます。

さて、実際のAD変換器でDNLを測定するには、超精密なランプ波を入れて測定するのが理想的なのですが、18bitの精度で直線的なランプ波を作ることは普通はできないので、一般的には正弦波を入れてヒストグラムを取ります。

超綺麗なランプ波よりも、超綺麗な正弦波のほうが作りやすいからです。

さて、AnalogDevices社のAD7986 2Msps18bitのADCを使ったA/D変換装置

Np1067a_1

に、オーディオアナライザで作った綺麗な正弦波を入れてヒストグラムを取りました。

Hist1

計算で求めた理想的なヒストグラムを次に示します。

Hist2

これをフィットさせて、DNLを求めます。この過程の計算は超ムズカシイ式がいっぱい出てくるので、優秀な大学生にやってもらいました。

詳しい計算方法は、来週の特電社内勉強会で発表してくれるそうです。

 

計算すると、おおっ、それらしきDNLの形になったではないですか!

Hist3

ただ、フィットさせるときのパラメータ(オフセットとゲイン誤差)にかなり敏感だということで、やり方によっては次のような形にもなるようです。

Hist4

つまり、測定されたDNLはプラス+0.6~-0.5LSBということでした。データシートによれば±0.6LSBとのことなので、妥当であると言えます。

Hist5

このDNLを積分すればINLが出るはずなのですが、実際にやってみると・・

Hist6

縦軸はLSB単位ですから700LSBも出ていることになります。標準電圧発生器で測ったときには±5LSB以下にはなっていたので、こんなに出るはずがありません。オフセット誤差やゲイン誤差などのパラメータに極めて敏感なので、何かがずれているのでしょう。

このA/D変換器のDNL特性をよく見てみると、周期8で大きくなったり小さくなったりしています。

Hist7

ここで、ちょっとフェイクなのですが、横に8個ずつ平均をとって、つまり15bit相当のA/D変換器としてみます。すると・・

Hist8

DNLは約0.1LSBでした。これが何を意味するかというと、PulSAR型A/D変換器の中に入っている容量の小さい側の3つのコンデンサが不ぞろいなのではないかと推定されるわけです。

AD7986の内部の等価回路は、下の図のように18段のスイッチドキャパシタの構成になっているそうです。初段の131072Cと書かれたコンデンサの容量が30pFなので、一番小さいコンデンサの容量は約230aF(アトファラッド)となります。

Hist9

フェムトファラッド、アトファラッドレベルの差がDNLとして効いてきているのだとすると、半導体の個々の個体差に影響が大きいので、来週は別の基板で試してみたりしようと思います。

まだ回路的に改善できる余地もあるかもしれません。

とにかく、DNLは±0.6LSB程度で、データシートどおりであったと言えます。

今までに測定してきた結果をまとめると、

  • サンプリング周波数2Msps,
  • ノイズは40μV
  • ひずみ率は-100dB(以下)※
  • フルスケール±2.5V
  • INLは±5LSB(以下)※
  • DNLは約±0.6LSB(以下)

でした。

SINADはまだ計算していませんが、おそらく95dBくらいあると思われます。実行ビット数(ENOB)は、ENOB=(SINADdb-1.76)/6.02 という計算式がるので15bitくらいはあると考えられます。

18bit A/D変換器でヒストグラムテスト

2014.07.23(水)

ほぼフルスケールの低ひずみ(-106dB)の正弦波を入れて、2~3分くらいデータを集めてみました。

横が262144ポイントもあるので、見るのも、加工するのも大変です。Excelでは手に余るので、グラフ化するためにGnuplotを使いました。Gnuplotなんて超久しぶりです。

Hist1

Gnuplotでも表示が大変なので、少しデータに細工をしましたが、なんかそれらしい形が出ました。一応、ミッシングコードはないようです。

さて、このデータをどう加工して計算すればDNLが算出できるのか・・。英文と数式だらけの解説があるのですが、読んで理解するのは結構大変です。

今週の金曜日に優秀な学生さんが来てくれるので、それまで待つことにします。

 

18bit AD変換装置をAXIバスにつなげる

2014.07.22(火)

開発中の18bit AD変換装置で、ヒストグラム法によるDNLの測定やミッシングコードの測定を行いたいので、長時間のキャプチャができるように改良しています。

18bit AD変換装置で、変換データをAXIバスに出力するようにしました。これで、AXIインターコネクトを通じてDDR3メモリに書き込むことができます。

18bit 2Mサンプリングなので、18bitを32bitに拡張すれば8MByte/secです。バスの使用率的からみると微々たるものです。

Ad18_axi_1

 

しかし、大電力を消費するDDRメモリなどを使ったらノイズが乗るかもしれません。そこで実際に調べてみました。

 

まず、DDR3メモリを使わずに、内蔵BlockRAMでとった時の波形。標準偏差は2.50LSB。

Ad18_axi_2

 

DDR3メモリに蓄えたときの波形。こちらも標準偏差は2.50LSB。

Ad18_axi_3

 

つまり、DDR3メモリを有効にしても、ノイズの影響はなかったということです。

一安心です。   

オーディオアナライザVP-7722Aでひずみ率測定

平成26年7月18日(金)

18bit ADCのINLがひとまず安心できる範囲になってきたので、オーディオアナライザ「VP-7722A」を購入して、ひずみ率測定することにしました。

Vp7722a

どういう原理かわかりませんが、0.0001%だか0.0002%の、つるっつるの正弦波を発振することができる装置だそうです。

お店の札には-130dBと書かれていましたが、それはちょっと大げさでしょう。お店で動かしてみてもらったところ-102と表示されていました。

10kHzの正弦波を出すように設定しても、INPUT側の数値は9.883とか少し違った値を出してふらふらしています。状態変数型の発振回路を外部から制御しているのでしょうか。どういう仕組みなのかはよくわかりません。

さて、自称10kHzの正弦波を作って、開発中のA/D変換器につないで簡単に測定してみたところ・・

Vp7722a_fft

二次高調波が-110dB、三次高調波以降はノイズに埋もれてわからないという結果になりました。

オーディオアナライザすごい!

さて、来週はオーディオアナライザを使ってSINADやINL、DNL、有効ビット数を測定する方法を考えてみます。

 

18bit AD変換ボードのINL

平成26年7月17日(木)

前回、YOKOGAWAの標準信号発生器「7651」を使って入力電圧を徐々に変えていってどんな値が出力されるかを調べたところ、計測値と理想値との差はこのようにギザギザになりました。

Ad18_vs_7651_2

改善前のINL特性(?)

このギザギザの高さは400μVくらいあるので、つまり、入力電圧の範囲によっては±200μVくらいの誤差が出てしまうということでした。

±40LSBくらいあるので、さすがに無視できません。

最初はA/D変換のプロトコルの問題だろうと思っていたのですが、どうやらそうではないことがわかりました。A/D入力信号につなぐコンデンサの問題だったのです。(詳しいことは月刊特電Vol5に書きます。)

 

2週間悩んで原因を追究し、その対策をしました。「7651」にGPIBをつないで、-2.5V~+2.5Vまで200μV刻みで出力していって、それをA/D変換器で測定してグラフにしました。

Ad18_allspan

改善後のINL特性(?)

 

改善前は±400μVで振れていたのに、改善後では±100μVくらいに減っています。

グラフを見ると、入力電圧が±1Vより外と、±0.1Vの中では明らかに様子が変わっています。これは「7651」は、出力電圧によってレンジが切り替わるためです。「7651」は、2段階のDACを用いて信号を作っているようで±1V以上ではノイズも増えます。それゆえ、1Vより外側で見えているギザギザは信号発生器「7651」の特性と考えられます。

標準信号発生器は0Vを中心とした±100mVの以内が一番精密な電圧が出るので、中心のところが真の結果になっていると推測されます。

このように、「YOKOGAWA 7651」は±100mV以内で最高の性能を発揮するので、-100mV~+100mVまでの範囲で入力電圧を精密にスイープしてみました。すると、

Ad18_100mv

改善後のINL特性 0V付近(?)

計算値と測定値の誤差は±40μVくらいの範囲内に収まっていることがわかります。この測定の設定では、1LSB≒19μVに設定しているので、INLは±3LSB以下という推定が得られました。

これ以上の精密な測定は、超精密なランプ派を出す信号発生回路を工夫しないと難しいのですが、18bit AD変換器として十分な性能が出せるようになったと考えています。

 

A/DコンバータとFPGAをつなげれば誰でもそれなりのものは作れるのですが、ちゃんとした16bitや18bitの性能を出すのはとても難しいものだと痛感しました。

 

18bit AD変換ボードの特性を測る

平成26年7月4日(金)

18bit AD変換ボードも、出荷に向けて詰めの作業に入ろうとしたところ、いろいろ課題にぶつかっています。

YOKOGAWA 7651という標準電圧発生器(とても精度の高い電圧源)で発生させた電圧をAD変換ボードの2つのチャネルに入れたところ、2つのチャネルで差が生じていました。その誤差は、どうやら電圧を変えていくと広がるので、ゲインの誤差ということが推測されました。

いろいろと調べていて、プリアンプのゲイン誤差ではなく、A/D変換器(AD7986)自体の誤差であることがわかりました。

それは、ADコンバータのVREFの電圧の差に起因するものです。AD変換器の出力値は入力電圧とVREFとの比なので、VREFがずれるとゲインがずれることになります。

A/D変換器AD7986のVREFを内部基準電圧を使って作り出すと、データシート上は4.081~4.111Vとなっていて、なんと0.7%も違ってしまいます。これでは2つのA/D変換チャネルを作ったときに値が一致するわけがありません。

Ad18_7651_ref

そこで外部電圧リファレンスを用いたのですが、これもダメでした。AD7986は1.200Vの基準電圧を入れるのですが、その1.2Vから内部で4.096Vを作り出しています。その倍率の計算で、AD7986の個体差があるようでした。

結論を言うと、AD7986のバッファをディゼーブルにして、外部からVREFを与えてやらないと複数のAD7986のゲインは一致しないようです。

そうすると、2つのチャネルのプリアンプが作り出していると思われるのオフセットの誤差(1mV程度)だけが見えるようになりました。

【+1.400Vを入れた場合】

 

Ad18_7651_p14

【-1.400Vを入れた場合】

Ad18_7651_m14_2


0.3%くらいのゲインの誤差がありますが、これはVREFの電圧が4.096Vから僅かにずれているためでしょう。基準電圧源は0.1%精度ですが、前述のADコンバータ内のバッファアンプの誤差があるので、わずかにずれてくるのだと思います。

 

というところまで会社でやったところで帰宅時間になったので、AD7651とAD変換ボードと、GPIBインタフェースを持って帰ってきました。

Ad18_7651


今夜はADコンバータと徹夜で戯れようと思います。


© 2015 TokushuDenshiKairo Inc. All rights reserved