2026年7月13日月曜日

stmマイコンの各機能の初期設定の見本はSTM32Cubeで見れる


背景

STM32マイコンのarduino環境は便利なのですが、CAN busはArduino用のAPIが用意されていないため初期設定の把握が難解です。
HALのAPIは用意されているのでそれ用の初期化処理を呼び出せれば使えるはずです。

調べたところSTM32Cubeを使えばHALの初期化処理の見本を提示してくれると分かったので、備忘録を兼ねて取り組んだ内容を記事に残します。
(肝心のFDCAN1で通信するところまではできていません。)

STM32CubeMXのダウンロード・インストール・起動

STM32CubeMX
STM32CubeIDEでも同様の操作ができるようなのですが、その中にSTM32CubeMXが含まれる形式のようなので、今回はCubeMXを直接利用しました。)

STM32CubeMXは自分がインストールした6.18.0はJava runtime environment17.0.11以上を必要としたので、下記のコマンドで21のjreをインストールしました。
sudo apt install openjdk-21-jre

下記サイトからダウンロードしてインストールします。

STM32Cube初期化コード生成ツール

Linux版もあったので、自分はそれを使いました。


zipファイルを展開し、内部のスクリプトを実行するとホームフォルダにSTM32CubeMXがインストールされます。


ホームフォルダのSTM32CubeMXの中のSTM32CubeMXを実行すると、STM32CubeMXが起動します。


起動しました。


所望の環境の所望の機能の設定を取得

今回はnucleo-h753ziでCAN1を使うための設定を取得します。

New ProjectのACCESS TO BOARD SELECTORを選びます。


必要な情報がダウンロードされます。
画面遷移時にダウンロード処理が入ることが多いので、オフライン環境での操作は向かないプログラムです。


検索機能を利用して所望のボードを探します。
nucleo-h753ziがありました。


画面下部に表示されるボードを選び、Start Projectを選んでその環境のプロジェクトを作ります。


CANを有効にしたいのでCANで検索します。
FDCANがその機能なので、FDCAN1を選択します。


FDCAN1は最初は無効になっているので、Activatedを押して有効にします。


PA11がRX、PA12がTXとしてFDCAN1が有効になりました。


ピンの変更は画面右側のマイコンの図のピンを選んで行えます。
nucleo-h753ziのデータシートではPD0をCAN1_TX、PD1をCAN1_RXと表示しているので、それに合わせてみます。


PD0を押してFDCAN1_RXを選びます。

PD0がRXになりました。


PD1も同様にFDCAN1_TXにします。


PD0とPD1がFDCAN1のピンになりました。

CANに関する他の設定は画面中央のConfigrationのParameter Settingsのタブで確認できます。


このFDCAN1を有効にした状態の初期化処理を知りたいのですが、GENERATE CODEを押すと保存先が定まっていないためかエラーが発生します。


Ctrl + sかFile -> Saveを選び、プロジェクトの保存先を決めます。


今回はホームディレクトリにstm32という名のディレクトリを作成し、その中にh753xi-fdcan1-settingという名のプロジェクトを作りました。


保存先を設定したので、GENERATE CODEを押してコードを生成します。


できました。


プロジェクトのディレクトリのCore/Src にあるファイルが参考になります。


FDCAN1に関する設定はmain.cとstm32hxx_hal_msp.cにありました。



上記の情報を参考に初期設定すれば、stm32arduinoでもFDCANを使えるはずです。

おわり

STM32CubeMXでCANの設定方法を書き出す方法を把握しました。
肝心のCAN通信を行うところはまだ出来てないですが、CANの設定例の把握と、以前から目にすることがあったstm32マイコンの図はSTM32CubeMXのものだったと知れたのが良かったです。

参考

STM32CubeMX
nucleo-h753ziのデータシート

0 件のコメント :