NUCLEO-F302R8 STM32CubeMonitor
前回、ソフトウェアのトリガでAD変換を行うプログラムを作成しました。
AD変換結果をUARTでPCに送信し、Tera Termで受信したデータをログに出力して、ログをエクセルでグラフにしていました。
今回はSWDを使用して変数をリアルタイムにモニタできるツール STM32CubeMonitor がST公式にあることを知りましたので、試してみた記事になります。
先駆者の方が書かれた記事がありますが、私のプロジェクトではSTM32CubeMXを使っていないことからか、以下のはまりポイントがあったので記事にしました。
- elfファイルを読み込んでも変数一覧が出てこない
- モニタを開始しても”not connected”となり変数がモニタできない
リファレンス
- マイコンのRM(リファレンスマニュアル)
- マイコンのDS(データシート)
- DS: https://www.st.com/resource/en/datasheet/stm32f302r6.pdf
- マイコンのPin配置やポートの機能一覧、HW特性
- マイコンのPM(プログラミングマニュアル)
- モータドライバーボードの製品シート
- IHM: https://www.st.com/resource/en/data_brief/x-nucleo-ihm07m1.pdf
- マイコンとの接続が分かる回路図
CubeMonitor
以下の記事を参考にさせていただきました。この記事を読んでいただいたらこの章は飛ばしてもらってOKです。
https://rt-net.jp/mobility/archives/22743
ダウンロード
https://www.st.com/ja/development-tools/stm32cubemonitor.html
私はwindowsなので”STM32CubeMon-Win”をダウンロードしました。
インストール
ダウンロードしたzipを解凍してsetupSTM32CubeMonitor_..*.exeを実行するとインストーラが起動します。
全部デフォルトで進め手インストールしました。
使い方
公式のチュートリアル動画を見てください。
https://www.youtube.com/watch?v=PhWAZiVwMkU
コンパイルオプション
elfを読み込んでも変数の一覧が出てこない原因はコンパイルオプションでデバッグ情報を出力していないことでした。当たり前だろと思われるかもしれませんが。。。
以下の部分を更新しました。
オプションのレベルは4段階あるようです。
SWDの設定
モニタを開始しても”not connected”となり変数がモニタできない原因は以下のポート設定が必要でした。こちらもSWDを使用するので当たり前だろと思われるかもしれませんが。。。
- SWDIO
- PA13: AF0: SWCLK- JTCK
- SWCLK
- PA14: AF0: SWCLK- JTCK
コードは以下になります。
モニタ結果
リファレンス電圧(ADC IN18)をモニタした結果です。波形をすぐに確認できるので良いですね!