2022年10月24日月曜日

nucleo-h753zi向けにPlatformIOを通してArduinoプロジェクトをビルドしてとりあえず動かせた


要約

下記の設定でボード情報はh743ziを利用しつつnucleo_h753zit6i向けにビルドできます。
platformio.ini
[env:nucleo_h753zi]
board = nucleo_h743zi
board_build.mcu = stm32h753zit6
platform = ststm32
framework = arduino

h743用の設定でh753を動かしているため信号線の割当が間違っている可能性がありますが、自分が試した範囲では標準で定義されているI2CとSPI、自分で定義するシリアルポート2種が期待通りに動きました。

しかしながら、本来はnucleo_h753ziに合せた設定ファイルを使うのが良いです。
そのファイルは作成者の登場待ちです。

背景

STM32とはST社が販売しているマイコンの1種です。
STM32H753ZIT6とはSTM32の中で現行最高性能のH7シリーズの型番が新し目のマイコンです。

nucleoというST社が販売しているマイコン実装済みの開発ボードでArduinoのプログラムを動かそうとしたところ、nucleo-h753用のarduino環境がありませんでした。
しかしながら、nucleoの設定は無いもののSTM32H753ZIはstm32arduinoが対応していると記述されていたので調査と試行錯誤を重ねたところ、動かし方と足りない設定を把握しました。

備忘録を兼ねて関連する情報やリンクを記事に残します。

使った物

  • NUCLEO-H753ZI
  • PlatformIOをインストールしたPC
  • USB microBケーブル

h753はh743用の設定でも動きはする

試行錯誤中にh743のnucleo設定でh753に書き込んだところ、動くのを確認できました。
下位互換に対応しているのでしょうか。
platformio.ini
[env:nucleo_h743zi]
platform = ststm32
board = nucleo_h743zi
framework = arduino

h743用の設定でh753を動かしているため信号線の割当が間違っている可能性がありますが、自分が試した範囲では標準で定義されているI2CとSPI、自分で定義するシリアルポート2種が期待通りに動きました。

h743のボードでh753を使う設定にしておけば、とりあえずは良さそう

platformiの機能でcpu設定を変えられるのと、stm32arduinoはh753向けのビルドに対応しているので、cpuは正しいのに合せておくと良さそうです。(効果は未検証です。)
platformio.ini
[env:nucleo_h743zi]
platform = ststm32
board = nucleo_h743zi
board_build.mcu = stm32h753zit6
framework = arduino

PlatformIOとしてh753のボード設定ファイルはあるがarduinoは未対応

設定ファイルを見比べていたらplatformioのnucleo_h753zi用の設定ファイルを見つけました。

nucleo_h753zi.json

しかしながら、frameworksにarduinoは無く、arduinoの記述を追加してビルドしてもエラー(vairantファイルというピンの定義が無い問題)が発生しました。

stm32arduinoのnucleo_h753ziは対応者の登場待ち状態

variant(ピンの設定ファイル)対応待ちをまとめているissueがあり、その一覧にnucleo_h753ziが未対応状態で記載されていました。

[New Variant] request list #722

他のvariantの作成状況(NUCLEO-F746ZGNUCLEO-F413ZH)を見ると、思い立った人がファイルを追加している印象なので、対応者の登場待ちのようです。
作り方は下記のページにまとめられています。

Add a new variant (board)

終わり

PlatformIOで標準の設定が不十分な開発ボードであるnucleo_h753ziに対して、h743の設定を利用してビルドと動作が出来るのを確認しました。
また、stm32arduinoのnucleo_h753の対応は、対応者の登場待ちと分かりました。

やる気が出たら自分が対応するかもしれません。

参考

NUCLEO-H753ZI
動作確認に利用した開発ボードです。

STM32 Nucleo-144 boards
nucleo開発ボードのデータシートです。
mouserの商品ページからだと、NUCLEO-H753ZINUCLEO-H743ZI2も同じデータシートにリンクしているので、マイコンの型が新しくなっても開発ボードのピン配置は同じようです。
(しかしICから出ているピンの順序も同じかは確認していません。)

Arduino_Core_STM32
STM32向けのArduino環境です。
リポジトリの管理グループがstm32arduinoなので、自分はその名前で読んでいます。
H7シリーズで定義されているnucleo開発ボードはh743ziだけですが、cpuとしてはh753zit6も対応しています。

platform-ststm32
PlatformIOのstm32設定管理リポジトリです。
nucleo_h753ziの設定ファイルはありましたが、stm32arduinoが対応していないため、arduinoは未対応でした。

0 件のコメント :