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 を示します。
テスト・ピン | 信号 | 説明 |
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 接続の代表例を示します。
MAX32625-EVKIT
MAX32625-EVKIT は、MAX32625/MAX32626 マイクロコントローラの機能を評価するための便利なプラットフォームです。MAX32625-EVKIT は、すべて、エッジ・コネクタで利用できるGPIO です。これは、アプリケーションの開発およびデバッグに最適な、全機能を内蔵したシステムです。
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 つの定義ファイルがあります。
ソースおよび定義 | 説明 |
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 は変換が完了すると、ローになります。変換結果の各読出し要求の間には、ソフトウェア遅延が用いられます。
AD7124-8 の関数
表4 に示す4 つの関数は、AD7124-8 の主要機能を扱います。これらの関数のパラメータは、ヘッダ・ファイル(AD7124.h)で定義されます。すべての関数は、MAX32625 のSPIM インターフェースに基づきます。
関数名 | 関数の説明 |
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 に固有の構造により、最初にサンプリングしたデータは、通常、破棄されます。