AN-2584: Cortex M4 ベースのMAX32625 とAD7124-8 とのインターフェース接続

はじめに

このアプリケーション・ノートでは、MAX32625 などのアナログ・デバイセズによるCortex-M4®ベースのマイクロコントローラを用いた、評価用ボードの接続方法およびAD7124-8 シグマデルタ(Σ-Δ)ADC の機能を簡単に引き出す方法を説明します。MAX32625 は、アナログ・デバイセズの超低消費電力マイクロコントローラ・ユニット(MCU)で、512kB のフラッシュと160kB のSRAMを内蔵し、最大96MHz で動作できます。ユニバーサル非同期レシーバ/トランスミッタ(UART)、SPI、I2C、USB、および最大40 個のGPIO に対応可能です。すべてのGPIO ピンは、ソフトウェアにより1.8V または3.6V に設定できます。内蔵の高セキュリティ機能と暗号化アルゴリズムは、ユーザによるファームウェアの安全な保護を支援します。 

また、このアプリケーション・ノートでは、マイクロコントローラとΣ-Δ ADC がSPI インターフェースを介して相互に通信する方法を示すコード例も提供しています。このコード例は、測温抵抗体(RTD)アプリケーションに基づいています。

評価用ボードのインターフェース接続

アナログ・デバイセズでは、アプリケーションのプロトタイプ化を迅速に行うことを可能にする、評価用ボードを提供しています。例えば、MAX32625 ( MAX32625-EVKIT ) およびAD7124-8(EVAL-AD7124-8)の各評価用ボードです。図1 に、EVAL-AD7124-8 に接続したMAX32625-EVKIT を示します。

図1. EVAL-AD7124-8 に接続したMAX32625-EVKIT
図1. EVAL-AD7124-8 に接続したMAX32625-EVKIT
表1. EVAL-AD7124-8 のコネクタ信号
テスト・ピン 信号 説明
TSCLK SCLK シリアル・クロック入力。シリアル・クロック入力は、AD7124-8 との間でのデータ転送に使用します。
CS CS チップ・セレクト入力。これはAD7124-8 を選択するアクティブ・ローのロジック入力です。このピンがハイの場合、デバイス動作は無効化されます。
TDIN DIN AD7124-8 の入力シフト・レジスタへのシリアル・データ入力。入力シフト・レジスタ内のデータは、適切なレジスタを特定するコミュニケーション・レジスタのレジスタ選択ビットと一緒にADC 内のコントロール・レジスタに転送されます。
DOUT DOUT/RDY シリアル・データ出力/データ・レディ出力。DOUT/RDYは、ADC の出力シフト・レジスタにアクセスするためのシリアル・データ出力ピンとして機能します。更に、DOUT/RDYはデータ・レディ・ピンとして機能し、ロー・レベルへ移行することで変換の完了を示します。
GND5 GND アナログおよびデジタルのグラウンド。

AD7124-8 評価用ボード

表1 に、プロトタイプ化を迅速に行うためにEVAL-AD7124-8 で利用できる信号を示します。なお、マイクロコントローラの電源範囲をチェックすることが肝要です。図2 に、MAX32625 とAD7124-8 の間のSPI 接続の代表例を示します。

図2. MAX32625(コントローラ)と単一AD7124-8(ターゲット)のSPI ブロック
図2. MAX32625(コントローラ)と単一AD7124-8(ターゲット)のSPI ブロック

MAX32625-EVKIT

MAX32625-EVKIT は、MAX32625/MAX32626 マイクロコントローラの機能を評価するための便利なプラットフォームです。MAX32625-EVKIT は、すべて、エッジ・コネクタで利用できるGPIO です。これは、アプリケーションの開発およびデバッグに最適な、全機能を内蔵したシステムです。

表2. MAX32625-EVKIT のJH1 コネクタ信号
JH1 Pin Signal
GND Ground
P0.7 SPIM0 Port: SS
P0.6 SPIM0 Port: MISO
P0.5 SPIM0 Port: MOSI
P0.4 SCK

関連コード

通常、1 つのプロジェクトには、AD7124-8 をMAX32625-EVKITとインターフェース接続するための、3 つのソース・ファイルと2 つの定義ファイルがあります。

表3. ファイルの説明
ソースおよび定義 説明
MXC32625.c MAX32625 とAD7124-8 をSPIを介してインターフェース接続するための関数のセット
MXC32625.h MAX32625 とAD7124-8 をSPIを介してインターフェース接続するための関数とパラメータの定義
AD7124.c AD7124-8 を設定するための関数のセット
AD7124.h AD7124-8 を設定するための関数とパラメータの定義
Demo_main.c 一部の関数を呼び出すコード例

デモ・コードのフローチャート

図3 にデモ・コードのフローチャートを示します。このデモ・コードでは、AD7124-8 を連続変換モードに設定します。連続モードでは、ADC は連続して変換を行い、変換結果をデータ・レジスタに格納します。RDY は変換が完了すると、ローになります。変換結果の各読出し要求の間には、ソフトウェア遅延が用いられます。

図3. デモ・コードのフローチャート
図3. デモ・コードのフローチャート

AD7124-8 の関数

表4 に示す4 つの関数は、AD7124-8 の主要機能を扱います。これらの関数のパラメータは、ヘッダ・ファイル(AD7124.h)で定義されます。すべての関数は、MAX32625 のSPIM インターフェースに基づきます。

表4. 付属するAD7124-8 の関数
関数名 関数の説明
void AD7124_Reset (void) AD7124-8 をリセットします
uint32_t GET_AD7124_ID (void) AD7124-8 のデバイスID を返します
void AD7124_CH_init (uint8_t SamHz) ADC 制御、バイポーラ設定、フィルタ、サンプル・レート、励起電流を設定します
double CalculateRTDTemp (double r) RTD の測定結果を計算します

デモ・コードの使用

ボードの接続後、プロジェクトをMAX32625 にダウンロードし、シリアル・デバッグ・アシスタント・アプリケーションを開きます。

ボー・レートが115200bps であることを確認します。図4 に、シリアル・ポートでの測定結果を示します。ADC に固有の構造により、最初にサンプリングしたデータは、通常、破棄されます。

図4. シリアル・デバッグ・アシスタントの結果
図4. シリアル・デバッグ・アシスタントの結果