電子工学を学ぶ学生や愛好家は、どこかの段階で、より高度な計測器を使い始めるようになるはずです。信号発生器、オシロスコープ、ロジック・アナライザなどが必要になるタイミングが訪れるということです。そうしたスタンドアロンの計測器は、非常に高価(通常は数百米ドル)です。それだけでなく、使用場所や保管場所としてそれなりに広いスペースを必要とします。
そうした問題を解決するのが、アナログ・デバイセズの「ADALM2000」です(図1)。これは、アクティブ・ラーニング・モジュール「ADALM1000」の高機能版です。低価格であることを1つの特徴とし、USBによって給電が可能なSMU(ソース・メジャー・ユニット)として機能します。なお、ADALM1000の詳細については、以前のStudentZoneの記事で確認できます。

ADALM2000は使いやすい製品であり、あらゆるレベル、あらゆる経歴の学生や愛好家向けに設計されています。つまり、学校での授業にも自学自習にも利用できます。従来、実験室で使用されていた装置とは異なり、多くの費用やスペースは必要ありません。それにもかかわらず、数十MHzレベルの信号を扱ってシステムについて検討したり、科学、技術、工学の学位取得に向けて基礎学力を強化したりといった目的に向けて活用できます。

ADALM2000は、サンプリング・レートが100MSPSで分解能が12ビットのA/Dコンバータ(ADC)と、サンプリング・レートが150MSPSで分解能が12ビットのD/Aコンバータ(DAC)を内蔵しています(図2)。シャツのポケットに収まる小型のデバイスでありながら、高い機能と性能を提供します。ADALM2000は、わずか数個のパーツを組み合わせたというレベルのものではありません。そのため、同ユニットの機能を理解するためには、内蔵する各パーツの基本的な動作を理解する必要があります。

ADALM2000は、以下のような特徴を備えています。
- USB 2.0/OTGに対応(LANとWi-Fiをサポート)
- 2つの汎用アナログ入力
- 差動、±25V、1MΩ || 30pF 、12ビット、100MSPSのADC。帯域幅は25MHz
- 2つの汎用アナログ出力
- シングルエンド、±5V、50Ω、12ビット、150MSPSのDAC。帯域幅は30MHz
- 2つの可変電源
- 0V~5V、-5V~0V、50mA
- 16本のデジタル入力/出力ピン
- 3.3V、1.8V、100MSPS、5Vトレラント
- 2つのデジタル・トリガ
- 3.3V/1.8V、100MSPS、5Vトレラント
ADALM2000には、図3に示した各種のピンを介してアクセスします。2×15本のカラー・ケーブルが付属しており、それぞれを容易に区別できます。
ソフトウェアの概要
ADALM2000は、ホストとなるPCと併用することにより、教室での学習をより充実したものとするポータブル・ラボとして機能します。アナログ・デバイセズのソフトウェア・パッケージ「Scopy」に対応しており、直感的な操作が可能なGUIを利用できます(図4)。このことから、短期間で効率的に多くの事柄を学ぶことができます。また、S c o p yは、オープンソースの技術をベースとして構築されています。そのため、ソース・コードを分析したり、自由に新たな機能を追加したりすることが可能です。

