このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
STMicroelectronics の STM32 プロセッサ ベースのボード入門
この例では、Embedded Coder® Support Package for STMicroelectronics® STM32 Processors を使用して、STMicroelectronics の STM32 プロセッサ ベースのハードウェア ボードで Simulink® モデルを実行する方法を示します。
はじめに
このサポート パッケージを使用すると、実行時は Simulink ブロックを使用して周辺装置にアクセスし、プロセッサの周辺装置については STM32CubeMX ツールを使用して構成できます。
この例では、シングル レートと可変レートをもつ Simulink モデルを構成してコードを生成し、STMicroelectronics NUCLEO-F429ZI ボード上の青色 LED ライトを定期的に切り替える方法を学習します。
前提条件
以下のチュートリアルを完了します。
必要なハードウェア
この例を実行するには、次のハードウェアが必要です。
STMicroelectronics NUCLEO-F429ZI ボード
マイクロ USB ケーブル
ハードウェア ボード セットアップの実行
サポート パッケージをインストールしたら、ハードウェア ボード セットアップ プロセスを実行して、コードの生成や接続された STMicroelectronics STM32 ハードウェア ボードへのコードの展開に必要な STMicroelectronics ソフトウェア ツールを登録します。サポート パッケージが既にインストールされている場合は、Add-On Manager
を使用してハードウェア セットアップを開始できます。あるいは、MATLAB® コマンド ウィンドウから次のコマンドを実行してセットアップを起動できます。
stm32cube.tools.launchHardwareSetup
タスク 1 - STM32CubeMX プロジェクトを作成して周辺装置を構成する
Simulink による STM32 プロセッサ ベースのボードのサポートでは、STM32CubeMX グラフィカル ツールを使用します。STM32CubeMX ツールは、STM32 プロセッサの周辺装置を構成し、選択した STM32 プロセッサの周辺装置初期化コードを生成するために使用できるグラフィカル インターフェイスです。STM32CubeMX ツールの詳細については、STM32CubeMX の概要を参照してください。
既存の STM32CubeMX プロジェクトを選択するか新規に作成できます。このプロジェクトは Simulink モデルから起動できます。以下の手順に従って、STM32 プロセッサ ベースのボードをサポートするモデルを作成します。
1. [モデル化] タブを開き、"Ctrl+E" を押して [コンフィギュレーション パラメーター] ダイアログ ボックスを開きます。[ハードウェア実行]、[ハードウェア ボード] に移動します。
2. "STM32 プロセッサ ベース" のボードを選択します。
3. [ビルド オプション] に移動し、[参照] をクリックして既存の STM32CubeMX プロジェクト ファイルを選択します。
4. 新しい STM32CubeMX プロジェクト ファイルを作成するには、[作成] をクリックします。
プロジェクト名を .ioc 拡張子付きで指定します。
目的のフォルダーの場所を参照し、プロジェクトを保存します。
STM32 ハードウェアを選択し、[適用]、[OK] の順にクリックします。
カスタムの STM32 プロセッサ ベースのハードウェアを選択して新しいプロジェクトを作成することもできます。
タスク 2 - シングル レートで LED が点滅するように Simulink で STMicroelectronics STM32CubeMX プロジェクトを構成する
このタスクでは、モデルで指定した単一のサンプル レートで青色 LED ライトを点滅させるようにターゲット モデルを構成します。
1. stm32_gettingstarted を開きます。
2. GPIO ブロックを構成します。ブロックをダブルクリックして [ブロック パラメーター] ダイアログ ボックスを開きます。
青色 LED は GPIOB 端子のピン 7 に接続されています。
3. 新しい STM32CubeMX プロジェクトを作成するか、既存の STM32CubeMX プロジェクトを参照します。STM32CubeMX プロジェクトを STM32CubeMX ツールで起動します。詳細については、"タスク 1" を参照してください。
4. STM32CubeMX プロジェクトで、ユーザー LED を切り替えるために、同じピン (PB7) を GPIO_Output
として構成します。
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)] を選択解除する。
プロジェクトを保存する。
Simulink モデルからコードを生成してハードウェア ボードに読み込む
1. モデルのコードを生成するには、"Ctrl+B" を押すか [ビルド、展開、起動] をクリックします。
2. モデル キャンバスの下部に示されるリンクを使用して診断ビューアーを開き、ビルド プロセスに従います。コードをボードに読み込むと、ハードウェア ボード上で青色 LED が点滅します。これは、コードが実行されていることを示します。
タスク 3 - 可変レートで LED を点滅させるように Simulink モデリングで STMicroelectronics STM32CubeMX プロジェクトを構成する
このタスクでは、異なるサンプル時間をもつ可変のレートで青色 LED を点滅させるようにターゲット モデルを構成します。マルチタスク モードでのモデル化方法を学習します。
1. stm32_multitasking_gettingstarted ターゲット モデルを開きます。
2. [モデル化] タブを開き、"Ctrl+E" を押して [コンフィギュレーション パラメーター] ダイアログ ボックスを開きます。[ソルバー] に移動し、[各離散レートを個別のタスクとして扱う] パラメーターと [データ転送に対するレート変換を自動的に取り扱う] パラメーターを有効にします。
3. ブロックを構成します。ブロックをダブルクリックして [ブロック パラメーター] ダイアログ ボックスを開きます。
ユーザー ボタン (青色のボタン) は GPIOC 端子のピン 13 (PC13) に接続されています。
青色 LED は GPIOB 端子のピン 7 (PB7) に接続されています。
4. 新しい STM32CubeMX プロジェクトを作成するか、既存の STM32CubeMX プロジェクトを参照します。STM32CubeMX プロジェクトを STM32CubeMX ツールで起動します。詳細については、"タスク 1" を参照してください。
5. STM32CubeMX プロジェクトで、シングル レート モデルのときと同じように、PC13 ピンを GPIO_Input
または GPIO_EXTI
として機能するように構成します。詳細については、"タスク 2" を参照してください。
6. 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)] を選択解除する。
プロジェクトを保存する。
Simulink モデルからコードを生成してハードウェア ボードに読み込む
1. モデルのコードを生成するには、"Ctrl+B" を押すか [ビルド、展開、起動] をクリックします。
2. モデル キャンバスの下部に示されるリンクを使用して診断ビューアーを開き、ビルド プロセスに従います。コードをボードに読み込むと、ハードウェア ボード上で青色 LED が点滅します。これは、コードが実行されていることを示します。
ボード用のブロック ライブラリの確認
Embedded Coder Support Package for STMicroelectronics STM32 Processors を使用すると、Simulink モデルに追加可能な専用ブロックでサポートされる周辺装置を使用したアルゴリズムを作成できます。STM32 プロセッサ ベースのドライバー ブロックを使用して、関連するセンサーやアクチュエータを構成し、周辺装置からのデータの読み取りや周辺装置へのデータの送信を行います。
MATLAB コマンド ウィンドウで slLibraryBrowser を実行して Simulink Library Browser
を開きます。開いた Simulink ライブラリ ブラウザーで、Embedded Coder Support Package for STMicroelectronics STM32 Processors にある STM32 プロセッサ ベースのボードのドライバー ライブラリを確認できます。
その他の試行
より遅いレートでプッシュ ボタンの読み取りを試し、動作を分析します。
この例を Hardware Interrupt ブロックを使用して実行します。