STM32H7 – STM32CubeMX
STM32CubeMXグラフィカル･ソフトウェア設定ツール
1.0版

こんにちは。
STM32CubeMXコード生成ツールのプレゼンテーションへようこそ。
このツールの主な機能をカバーし、コードの設定と生成、コンパイルとデバッグ、およびSTM32ファミリのマイクロコントロー
ラの消費電力を推定する機能を紹介します。

1

イントロダクション

2

STM32CubeMX

STM32CubeH7

STM32CubeL0

STM32CubeL1

STM32CubeF7

STM32CubeF4

STM32CubeL4
STM32CubeF0

STM32CubeF1

STM32CubeF2

STM32CubeF3

この資料では、特にSTM32H7シリーズのマイクロコントローラについて説明しますが、STM32CubeMXは、STM32ファミリ全体に共通のプラットフォームです。

2

概要

3

• 理想的なマイコンを選択• ピンアウト• クロックとオシレータ• ペリフェラル
• 低消費電力モード

アプリケーション側の利点• 特定の目的に適したマイコンを選択することが容易• 設計段階で利用可能なシミュレーション• 開発スタート時のスピードを加速

STM32CubeMXアプリケーションは、ファームウェア、プロジェクトの初期構成をガイドするユーザー・インタフェイスを介して、STM32マイクロコントローラを使用する開発者を支援します。
ピンの割り当て、クロックツリー、統合されたペリフェラルを構成し、生成したプロジェクトの消費電力をシミュレートする手段を提供します。
また、STM32マイクロコントローラの豊富なデータライブラリを使用します。
このアプリケーションは、開発者がMCUの機能と消費電力に関して最適な製品を選択するのを助け、開発の初期段階を容易にすることを目的としています。

3

主な機能
• ペリフェラルおよびミドルウェアのパラメータ• 消費電力計算機能• コード生成• ユーザ･コードをそのままに、コードの再生成が可能• コマンドラインおよびバッチ操作
オプション

4

• マイコン･セレクタ• ファミリ、パッケージ、ペリフェラル、メモリ･サイズでフィルタリング• 類似製品を検索• ピンアウト･コンフィグレーション• 使用するペリフェラルを選択、ピンに対しGPIOと代替機能を割り当て• クロックツリーの初期化• オシレータを選択、PLLとクロック分周器の設定

ユーザー・インタフェイスは、適切なMCUを選択し、必要なペリフェラルを選択し、ピン構成を割り当てるというワークフローを中心に構築されています。
消費電力計算機能は、効率的なシステムの設計に役立ちます。
最後に、プロジェクトの初期化コードを生成し、ユーザーコードをそのままに再生成することもできます。

4

前提条件とセッティング

5• STM32CubeMXはJava REのインストールが必要(ただし、最新のバージョンはバンドルされるため不要：Ver6.2.0以降)• リリースノートをチェックし、特定のバージョンや追加の要件を確認• マルチプラットフォーム･ツールはWindows、Linux、macOSで実行される• インストール後、Alt+Sを押してGUI だけでなくCubeFWライブラリのアップデータの設定が必要• SWライブラリの保存場所を選択

STM32CubeMXインストーラをSTウェブサイトから無料でダウンロードしてインストールします。
次に、[Settings]メニューで設定を行います。
• アップデータとライブラリのダウンロード用のメニュー(Alt+S)• コード生成と開発ツールチェーンとの統合のためのメニュー (Alt+P)
注1) ファームウェアを保存するレポジトリフォルダの保存場
所は日本語が含まれるアドレスは使用できません
注2) CubeMXバージョン6.2.0からはインストーラーにJava®
JRE™ バンドルされているため、単独でインストール、実行可能になりました。
このセットアップが完了すると、新しいプロジェクトを作成することが出来ます。

5アップデータ6• アップデータは[Help]メニューからアクセス• ツールの新しいリリースと関連するCubeライブラリを検出• ライブラリ･マネージャで新しいライブラリ･パッケージをダウンロード

