メインコンテンツ

Analog to Digital Converter ブロックの使用による STMicroelectronics STM32 Processor ベースのボードのサポート

この例では、Embedded Coder® Support Package for STMicroelectronics® STM32 Processors を使用して、アナログ入力チャネルに接続されたアナログ信号を Simulink® モデルの Analog to Digital Converter ブロックでデジタル化する方法を示します。

はじめに

この例では、STMicroelectronics NUCLEO-F429ZI ボードの Simulink モデル内の Analog to Digital Converter ブロックについて、その使用方法とコード生成方法を学習します。このブロックを使用して、内部基準電圧と温度を測定してデジタル化します。

前提条件

以下のチュートリアルを完了します。

必要なハードウェア

この例を実行するには、次のハードウェアが必要です。

  • STMicroelectronics NUCLEO-F429ZI ボード。

  • マイクロ USB ケーブル。

モデル

open_system('stm32_adc_gettingstarted');

このモデルを使用して、モデルのサンプル時間の各ステップで Analog to Digital Converter ブロックを介して内部基準電圧と温度 (内部チャネル) を読み取ることができます。

タスク 1 - 内部基準電圧と温度を読み取るように Simulink モデリングで ADC ブロックを構成する

このタスクでは、NUCLEO-F429ZI ボードの 2 つのチャネルに配列を出力するように Analog to Digital Converter ブロックが構成されます。

  • 出力の最初の要素は、基準電圧チャネルから測定されるデジタル化された電圧です。

  • 出力の 2 番目の要素は、温度から測定されるデジタル化された電圧です。

1. stm32_adc_gettingstarted ターゲット モデルを開きます。

2. ブロックを構成します。ブロックをダブルクリックして [ブロック パラメーター] ダイアログ ボックスを開きます。

  • モデルの ADC ブロックは、生成コードにおいてモデルの各ステップで ADC 変換を行うように Trigger and read を使用して設定されています。

3. 新しい STM32CubeMX プロジェクトを作成するか、既存の STM32CubeMX プロジェクトを参照します。STM32CubeMX プロジェクトを STM32CubeMX ツールで起動します。詳細については、STMicroelectronics の STM32 プロセッサ ベースのボード入門を参照してください。

4. 次の構成を行って、ADC1 チャネルを有効にし、基準電圧と温度をデジタル化するように構成します。

  • STM32F4x9 プロセッサ チップで、基準電圧と温度がアナログ チャネル 17 とアナログ チャネル 18 にマッピングされています。

  • [End of Conversion Selection][EOC flag at the end of all conversions] に設定されていることを確認します。

  • ADC1 は複数のチャネルをサンプリングするので、データの欠落を確実に防ぐため、直接メモリ アクセス (DMA) を有効にします。DMA を有効にするには、次の手順に従います。

5. STM32CubeMX プロジェクトで、次の構成を行います。

  • [Project Manager]、[Project] で、[Do not generate the main()] を有効にする。

  • [Project Manager]、[Project] で、[Generate under root] を無効にする。

  • [Project Manager]、[Advanced Settings]、[Driver Selector] で、周辺装置に対して低水準 (LL) ドライバーを選択する。

  • [Project Manager]、[Advanced Settings]、[Generate Functions Calls] で、すべての周辺装置の初期化関数呼び出しについて [Do Not Generate Function Calls] を選択解除する。

  • [Project Manager]、[Advanced Settings]、[Generate Function Calls] で、すべての周辺装置の初期化関数呼び出しについて [Visibility (Static)] を選択解除する。

  • プロジェクトを保存する。

モデルの監視と調整

モデルに対して "監視と調整" アクションを実行すると、ホスト コンピューターがターゲットと通信し、生成された実行可能ファイルがターゲットで実行されます。

1. [ハードウェア] タブを開き、[監視と調整] をクリックします。診断ビューアーから、モデルのコードが生成され、生成された実行可能ファイルの読み込み後にホストがターゲットに接続されることを確認できます。

2. モデルの実行中に、"Display" ブロックを観察し、デジタル化された信号をリアルタイムで確認します。

タスク 2 - 外部ソースによる ADC のトリガーを構成する

このタスクでは、内部基準電圧と温度 (内部チャネル) を測定するために外部イベントで Analog To Digital Converter (ADC) をトリガーするように構成します。

ADC をトリガーするための外部イベントの生成はモデルによって制御されます。

1. stm32_adc_ext_trig_gettingstarted ターゲット モデルを開きます。

2. 新しい STM32CubeMX プロジェクトを作成するか、既存の STM32CubeMX プロジェクトを参照します。STM32CubeMX プロジェクトを STM32CubeMX ツールで起動します。詳細については、STMicroelectronics の STM32 プロセッサ ベースのボード入門を参照してください。

3. 外部イベントから変換を開始するように ADC1 を構成します。

  • GPIOE ポートのピン 11 (PE11) を選択して、PE11 ピンで正のエッジが検出されるたびに "EXTI 11" ラインでイベントを生成します。

  • "EXTI 11" ラインでイベントを生成するには、Simulink モデルでピン PE11 が GPIOE ポートのピン 10 (PE10) に接続されている必要があります。そのため、ピン PE10 を STM32CubeMX プロジェクトで "GPIO_Output" として構成する必要があります。

4. STM32CubeMX プロジェクトで、次の構成を行います。

  • [Project Manager]、[Project] で、[Do not generate the main()] を有効にする。

  • [Project Manager]、[Project] で、[Generate under root] を無効にする。

  • [Project Manager]、[Advanced Settings]、[Driver Selector] で、周辺装置に対して低水準 (LL) ドライバーを選択する。

  • [Project Manager]、[Advanced Settings]、[Generate Functions Calls] で、すべての周辺装置の初期化関数呼び出しについて [Do Not Generate Function Calls] を選択解除する。

  • [Project Manager]、[Advanced Settings]、[Generate Function Calls] で、すべての周辺装置の初期化関数呼び出しについて [Visibility (Static)] を選択解除する。

  • プロジェクトを保存する。

5. ブロックを構成します。ブロックをダブルクリックして [ブロック パラメーター] ダイアログ ボックスを開きます。

  • 外部イベント ソースで変換を開始するように ADC1 が構成されているため、Analog to Digital Converter ブロックのトリガー モードを [Read results only] に設定します。

  • 外部イベントに基づいてトリガーするように ADC が構成されているため、変換の準備が整い次第取得する "DMA2_Stream 0" 送信完了割り込みで ADC 変換が読み取られます。

  • "GPIOE" ブロックをピン 10 に設定します。

Simulink モデルからコードを生成してハードウェア ボードに読み込む

モデルの監視と調整

モデルに対して "監視と調整" アクションを実行すると、ホスト コンピューターがターゲットと通信し、生成された実行可能ファイルがターゲットで実行されます。

1. [ハードウェア] タブを開き、[監視と調整] をクリックします。診断ビューアーから、モデルのコードが生成され、生成された実行可能ファイルの読み込み後にホストがターゲットに接続されることを確認できます。

2. モデルの実行中に、"Display" ブロックを観察し、デジタル化された信号をリアルタイムで確認します。

その他の試行

  • Analog to Digital Converter ブロックの変換グループが [Injected] に設定された状況で、この例を実行して温度を読み取ってみます。

参考