Scopyを使用すれば、ADALM2000を使って以下のような計測機能を実現できます。:
- 電圧計
- デジタル・オシロスコープ
- スペクトラム・アナライザ
- 電源
- ファンクション・ジェネレータ
- 任意波形ジェネレータ
- 2ポートのネットワーク・アナライザ
- バス・アナライザを備えるデジタル・ロジック・アナライザ
- デジタル・パターン・ジェネレータ
- デジタル・スタティック入力/出力
各計測機能の使用方法については、Scopy のWikiページをご覧ください。
ADALM2000で何ができるのか?
ADALM2000では、電子工学に関連する各種分野の学生が利用できるように、通信回路やパワー・マネージメント回路などを含む一連の実験用アプリケーションを提供しています。あらゆるリソースやサンプルは、ADALM2000に対応する実習教材のページで提供されています。また、EngineerZone®の教育用セクションでは、ADALM2000、ADALM1000、ソフトウェア無線に対応するアクティブ・ラーニング・モジュール「ADALM-PLUTO」を対象としたブログで情報を入手することが可能です。
この連載では、ADALM2000が備えるデジタル部/アナログ部について理解していただくために、様々な機能を紹介していきます。今回は、その素材としてDACを取り上げます。一般的なDACの実現手段の1つに、R-2Rラダー抵抗回路があります。これは、値の比率が2:1の2種類の抵抗のみを使用して構成した回路です。分解能がNビットのDACを実現するためには、2N個の抵抗を使用します。
R-2Rラダー抵抗回路を使用したDACの例を図5に示しました。電圧モードで使用する場合、デジタル値の0 はVREF-に対応し、デジタル値の1はVREF+に対応します。D0~D7から成るデジタル・コードに基づいて、各抵抗レグは、2つのリファレンス電圧レベルVREF+、VREF-のうちいずれかに駆動されます。その結果、出力電圧V_LADDERは、入力されたデジタル・コードに応じた値に変化します。2つのリファレンス・レベルの差がその最大値となり、デジタル・コードに応じて、その間の任意の値が出力されるということです。負のリファレンス電圧VREF-としては、グラウンド(0V)が使われることがよくあります。また、この例では、正のリファレンス電圧VREF+として正の電源電圧(3.3V)を使用しています。


準備するもの
- ADALM2000
- ソルダーレス・ブレッドボード
- ジャンパ線
- 抵抗:20kΩ(9個)
- 抵抗:10kΩ(9個)
- オペアンプ:「OP27」(1個)
図6に示すように、ソルダーレス・ブレッドボード上に8ビットのDACを実現するラダー抵抗回路を構成します。同回路には、8本のデジタル出力、オシロスコープのチャンネル、任意波形ジェネレータ(AWG)の出力を接続します。オペアンプ「OP27」に電源を接続するのを忘れないようにしてください。
まず、R1とR2の両方を挿入した状態で、AWG1の設定を行います。具体的にはDACのVREF+に等しいDC電圧を出力するようにします。ここでは、CMOSデジタル出力の電源電圧に等しい3.3Vを使用します。これによって、振幅が- 3 . 3 V~ 3 . 3 Vのバイポーラ出力電圧が生成されます。次に、AWG1を切り離し、抵抗R1を取り外します。そうすると、振幅が0V~3.3Vのユニポーラ出力電圧が得られます。ここでScopyを起動します。使用する計測機能として「Pattern Generator」を開き、DIO 0~DIO 7を選択してグループ化します。続いてパラメータを編集します。まずパターンとして「Binary Counter」を選択します。出力はPP(プッシュプル)になるはずです。周波数を256kHzに設定すると、図7のような画面が表示されます。ここで、緑色の「Run」ボタンをクリックします。

続いて、オシロスコープを開きます。チャンネル2をオンにし、時間軸を200マイクロ秒/ d ivに設定します。続いて、「Run」ボタンをクリックします。このチャンネルの垂直方向のレンジを調整する必要もあるかもしれません。おそらく、最初は1V/divに設定するのが適切でしょう。図8のように、電圧が0Vから3.3Vに上昇するのがわかります。立上がり時間は1ミリ秒です。

続いて、デジタル・パターンを変更してみてください。例えば、ランダム・パターンを試してみてもよいでしょう。(8ビット幅のバス用に)0~255の範囲の数字の列を含むプレーン・テキスト・ファイル(一般的なCSVファイル)を作成し、それをカスタム・パターンとしてロードすることができます。正弦波、三角波、ガウス関数などの波形ファイルも用意されているので、それらをロードして、カスタム・パターンと同様に使うことも可能です。
問題
- 続いて、デジタル・パターンを変更してみてください。例えば、ランダム・パターンを試してみてもよいでしょう。(8ビット幅のバス用に)0~255の範囲の数字の列を含むプレーン・テキスト・ファイル(一般的なCSVファイル)を作成し、それをカスタム・パターンとしてロードすることができます。正弦波、三角波、ガウス関数などの波形ファイルも用意されているので、それらをロードして、カスタム・パターンと同様に使うことも可能です。
- 入力D6が3.3V、D7がグラウンドに接続されているときに、この抵抗回路に流れる電流値を求めてください。
答えはStudentZoneで確認できます。