インターネット接続が正しく接続されている場合、ツールそのものと、プロジェクト ワークスペースの生成に使用されるコード ライブラリを更新できます。
追加の STM32Cube ライブラリをダウンロードしたり、古いバージョンを取得したりするには、相互運用性の理由から「新規ライブラリのインストール」オプション (Alt+U) を使用します。
ただし、STM32CubeMX ツールは、すべてのバージョンのライブラリ間でテストされているわけではありません。

6• マイコンの名前から検索…

マイコン･セレクタ

7• 迅速にシリーズとラインで見つけることが可能• … もしくは、必要な機能から• パッケージ(ピン数)• RAMサイズ• 必要なメモリ･サイズ• ペリフェラル
• インタフェースの数と種類• コア、周波数• 価格• 製品データの概要、詳細なドキュメン
トへの迅速なアクセス

MCUセレクタ・ウィンドウは、「New Project」オプションを選択した後に表示されます。使用するMCUが決定されている場合は、フィルタ機能ですぐに検出されます。
まだ目的のMCUが決定していない場合は、アプリケーションの仕様、要求に基づいて、利用可能な製品をフィルタで選択できます。

7

マイコン･セレクタ(続き)• 2つ目のタブには、STM32マイコンを搭載している事前定義されたボードのショートカットが表示される• 事前定義されたボードには、特定のボードの接続と機能を使用するように割り当てられているピン配置が付属• 代替ボード構成は対象外

8ボードの説明を見るにはここをクリック

既存のSTM32ボードの構成は、「ボードセレクタ」タブで利用可能です。
たとえば、STM32L476G-EVAL ボードを選択した場合、LCD、ボタン、オーディオ、および通信インターフェイスの I/O がロードされます。
ただし、ボード上の一部の通信インターフェイスは、ジャンパの再設定後や、はんだブリッジを使用した後のオプションとしてのみアクセス可能です。
これらは、STM32CubeMX ツールで事前定義されていません。

8

ピンの割当て9• ピンアウトから:• ペリフェラル･ツリー• マニュアル• 信号の再マッピングの自動化• ペリフェラルやミドルウェア間の依存関係のマネージメント(FatFS, USB …)

次のステップでは、使用するペリフェラルを選択し、該当する場合はピンの入出力を割り当てます。
独立したGPIOも構成できます。
信号はデフォルトのピンに割り当てられますが、別の位置に移動させることもできます。
たとえば、I2C1ペリフェラルが有効にした場合、ツールは自動的にデフォルトのピンにI2C1の機能を割り当てます。
このツールは、ペリフェラルと管理するソフトウェアコンポーネントとの間を自動的に結合します。

9

ピンの割当て(続き)10

ピンをクリックし、使用可能な機能を表示

ペリフェラルは使用できず、その代替ピンはすべて他の場所に割り当てられる

ピンアイコンを設定し、ペリフェラルの配置を固定

オレンジはペリフェラルが有効になっておらず、ピンのみが割り当てられていることを意味する

代替機能用に予約されているピンが増えるほど、他のペリフェラルの残りの構成の選択肢は減少します。
制限は、他のペリフェラルノードのアイコンの変更によって示されます。
ピンを左クリックして、代替機能を表示します。
ピンを右クリックして名前を付けるか、ピンの割り当てを選択します。
特定のペリフェラルが有効になっていない状態でピンアウトを選択した場合、またはピンアウトに問題がある場合は、ピンが緑色ではなくオレンジ色に変わります。

10クロック･コンフィグレーション

11• すべてのクロック値の即時表示• アクティブな
クロックパスと非アクティブなクロックパスは区別• クロック制約と機能の管理

クロックコンフィグレーションタブには、クロックパスの概略図と、すべてのクロックソース、逓倍回路、乗数が表示され、実際のクロックの速度が表示されます。
アクティブなクロック信号と有効なクロック信号は青色でハイライト表示されます。
ドロップダウン メニューとボタンは、実際のクロック構成を変更するのに役立ちます。

