お手軽ツールで今更学ぶアナログ(114) SAR(逐次比較型)ADCの原理回路の実験

Joseph Halfmoon

アナデバ社(ADI社)のWeb記事『StudentZone』を初回からすべて読む」の2022年2月号のお勉強は5回目です。今回はSAR(逐次比較型)のADCの原理回路の実験です。SAR型はマイコン搭載のADC回路では一番ポピュラーな形式じゃないかと思います。精度、速度、コストのバランスを取り易いから?知らんけど。

アナデバ社のWeb記事の2022年2月号(日本語版)へのリンクは以下です。

ADALM2000による実習:A/Dコンバータの原理と動作

「12ページもある」大作です。今回は5ページ「SAR ADCの動作」の実習であります。なお、逐次比較型SARは、Successive Approximation Register の略です。

ぶっちゃけ、SAR ADCの原理は HiLoゲームです。DA出力した電圧が、測定すべき電圧より高いか低いかだけ教えてもらえるので、最初は参照電圧の2分の1の電圧から始めて、出力が高いと言われれば出力電圧を下げ、低ければ上げる方向に2分検索していくというもの。DA出力のレゾリューションのビット数回の検索でもっとも近い数にたどり着けます。

恐れ多いことですが、申し上げたい儀これあり

アナログの権化、アナデバ様には恐れ多いことなのですが、今回は何点か申し上げたき儀これあり。まずは、

SAR ADCの実体回路図、20kΩの筈の抵抗、22kΩのカラーコードですぜ

R-2Rラダーのところの抵抗、回路図には20kΩと明記されているので間違うことはないと思いますが、実体回路図のカラーコード22kΩです。コマケー話で申し訳ありません。

OP484

今回の回路で、ボルテージ・フォロワおよび、コンパレータとして使うように指定されているのがOP484であります。1パッケージに4回路入った品種です。製品ページが以下に。

OP484 オペアンプ、高精度、レールtoレール入出力

今回使用の現物の写真が以下に。アナデバ製ADALP2000学習用パーツキット所蔵の一品。単電源(最低1.5Vでも動作可能)かつ、入出力ともレールツーレールというカッコイイものであります。

OP484

ただね、今回の回路については記事通りの回路じゃマズイ感じがするのであります。恐れ多いことですが。後で説明します。

実験用回路

SARを実装するにはHiLoゲームを実行する簡単な「ステートマシン」が必要です。アナデバ様の記事ではADALM2000をJavaScriptで制御してHiLoゲームを実行させる荒業にでています(スクリプトはダウンロード可能。)当方使用のDigilent社Analog Discovery2もJavaScriptで制御できます。ただJavaScript制御は後のお楽しみでとっておくことにしたいです。今回は単純な動作のみ実機で実験することにいたしました。また、別途「マイコン」でステートマシンを作って今回のSAR ADCのプロトタイプを制御してAD変換を試みる予定です。これは別記事としたいです。

※2022年9月12日追記:Arduino Unoで今回の回路を制御してみた記事がこちら。やっつけな実験デス。

さて実験用の回路が以下に(LTspiceにはOP484のモデルはなく、2回路入りの同等品OP284のモデルがあったのでそれを使用。)

なおラダーのデジタル設定値を5Vとして描いてしまったのですが、ADALM2000もAnalog Discovery2もデジタルIOはCMOSレベルだった筈なので3Vとするべきだったかもしれません。大勢に影響ない筈ですけど。

sarProto

現物を接続してみたところが以下に。OP484の未使用回路、端子開放になっているのだけれどいいんだろうか。。。まあ、アナデバ様の実体回路図でも開放だからいいか(人に責任押し付けてるな。)

SAR_ADC_PROTO_DUTconnected

4ビットのデジタル出力をR-2Rラダーに入れて16段階の電圧を発生させたもののボルテージフォロワ出力がC2青に。測定すべき電圧としては2Vを与えています。そのときのコンパレータ出力がC1黄色に。ProtoWaveForm

C2の電圧レベルとC1コンパレータの「ひっくり返る」ポイントが分かるように赤のカーソルを加えたものが以下に。

ProtoWaveFormMES

2Vあたりでコンパレータがひっくり返っているようです。当たり前か。後はコンパレータの出力を見ながらデジタル出力を制御すればAD変換できるっと。

しかしちょっと気になるのが、C2の波形の赤丸した部分です。発振でもしてるんじゃないかしらん?

OP484_OSC0

 

ボルテージフォロワ部分発振?

どうも1Vから2.5Vくらいの電圧を出力するときに発振しているみたいです。該当箇所を拡大したものが以下に。OP484_OSC

発振しておるようです。

暫定対策っす。アナログ素人がエイヤー、何も考えずC1を追加してみました。手元にたまたまあった680pFです。何も計算してまっせん。トホホ。変更後の回路が以下に。sarProtoB

680pFとりつけたときの波形が以下に。リンギングが見えちゃってますが、変更後2usもすれば安定しているみたい。後でステートマシン作るときに設定値変えたら最低2us待つことにすれば(ということは絶対500kHz以上の変換速度は出せないってことかい?)まあいいか。いい加減だな、自分。OSC680p

上記の暫定対策をしたときの「遠くからみた」波形が以下に。

ProtoWaveForm2

リンギングも見えない、いい感じ(に見えるだけ。)

お手軽ツールで今更学ぶアナログ(113) V/FコンバータによるAD変換の実験 に戻る

お手軽ツールで今更学ぶアナログ(115) デュアルスロープADC、シミュレーション編 へ進む