Ubuntu 18.04 LTS
STM32CubeMX v5.2.1
STM32CubeIDE v1.0.1
基板1: Nucleo STM32F446RET6 64 PINS (以下、F446RE)
基板2: Nucleo STM32L476RGT6 64 PINS (以下、L476RG)
前置き
NucleoやDiscoveryをそのまま商業利用できない場合、自作のSTM32基板を開発することになる。
自作の場合、ST-LINKは搭載できないだろう。
デバッガが必要になる。
デバッガとしてはST-LINK V2やSTLINK-V3SETがある。
これらの入手性は高くはなく、通販での受取になる(著者の行動範囲では)。
一方で、Nucleo基板は容易に手に入る。Nucleo基板上にはST-LINK/V2-1が搭載されている。
-
ST-LINK/V2 と ST-LINK/V2-1
- by prittyparakeetさん
- 情報感謝です
Nucleo基板上のST-LINK/V2-1を使用してデバッグができれば、自作STM32基板もデバッグできるのではないか、と考えてその方法を探した。
基板搭載のST-LINK/V2-1を使用して、別の基板をデバッグする
情報
-
Nucleoボードをぶった切って書き込みとUART通信した
- by kt33-JASALMAさん
- 情報感謝です
上記の例ではNucleo基板のST-LINK/V2-1とSTM32メインMCU基板を分離して、配線をした上でデバッグをしている。
同じことを二枚のNucleo基板で試してみることにした。
Note:上記のリンクの再現が多くであるため、上記リンクを参考にして、なお、参考になる情報があると考えられたら、以降を読んでみてください。
使用基板
- Nucleo STM32L476RGT6 64 PINS (以下、L476RG)
- こちらのST-LINK/V2-1を使う
- Nucleo STM32F446RET6 64 PINS (以下、F446RE)
- こちらをデバッグする
- そのため、ST32CubeIDEのプロジェクトはF446RE用に作る
ジャンパ設定
- L476RG
- CN2のジャンパ二つをはずす
- => デバッグにSWDを使用するようになる
- B2近傍のJP5ピンをはずす
- => こちらのSTM32メイン基板の電源を切るため
- AN4989 Appendix BのFigure 67. ST-LINK cuttable part of NucleoにJP5をはずす記載がある
- CN2のジャンパ二つをはずす
配線
L476RGのST-LINK/V2-1用基板のSWDコネクタ(CN4)から、F446REのメイン基板のCN7へ接続する。
(CN4:1という記載は、CN4の1番ピンを意味する。)
用途 | L476RG | F446RE | ケーブルの色 |
---|---|---|---|
VDD_TARGET | CN4:1 (3.3V) | CN7:16 | Red |
SWCLK | CN4:2 | CN7:15(PA14) | Yellow |
GND | CN4:3 | CN7:20(GND) | Green |
SWDIO | CN4:4 | CN7:13 (PA13) | Orange |
NRST | CN4:5 | CN7:14 (Reset) | Brown |
ケーブルとしてはQIケーブル1S-1S 300mm/赤 3本入の各色を用意した。
USB接続
Ubuntu 18.04 LTSのシステムに二本のケーブルでUSB接続する。
- L476RG
- F446RE
それぞれのドライブがマウントされる。
STM32CubeIDE
以下の通り実施する。
-
`1. STM32CubeIDEでF446RE向けのプロジェクトを作る。
詳細は割愛するが、2019-07-03 STM32L476 > FreeRTOSでLチカ (環境: Ubuntu 18.04 LTS + STM32CubeMX + STM32CubeIDE)記載の内容をF446RE選択で実施する。- PA5のLチカ
-
`2. Run > Debug configurationsの「Debbugerタブ」において、L476RG上のST-LINK/V2-1を使用する設定をする。図2-1のように「GDB Server Command Line Options」の「Use specific ST-LINK S/N」にてL476RG側(メイン基板の電源を切った方)のシリアル番号を選択する
- どちらのシリアル番号がどちらの基板かは、片方ずつ接続して確認すればいい
図2-1. Debug configurations > ST-LINK/V2-1の指定
- `3. F446RE向けのプログラムをビルドし実行する。F446RE側のデバッグが開始される。ブレークポイントで停止すると、該当の処理(例:LEDの点灯)を停止できる
実行例
右がST-LINK/V2-1を使っている基板(L476RG)で、左がデバッグされている方(F446RE)。
F446REのLED(緑色)が1秒ごとに点滅する。