2016年12月
Cosmo-Zを19インチラックに納めてみた
2016.12.28
19インチラックに搭載して、工業用の組み込みPCとセットにしたCosmo-Zを作ってみました。
この装置単体で計測ができるようになるというわけです。
AD7960を使ったADCシステムのS/N改善
2016.12.24
THS4521をアナログフロントエンドに採用するとした場合、THS4521はレールツーレールとはいえども、0.1V~4.7Vくらいしか出せません。
AD7960には0~4.096Vの入力信号を与えたときにフルスケールになりますが、下の方が出ないため、フルスケールまで振り切れなくなります。その上、AD8253の出力特性にもひっかかります。AD8253の出力はVCC-1.4V程度です。
また、AD8253(ゲイン1)→THS4521(ゲイン1)→AD7960という構成では入力信号の振幅が±4.096Vになって、微小信号を扱うADCとしては大きすぎて扱いにくくなります。
そこで、2段目のTHS4521に5倍のゲインを持たせて、約1.0Vpp程度のフルスケールのADCへと改良をしてみました。
![]()
まず、改良前の回路で測られたノイズのスペクトラムです。

前々回の記事でも書いたとおり、半値半幅で見るとノイズは62μV程度と見積もられます。
回路の全体の図は、下の図のようになっていて、AD7960自体で46μVのノイズが生じているほか、2つのOPアンプで45μVと4.6μVのノイズが発生しています。
これらのノイズは独立して発生しているので、二乗の和の平方根となるので、√45^2+4.6^2+46^2≒65μVとなって、結果とほぼ一致します。
![]()
AD8253のノイズはデータシートによると、ゲインによって変わります。ゲイン1の場合は最大45nV/√Hzですが、ゲイン10以上では12nV/√Hz以下に下がるようです。
![]()
次にTHS4521に5倍のゲインを持たせた場合の、全体のノイズヒストグラムです。

半値半幅は4.5本なので、ADCの部分で測ったノイズは139μVということになります。(入力に換算すると27μV)
しかし、前のモデルで計算するとAD8253のノイズ45μVも5倍されているはずですから、√225^2+23^2+46^2=230μVなければなりません。そう考えると、AD8253のノイズが45μVもあったというのが過大評価だったのかもしれません。
![]()
次にAD8253のゲインを10、THS4521のゲインを5に切り替えた場合です。
半値半幅は13.5本ですから、ADCの部分で測ったノイズは418μVです。(入力に換算すると8μV)
逆算すると、AD8253が8nV/√Hzで8μV程度のノイズが発生して、80μVに増幅され、それがTHS4521で400μVにまで増幅されえいると仮定すると辻褄が合います。
データシートのノイズの値は、最大値で、実際にはより小さいと言えるでしょう。
結論です。
- AD8253のノイズはデータシートに書かれている最大値ほど悪くはない。
- ゲインを上げてフルスケールを1Vppとしたところ、入力換算ノイズは約27μVまで減らすことができた。
- ゲインを上げてフルスケールを0.1Vppとしたところ、入力換算ノイズは8μVまで減らすことができた。
高精度AD変換向けOPアンプとひずみ率
2016.12.23
昨日から引き続き、18bit AD変換器用のOPアンプ回路の検討をしています。
回路の構成は、こんな感じです。
LTC6362、THS4521、THS4130の3種類のOPアンプのうち、どれが一番良いかということです。
AD7960をフルスケールに振り切るには、0.000V~4.096Vまでの振幅の信号を与えなければなりません。LTC6362はレールツーレールと言われていますが、0.013V~4.93Vまでの振幅しか出せません。THS4521も0.1V~4.7Vくらいです。THS4130はレールツーレールではなく、1.3V~3.7Vくらいしか出せません。
つまり、0~4.096Vをフルに出せるものはありません。
ひずみ率は50kHzのとき、LT6362が-80dB程度、THS4521とTHS4310が-110dB程度です。これだけで考えるとTHS4521がベストです。
実際に50kHzの正弦波を入れて測ってみました。
![]()
まずLTC6362のスペクトラム。入力信号の強度などは適当な値にしています。
二次、三次の高調波を見ると-80dBくらいの性能がありそうです。
![]()
次はTHS4521のスペクトラム。
かなり綺麗です。-90dBはいけるでしょう。
![]()
最後はTHS4130のスペクトラム。
二次高調波が目立ちますが、-90dBは出ています。
![]()
結論を言うと、THS4521が一番よさそうです。そこで、入力段にあるAD8253のゲインをいろいろ変えてみました。
まずはゲイン10倍。当然入力信号も小さくして、ADCの手前で同じ大きさになるようにしています。
ゲイン1のときにノイズフロアが-130dBにあったのが、10dBほど持ち上がりました。しかし、新たなひずみが生じているということはありません。
次はゲイン100。
低周波成分のノイズがうるさいようですが、それでも歪は-85dBはキープできています。
この結果は他のOPアンプでも同じなので、AD8253の部分の性能を見ているのでしょう。
![]()
結論はこうです。
① +5Vで動かすには、どれを使ってもフルスケールは出ない。THS4521かLTC6362が最も広い出力電圧範囲が取れる。
② ノイズやひずみ率的にはTHS4521かTHS4130が良い。
③ AD8253はゲイン1,ゲイン10で極めて優秀。このOPアンプので性能劣化は考えなくてもいい。
この結果から、THS4521を採用することにしました。
最も綺麗なスペクトルが取れる条件を探し、ひずみ率-100dBを達成できました。
AD7960のアナログフロントエンド用OPアンプの選定
2016.12.22
Cosmo-Zの拡張ボードとして、Analog DevicesのAD7960を使ったAD変換ボードを開発しています。