11

クロック･コンフィグレーション(続き)12• エラーのハイライト 即座に赤に変わる• 青いフレームに値を入力し、ツールで仕切りと乗数を調整• 値をロックして、ツールが値を変更できないようにする設定された値が範囲外の場合、すぐに赤に変わり、問題がハイライトされます。
また、他の方法で動作します。青いフレームに必要なクロック速度を入力すると、ソフトウェアは、要求された値を提供するために乗数と仕切りの再構成を試みます。
変更を防ぐためにロックするには、青色の時計の値を右クリックします。

12ペリフェラルとミドルウェアの設定• 設定済みペリフェラルとミドルウェアのグローバル･ビュー• 設定エラーのハイライト

13

DMA の構成オ
プションをクリックして選択

既定の FATFS
構成は OK+ 設定していない
ⱱ OK

ブロックされない問題あり
x エラー

ピン配列はこのビューに表示され、前のタブに戻って変更構成に問題がある場合、コード生成によって警告メッセー
ジが表示される

GPIO の構成は正しくないと見なされるが、コードが生成される可能性がある

メインウィンドウの「Configuration」タブには、STM32CubeMX のセットアップに役立つ、構成可能なすべてのハードウェアおよびソフトウェア・コンポーネントの概要が表示されます。
構成オプションにアクセスできる各ボタンには、構成状態を示す小さなアイコンが表示されます。
既定の状態は構成されていません。ペリフェラルまたはミドルウェアのボタンをクリックすると、その設定オプションが表示されます。
すでに構成されている場合でも、さらなる変更が可能です。
警告サインは、不適切な構成に関する通知をし、この状態でコードが生成された場合、ペリフェラルは機能しません。
重大なエラーは赤い“X”で表され、続行するには構成を変更する必要があります。
ペリフェラルやコンポーネントを追加するには、[Pinout &configuration] タブに戻ります。

13

ミドルウェアの設定

14• サポートされている各ソフトウェア･コンポーネントに固有のオプションを表示• すべての設定は、論理グループに編成• 説明と制約は、クイックリファレンスに使用可能

ミドルウェアソフトウェアコンポーネントには、それぞれ異なるオプションがありますが、すべて同様の方法で提示され、初期化オプションに簡単にアクセスでき、有益な説明を提供します。

14

ペリフェラルの設定

15• 使用可能なすべての初期化パラメー
タに、簡単な説明とオプションが表示されている• 割込みはペリフェラルに割当て可能• DMAは、該当する場合に関連付けられる• 入力および出力を備えたGPIO

ペリフェラルを設定する場合、ダイアログ ウィンドウには基本的なパラメータ、依存関係、および制約が表示されます。設定が必要な項目についてはシンプルなドロップダウン メニューが使用されます。
割り込み優先順位は「NVIC settings」タブでのみ設定できます。ペリフェラルウィンドウは、各割り込みを有効または無効にする場合にのみ使用できます。
[DMA settings] タブには、初期化に関連する DMA 要求のすべてのパラメーターが含まれていますが、実行時パラメー
ター (開始アドレスなど) はここで管理されません。
[GPIO settings]タブは、GPIOのパラメータと機能、ピンフィルタリング、および容易に識別を可能にするために各信号にラベル付けを定義するために使用されます。

15

NVICの設定パネル

16• すべての割込みのための単一のコントロール･パネル• 優先順位とサブ優先順位を管理• リスト内の割込みの検索、フィルタ処理、並べ替え• [コード生成]タブで、割込みの初期化をカスタマイ
ズ可能

使用可能な割り込みと有効な割り込みの概要とその優先順位が一度に表示される分かりやすい画面は、STM32CubeMX のもう 1 つの利点です。このウィンドウは、選択したペリフェラルの割り込みを有効にし、優先順位を構成するために使用されます。

16

