暇人の技術備忘録

ハサミの技術備忘録

趣味でやっている電子工作の備忘録です。

【STM32備忘録】Nucleo基板のST-LINKで別のNucleo基板に書き込む

f:id:sbasami:20210417145021p:plain

はじめに

ST-LINKが分離されたF446RE基板を手に入れたので、これに書き込みを行う手順を覚え書きとして残しておく

参考文献

「nucleo stlink」で調べると色々と出て来た。

配線

書き込みは余っていたNucleo-F302R8のST-LINKを使用する。前準備としてNucleo-F302R8のCN2のジャンパは2つとも外す。

f:id:sbasami:20220319131121p:plain

配線は下記のように行った。

F302R8 F446RE ケーブルの色
CN4-1 : VDD_TARGET CN6-04 : +3.3V Red
CN4-2 : SWCLK CN7-15 : PA14 Green
CN4-3 : GND CN6-06 : GND Black
CN4-4 : SWDIO CN7-13 : PA13 Yellow
CN4-5 : NRST CN6-03 : NRST Blue
CN6-5 : +5V CN6-08 : VIN Orange

CN4のピン番号は下記のよう感じ、CN4-6は使用していない。

f:id:sbasami:20220319131654p:plain

配線の全体感としては下記のような感じ。F446REへの電源供給はF302R8の+5Vから行っている。

f:id:sbasami:20220319131810p:plain

プロジェクトの作成

いつもは「Board Selector」の方からプロジェクトを作成していたが、今回は「MCU/MPU Selector」の方から作成してみる。違いとしては「Board Selector」の方から作成するとNucleoとして動かすための最低限の機能が自動設定されるが「MCU/MPU Selector」では何も設定されていないプロジェクトが作成される。

Step1. 今回はSTM32F446REを使用する

f:id:sbasami:20220319115935p:plain

Step2. 「Project Name」はお好み、「Target Language」もお好み。自分はC++で書くことがあるのでC++を選んでいる。

f:id:sbasami:20220319120047p:plain

Step3. 下記のようにプロジェクトは何も設定されていない状態で作成される

f:id:sbasami:20220319120209p:plain

Step4. とりあえずデバッグ用にLEDを光らせるためのポート出力を設定

f:id:sbasami:20220319120320p:plain

Step5. Labelも設定しておく

f:id:sbasami:20220319120429p:plain

Step6. ST-LINKからデバッグできるように「Serial Wire」を選択

f:id:sbasami:20220319120624p:plain

Step7. クロックの設定は初期状態だと下記のようになっていた。ここはお好みで変更し、設定を保存してGenerate Codeする。

f:id:sbasami:20220319120720p:plain

書き込み

Step0. プログラムが書き込めているか分かるように簡単なLチカプログラムを作成

f:id:sbasami:20220319121012p:plain

Step1. 三角マークをクリック。

f:id:sbasami:20220319121100p:plain

Step2. 下記画面が出ると思うので「デバッガ」タブを選択し、下記画面にあるように設定を行って「OK」を押すと書き込み開始。

f:id:sbasami:20220319121233p:plain

Step3. 下記画面が出たら書き込み成功

f:id:sbasami:20220319121412p:plain

おわりに

今回はNucleo基板のST-LINKで別のNucleo基板に書き込む方法について書きました。この方法を使えばたぶんチップ単体に対しても書き込めるんだと思っている。