前回の記事から大分時間が経ってしまいましたが、アルバイトのスタッフが動くようにしてくれました。
ADCのVREFには4.096Vを与えているので、このボードの入力電圧範囲は±4.096Vです。
ちなみに、複数の高精度ADCを並べるときにはVREFは外部から与えます。ADCの内蔵リファレンスは1つ1つばらつきがあるので、16bitや18bitのADCではそれが無視できないからです。しかも、VREFはパルス的に電流を吸い込むので、1つ1つのADCのVREFを各々のOPアンプでドライブします。そうしなければ隣につられてしまいます。これは定石です。
アナログフロントエンドには、ゲインをx1,x10,x100,x1000と切り替えられる可変ゲインアンプが付いているので、入力のフルスケールを±4.096V,±0.41mV,±41mV,±4mVと切り替えられます。
AD7960はEN0..EN3という端子があって動作モードを設定しますが、ベストな設定は0010(外部VREF 4.096V バンド幅制限なし28MHz)でした。0001(外部VREF 5V)にすると歪が増えます。また、0010(外部VREF 4.096V バンド幅9MHz)にすると、ノイズが増えます。
また、AD7960は入力フルスケールが±VREFなのですが、VREFは4.096Vまたは5Vにしか設定することができません。そのため、アナログフロントエンドでは0V~5Vまでフルスイングできるレールツーレールな低ひずみな完全差動アンプが必要になりますが、現時点でそのようなOPアンプのは世の中にありません。
レールツーレールといわれているOPアンプでさえも、本当は電源電圧ぎりぎりまで振り切ることができません。少なくとも高精度ADCでは「ふりきれない」ことが問題になります。また、電源電圧に近いところではひずみ率が悪化しますので、1/2VCCあたりのおいしいところで動作させなければならないのです。
本目的に何とか使えそうだと思えるOPアンプとして、Linear Technology社のLT6362、Texas Instruments社のTHS4521、同じくTIのTHS4130の3種類を選定しました。
これらのOPアンプを使ってどれが最も良い性能を出すかを比べてみます。
回路の構成としては、
- CH1 入力→AD8253(可変ゲインアンプ)→LT6362→AD7960
- CH2 入力→AD8253(可変ゲインアンプ)→THS4521→AD7960
- CH3 入力→AD8253(可変ゲインアンプ)→THS4130→AD7960
となっています。
![]()
まずは入力を50ΩでGNDに固定して、ノイズのスペクトラムを見てみます。
プリアンプのゲインが1の場合、半値半幅(HWHM)は2LSBなので、ノイズで±62μV揺らいでいると言えます。
赤がTHS4521、オレンジがTHS4130、茶色がLT6362です。THS4130のノイズは少し多いかもしれません。
![]()
次はゲイン10の場合です。
ノイズによる揺らぎが増えて±5LSBくらいになりました。ゲインを上げてノイズが増えたということは、これはAD8253の入力のノイズと言えます。確かにノイズも増えますが1LSBの分解能も細かくなっているので、トータルで性能は良くなっています。ゲイン10では1LSB=3μVですから、揺らぎは±15μVです。
ゲインを10倍にしてもノイズが2倍にしかならないということから、初段のAD8253と後段のアンプ+ADCのノイズが計算で求められますね。
初段でゲインを稼いだほうが精度が上がりました。
![]()
次はゲイン100の場合です。1LSB=0.3μVで、フルスケールは40mVppレンジです。
ノイズで非常に揺らいでいるように見えます。各チャネルとも半値幅はだいたい60LSBくらいなので、±30LSB揺らいでいます。1LSB=0.31μVなのでノイズは±9.3μVとなります。
![]()
最後はゲイン1000の場合です。1LSB=31nVで、フルスケールは4mVppのレンジです。
各チャネルともだいたい250LSBくらいの幅がありますので±4μVゆらいでいると言えます。
アルバイトさんが、より正確に半値幅を出してくれて、各OPアンプでの性能を比べてくれた結果をまとめたのが次のグラフです。
ヒストグラムの幅(半値半幅)を示しています。
ゲイン1の場合は個々のOPアンプのノイズ性能が顕著に出ていますが、ゲインが上がるにつれてOPアンプによる違いは見られなくなってきます。
微小信号を測るならば、初段のOPアンプが重要であるこがとがわかります。また、初段でゲインを稼ぐことでノイズを効果的に抑えることができることがわかります。
ピークに合わせたサンプリング
2016.12.21
唐突ですが、こういう波形があります。
50ns(=20MHz)の繰り返し周波数で出ている鋭いパルスなのですが、この毎回毎回のピークの高さを測りたいというご要望がありました。
波形の計測には、ZYNQ搭載の高速ADCボード「Cosmo-Z」を使うわけなのですが、Cosmo-ZのADCは最高でも125MHzですから、サンプリング周期は8nsです。波形全体をキャプチャして、後からピークを出すというわけにはいきません。
そこで考えたのが、ADCのサンプリング自体は80MHzくらいで行うものの、ピークの位置にぴったりと合わせてサンプリングすればいいのではないかということでした。80MHzのADCであっても、サンプリングの開いている時間はごく短い(≒1ns)なので、タイミングを合わせこめばできるはずです。
まず、20MHzの繰り返し波形を、サンプリングポイントをずらしながらピークを見つけます。
その様子をご覧ください。
上のアニメーションは、この波形のサンプリングポイントを720psずつずらして取ったようすです。にゅーっと動くのがわかると思います。
実際には18psくらいのステップで動かして、最大値が出るピークを探します。見つかったピークの位置にぴたりとサンプリングポイントが合ったときのようすです。
そして、4:1にデシメーションを行います。
これで、ピークの位置ばかりがサンプリングできるようになりました。
実際には、4:1にデシメーションする際に3つを全部捨てるのではなく、ピーク系列とボトム系列で2つの信号を出力するようにしています。
Cosmo-ZではFPGAで処理しているので、こういうこともできるという例でした。

