DMAの設定パネル

17• メモリからメモリを含むすべてのDMA要求を管理• 方向、優先度、その他の設定を構成対応する DMA チャネルのタブを選択し、指定されたペリフェラルの DMA を追加するには、「Add」ボタンをクリックします。
すべての構成オプションを確認してください。これは DMA
チャネルを構成しますが、DMA 転送を完全には記述しません。
これは、アプリケーション上で行う必要があります。

17

GPIOの設定パネル• アプリケーションにとって、GPIOパラメータは実用的な設定が必要

18

ShiftキーまたはCtrlキーを押して複数選択• デフォルトでは、低速およびプルアップなしとして選択される• 複数のピンを選択し、同じ構成に設定可能

速度が正しいことを確認

ピン設定ウィンドウの GPIOタブは、各ピンの構成と初期化設定を容易にします。
各ピンは、ピン構成の概要とユーザーラベルを示すテーブル形式でリストされています。
ドロップダウン メニューを使用して、選択したピンの並べ替え、検索、変更が可能です。
ツールによって割り当てられた既定値では、特定のペリフェラル構成では機能しない場合があります。
ツールで選択した GPIO 速度がペリフェラルの通信速度に対して十分であることの確認や、必要に応じて内部プルアップ等の設定が可能です。
設定を素早く割り当てるには、ピンを個別に設定するのではなく、ピンのグループを選択してみてください。タブを使用して、特定のペリフェラル専用のピングループを取得します。
初期化中に適用される設定はユーザープログラム実行中に変更できますが、それはSTM32CubeMX ツールのサポート範囲外であることに注意してください。

18

コード生成19• すべての初期化コードをC言語で生成• サポートされている開発ツールチェーンのプロジェクト･ファイルを生成• ユーザーコードは専用セクションに追加でき、再生成時に保持されるプロジェクトを再生成する場
合、ユーザコードを維持するためにここにコードを書く• 最新のライブラリバージョンを使用するか、再生成しても同じままにするオプションがある

すべての入力、出力、およびペリフェラルを構成すると、コードを生成する準備が整います。
まず、メインウィンドウの「プロジェクト」メニューで設定を確認します。
Keil、IAR、および CubeIDE のツールチェーン向けに、プロジェクトを生成するためサポートされているいくつかの開発ツールの 1 つを選択します。
ユーザーが後から追加したカスタムコードに影響を与えずに 、STM32CubeMX を使用して初期化設定をさらに変更するには、ユーザー コードを “USER CODE” コメント ブロックの制約の間に記述する必要があります。
このオプションを有効にする方法については、この後のスライドで説明します。

19

コード生成、プロジェクト設定

20• 保存時にプロジェクトに名前を付ける• プロジェクトの保存場所を指定• 優先するツールチェーンを選択• MCUタイプと使用するライブラリのバージョンを確認

このウィンドウは、プロジェクトを保存するときに使用できます(Save as..)。toolchain フォルダは、実際のツールチェーンアプリケーションの場所ではなく、ツールチェーンのワークスペースを配置する場所を指します。このダイアログウィンドウの限定バージョンは、プロジェクト設定を表示する Alt + Pショートカットを使用して使用することもできます。

20

コード生成オプション

21• ライブラリ･パッケージ• ライブラリ全体または必要な部分は、生成されたプロジェクト･フォルダにコピーされる• または、ライブラリを元の場所に保管し、すべてのプロジェクトから参照• 生成されたファイル• 各ペリフェラルは、個別のファイルまたは共通ソース･ファイルで初期化• 古いファイルを操作するためのオプション• ユーザコードをそのまま保持するオプション• HAL設定• 使用可能なピンをアナログに設定すると消費電力が削減される
が、設定した場合はピン･マッピング上でSWD/JTAGを明示的に選択するように注意• 完全なアサートはデバッグに役立つ.

