« 任意のピンから電源出力 | トップページ | 喋る半導体検査プログラムを作りたい »

2023.04.20

ADコンバータMAX11198を動かす

非常に苦労しましたが、真贋判定装置のADCを動かすことができました。

当初作った回路にいろいろ問題があったので、こんな汚い回路になってしまいましたが、精いっぱい動いています。

Adc_dirty

使ったADCはMAX11198という16bit 2Msps 2chのADCなのですが、まず、データシートが重くてChromeで読んでいると真ん中あたりのページでブラウザが不安定になったり落ちたりします。Acrobat Readerでも固まります。Edgeで開くと辛うじて読めます。なぜなんでしょうね。

というわけで、データシートはほとんど読んでいません。内部レジスタもなさそうだし、適当に動かしてみましょう。

MAX11198というのはこんな感じのICです。

Max11198

このREFINOUTというところからリファレンス電圧が出てくるみたいなので、抵抗で分圧してOPアンプの非反転増幅にいれてやりましょう・・・とやってみたら大失敗

データシートに書いていなさそうなのですが、REFINOUTから取り出せる電流はマイクロA以下のようです。1MΩの抵抗で分圧しても電圧が下がります。1kΩとかで分圧した日には何も出てきません。

全然REFINOUTじゃないですね。

REFINOUTは外部からリファレンス電圧を入れてやるべきで、取り出してはいけなかったのです。

それから、次の失敗は差動入力であるということ。差動入力ADCというのは入力の+と-の電圧の差をAD変換するのですが、データシートに乗っていたこの回路をそのまま作ってしまいました。

Adc_frontend

何が問題かというと、OPアンプのGND付近の特性に影響されてしまうことです。

OPアンプってGND付近やVCC-数Vは非常に苦手なんです。レール・ツー・レールと謳っているOPアンプも0Vが出せるわけではなく、最低電圧が30mVであってもレール・ツー・レールを謳っています。それに、電源電圧付近では歪が多くなったりします。

メーカーの言っているレール・ツー・レールとか、「真のレール・ツー・レール」なんて嘘ですよ。本当に0Vを出したいなら正負両電源にしなければいけなかったのです。だいいち、VREF/2で折り返して反転増幅させることが気持ち悪い。+側と-側で時間差が出来てしまうではないか。

やはり、ADCのフロントエンドを作るなら、完全差動アンプに限ると思った次第です。

やっとこさアナログ回路が動くようになって、AD変換ができて、正弦波を測ってみました。

AD変換した後のデータをFPGA内でパラレル化してFPGA内蔵ロジックアナライザで見てみました。

Adc_3

イイ感じの正弦波になっていますね。

次は矩形波。

立ち上がりと立下りの部分が歪んでいますが・・・

Adc_2

オシロで見ても歪んでいるので、素直にAD変換できているのでしょう。

Scope_281

のこぎり波もちゃんとAD変換できています。

Adc_1_20230423135101 

とりあえずADコンバータのMAX11198を動かすことはできるようになりましたが、測れる最低電圧は35mVくらいで、使っているレール・ツー・レールのOPアンプが出せる最低電圧とほぼ同じです。

このADCの本来の性能を発揮するには

  • THS4521とかの完全差動アンプと両電源でドライブする
  • ADR381とかの外部VREFを使ってREFINOUTをドライブする

とするべきなのでしょう。

Adcok

|

« 任意のピンから電源出力 | トップページ | 喋る半導体検査プログラムを作りたい »

コメント

コメントを書く



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




« 任意のピンから電源出力 | トップページ | 喋る半導体検査プログラムを作りたい »