« AD7986で値がジャンプしてしまう | トップページ | アナデバのAD7986評価ボードがDigikeyから届いた »

2014.01.04

ADCの値ジャンプが解決できた

ようやくADCの値ジャンプが解決でき、18bitのADCの性能を堪能できるようになってきました。

まず、0Vを横切る正弦波

Ad7986_noerror

常に0Vを下回る正弦波

Ad7986_noerror2

何が原因だったかというと、ADCに入力される差動信号のコモン電圧でした。

ほとんどの高性能ADCは差動信号で入力を与えることになっていて、この2つの差動信号の平均値をコモン電圧というのですが、AD7986のデータシートでは何Vが良いと明確に定められていなかったので、軽い気持ちでREFINに使っている1.2Vを入れていました。

VIN+が1.2V+xで、VIN-が1.2V-xで振れることになっていたわけですが、なぜかVIN+ - VIN-が-0.01Vくらいのところでは、うまく動かなかったのです。

別にVIN+やVIN-が0Vを下回ったりしたわけではないのですが不思議です。

このコモン電圧を2.5Vにしたらうまくいったというわけです。

もはや最初の回路が原型をとどめないほどに修正されてしまいました。

Ad7986_noerror3

実はこれ、両面基板なのです。18bitのADCでもパターンに十分気を使って設計したら両面基板でできてしまいました。

ポテンショメータなどをつないで固定電圧を与えたときのキャプチャした波形。

Ad7986_noerror4

2つあるチャンネルのうちCH0(青)のほうがバラツキが少ないのが謎です。

標準偏差を取ってみると、CH0(青)が49uV(≒1.5LSB)、CH1(赤)が100uVでした。

CH0のほうでヒストグラムを取ってみると、

Ad7986_noerror5

LSB4個分にほとんどが収まっていることがわかります。これはAD7986のデータシートと比較しても、遜色ないレベルです。

考えてみれば、VCM=1.2Vだと、V-=0、V+=2.4VとV+=0、V-=2.4Vが入力できる電圧の最大値になるわけですから、フルスケールまで使えないですよね?

VCMの値は本来は任意のはずなのですが、ADCによっては予期しない動作をするのかもしれません。このAD7986では、一番良いのはVCM=1/2VREFなのでしょう。

なぜ1.2Vで作ってしまったかというと、以前Texas Instrumentsの石で設計した24bit ADC(オーディオ用の安いADCではなく計測用の高価なもの)がそういう設定にしていたからだと思います。思い込みやうまくいった経験というのは怖いものです。

|

« AD7986で値がジャンプしてしまう | トップページ | アナデバのAD7986評価ボードがDigikeyから届いた »

コメント

コメントを書く



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




« AD7986で値がジャンプしてしまう | トップページ | アナデバのAD7986評価ボードがDigikeyから届いた »