STM32CubeHALライブラリは、さまざまな方法でプロジェクトに関連付けられます。プロジェクトをコンパクトパッケージとして移行する場合、またはライブラリコードをカスタマイズする必要がある場合は、[copy] オプションを選択します。ライブラリを元の場所に保持しておくと、複数のプロジェクト間でライブラリの最新バージョンを簡単に共有できます。
また、stm32G4xxx_hal_msp.c ファイル内のすべてのペリフェラルの初期化コードを生成したり、ペリフェラルごとに 1 つのファイルとして生成したりすることもできます。
古いファイルをバックアップまたは削除するオプションは、推奨されるワークフローです。オプションは再生成機能に関連付けられていることを覚えておいてください。ここでも、“再生成時にユーザー コードを保持する” オプションが有効になります。
「Set all free pins as analog」設定は消費電力を抑えるのに役立ちますが、SWD/JTAGインタフェイスがピンアウトタブで選択されていない場合、このオプションはデバッグインタフェイスを無効にします。
"完全なアサート" は HAL 関数に渡されるパラメータをチェックすることを可能にし、過度のデバッグ作業を行わずにユーザー コード内のバグを明らかにするのに役立ちます。

21

PCC
設定パネル

PCC の使用

22

シーケンス
設定

結果の概要

消費電力計算機能は、STM32CubeMXメインウィンドウの4番目のタブにあります。ウィンドウはさらに複数のウィンドウに分割されています。
一般設定ウィンドウには、一般的な動作条件と現在選択されている MCUが表示されます。
2 番目のウィンドウには、シミュレーション シーケンスとそのコントロールが表示されます。
シミュレーションを実行するボタンはありません。結果は即座に表示されます。

22

一般的なPCCパラメータ23• 使用するマイコンはSTM32CubeMXから取得• データシートへの直接リンクを使用し、より詳細な情報を取得可能• パラメータの選択• 温度および電圧の選択は、選択したマイコンに応じて制限される場合がある• バッテリの選択 - 既存または独自の定義• バッテリは容量、電圧、自己放電、電流制限によって定義• インフォメーションノート
• 見積の制限について警告が目的

一般的な PCC 設定ウィンドウは、ほとんどが有益で、選択した MCU とデフォルトの電源を要約します。
選択したMCUと利用可能な電力消費データに応じて、温度や電圧などのパラメータを定義することもできます。
[バッテリセレクション]は、バッテリタイプを選択または定義するために使用します。バッテリソースはオプションであり、定義されている場合は選択されたシーケンスステップでのみ使用でき、独立して動作し外部電源に接続されたデバイスをシミュレートします。
情報とヘルプ セクションには、ユーザーに役立つメモが含まれています。

23

シーケンスの構築

24• シーケンスは順序付けられたステップをセット
既存のステップを追加または複製し、新しいステップを作成

既存のシーケンスをロードして適合異なるMCUを使用してシーケンスを比較提案された電源ステップの遷移が有効かどうかを自動的に確認「シーケンステーブル」では、異なる期間と構成を持つ一連のステップを設定します。その長さは事実上無制限です。
シーケンスは、ロード、変更、再利用できます。
個々のステップは、ユーザーインタフェイスを使用してシーケンス内で複製および再配置できます。
有効にすると、すべての状態遷移が、頻度または電力範囲で不正にジャンプすることを防ぐために、基本的な有効性ルールに対してチェックされます。問題のあるステップは、シーケンステーブルで即座に強調表示されます。
「ログを表示」ボタンをクリックすると、詳細な説明が表示されます。
「比較」機能は、保存されたシーケンスと現在のシナリオでのパワーとパフォーマンスの比較を表示します。異なる MCUsを含む異なる構成は、相互に対して評価することができます。

24

消費電力設定ステップ定義 1/2

25

1. 電源モードの選択により、どのペリフェラルが使用可能かがわかる
2. レギュレータの設定は、パフォーマンスと消費のバランスが必要
3. コード実行元のメモリ、およびプリフェッチとバスオプションを選択
4. Vdd – いくつかの設定が利用可能
5. このオプションはバッテリ寿命の計算のために用意されている

電源ステップは、このダイアログウィンドウで追加または編集できます。
トランジションチェッカーが有効になっている場合、新しいステップに許可された値が事前設定されます。
電源ステップはいくつかの特性によって決定され、電源モードが最も重要なパラメータです。各電源モードの可用性と特性については、リファレンスマニュアルまたはデータシートに記載されています。電源モードの選択は、他の設定、インタフェイス、および電源/パフォーマンスバランスの可用性に最も大きな影響を与えます。
電圧レギュレータは、コア電圧を設定します。低電圧ではシステムクロック周波数が制限されますが、消費電力が大幅に削減されることが期待できます。詳細については、データシートを参照してください。
命令が取り出されるアドレスと関連する設定は、電力消費と使用可能なクロック速度にも影響を与えます。
電力消費を計算する電源電圧。実際の電圧が使用できない場合は、最も近い値を使用します。
最後のオプションは、デバイスがバッテリドレインモデルでUSBに接続されている場合など、ケースを除外するために存在します。
電源モードの詳細については、システム電源制御モジュールのトレーニングプレゼンテーションを参照してください。

25

消費電力設定ステップ定義 2/2

26• クロックペリフェラルの選択をインポートする場合に“Import Pinout“を選択• 動作周波数の選択は、電力消費範囲によって制限される• 使用可能なクロック構成は、利用可能なデータおよびその他の設定によって異なる• ペリフェラル
• ペリフェラルに対するクロック・ゲーティン
グを選択• ピンアウト･タブから選択をインポート• オプション設定• 追加の消費電力は、ピンに接続される推定負荷で表示

クロックの設定は、電源とメモリの両方の設定と、使用可能な測定データによって制限される場合があります。オプションの完全なリストについては、ドキュメントを参照してください。
使用されていないペリフェラルのクロックを無効にすると、確実に消費電力を節約できます。ステップの持続時間中に電源が供給できるペリフェラルを確認できます。「インポート」ボ
タンをクリックすると、生成されたコードで初期化されるすべてのペリフェラルが選択されます。
最後に、ステップ期間と追加の消費設定を定義します。追加の消費は、LED、ボタン、通信インタフェイスなど、ピンに接続されているさまざまな負荷によって表されます。

26

消費プロファイルのシーケンス表示27• プレゼンテーション目的のため外部表示にグラフを切り離すことが可能• 複数の異なるビューを選択可能• 現在と時間のプロット• 円グラフ• ペリフェラルの消費消費電力計算機は、強力なプレゼンテーションツールを備えています。[Ext. Display]ボタンをクリックすると、レポートが別のウィンドウに表示されます。
現在の消費見積もりをグラフィカル形式でプロットするには、さまざまな方法があります。デフォルトの方法は、電源ステップのシーケンスと時間経過に対する消費に基づいています。
または、さまざまなモードで消費されるエネルギーの割合をグラフ化することもできます。円グラフには、各モードのシェアが表示されるか、または実行モードと低電力モードのみが表示されるように分割できます。
また、ペリフェラルの消費電力を分割し、その電力要件をグラフにプロットすることも可能です。デジタルペリフェラルのみ、アナログペリフェラルのみ、または両方を含む混合ビューをプロットできます。

27レポートの出力と生成

28• オプションの手順として、PDFレポートを生成• PDFレポートはPCCなしでも利用可能• 保存されたプロジェクトには、次の項目が含まれる• Project.ioc• Project.pcs• Project.pdf• Project.txt• Project.jpg• +サポートされている開発環境用に生成されたプロジェクト

拡張子が .ioc のファイルには、静的な初期化設定が含まれています。電源シーケンスは.pcs拡張子を使用して保存されます。PDF レポートが生成され、簡略化されたテキストと、ピンアウトされた個別の JPG イメージ ファイルが生成されます。

28