秋月から1100円という激安のARMマイコンキットSTM32VLDiscoveryが発売になりました(通販コードM-04276)
![](https://blogimg.goo.ne.jp/user_image/26/2f/d39197ccc6e67faafb2d303bca13feef.jpg)
STMicroの製品ページ
※試した範囲では動作しているようですが、同じことをして壊しても責任持てません。
ユーザーズマニュアル(UM0919)の10pageによると、STM32VLDiscoveryは簡単にST-LINKとして動かせることになっています。ST-LINKはSTM8とSTM32用のJTAGデバッガです。秋月でも売っています(通販コードM-04012)。純正品なのに2500円は激安です。でも、STM32VLDiscoveryを使えば1100円でJTAGデバッグできることになります。
ストロベリーリナックスで販売しているSTBeeにつないでみました。
STM32VLDiscovery側は
(1) CN3の2つのジャンパーをはずす
(2) CN2からSWDの線を3本接続する。CN2は以下のようなピン配置です。
pin1 Vdd検知。未接続。
pin2 SWCLK --- STBeeのpin7(TCK)に接続 (写真の緑の線)
pin3 GND ----- STBeeのpin4(GND)に接続 (写真の黒い線)
pin4 SWDIO --- STBeeのpin5(TMS)に接続 (写真の白い線)
STM32VLDiscovery側のCN2です。赤丸のついているところに1pinを表す「1」が描かれています。
![](https://blogimg.goo.ne.jp/user_image/11/36/a17e329bbf927c58c429b7d12fa05346.jpg)
pin1のVdd検知ですが、ユーザーマニュアルに載っている回路図を見るとGNDに10kΩを介して接続しているだけみたいなので、接続しなくてもいい(はず)です。
STBee側のCN2です。赤丸のところに1pinを表す▼マークがついています。
![](https://blogimg.goo.ne.jp/user_image/36/36/7f7a6e89e880f2198fa2b0da77590001.jpg)
pin3のGNDですが、pin4, 6, 8, 10, 12, 14, 16, 18, 20が全てGNDなので、このうちのどれにつないでもいいです。
PA13がTMS(白い線)、PA14がTCK(緑の線)なので、そちらにつないでもいいです(未確認)。
JTAGデバッグしている様子です。
![](https://blogimg.goo.ne.jp/user_image/73/8b/2bfcd50cc4bfcc8b4c89068d503e5eef.jpg)
横着してAtollicのTrue Studioでしか試していません。True Studioで使うときの注意点は、ST-LINKの設定をJTAGからSWDに変更してやる必要があることです。Runメニュー → Debug Configurationを選んでDebuggerタブのGDB Server Command Line OptionsのラジオボタンをJTAGからSWDに変更します。デフォルトはJTAGになっています。
![](https://blogimg.goo.ne.jp/user_image/75/66/748aa507b4d9f913a42078b1c82b5885.jpg)
SWDはJTAGの接続線を節約するために、時分割でJTAGのピンの情報を送信するプロトコルのようです。本質的にはJTAGと同じ情報を伝えているはずですが、時分割な分遅そうです。
gccやEclipseを使った開発は「マイコン徹底入門」のサイトが詳しいです。このページの作者さんが「STM32マイコン徹底入門」という本も書かれています。とてもいい本です。
STM32VLDiscoveryそのものの使い方については、エレキジャックのサイトで「STM32バリュー・ラインを使ってみる」という連載が始まっています。
というわけで、3本つなぐだけで、JTAG(SWD)デバッグができちゃいます。もちろん、STMicroのARMじゃないと駄目です。
ところで、JTAGデバッガとマイコンボードは、どちらの電源を先に入れるのがいいんでしょうか?特にSTM32VLDiscoveryは保護用のバッファICがいるわけではないので、ちょっと怖いです。保護用ということだと、マイコンボードにつなぐラインには100Ω程度のダンピング抵抗をいれてやったほうがいいと思います。
![](https://blogimg.goo.ne.jp/user_image/26/2f/d39197ccc6e67faafb2d303bca13feef.jpg)
STMicroの製品ページ
※試した範囲では動作しているようですが、同じことをして壊しても責任持てません。
ユーザーズマニュアル(UM0919)の10pageによると、STM32VLDiscoveryは簡単にST-LINKとして動かせることになっています。ST-LINKはSTM8とSTM32用のJTAGデバッガです。秋月でも売っています(通販コードM-04012)。純正品なのに2500円は激安です。でも、STM32VLDiscoveryを使えば1100円でJTAGデバッグできることになります。
ストロベリーリナックスで販売しているSTBeeにつないでみました。
STM32VLDiscovery側は
(1) CN3の2つのジャンパーをはずす
(2) CN2からSWDの線を3本接続する。CN2は以下のようなピン配置です。
pin1 Vdd検知。未接続。
pin2 SWCLK --- STBeeのpin7(TCK)に接続 (写真の緑の線)
pin3 GND ----- STBeeのpin4(GND)に接続 (写真の黒い線)
pin4 SWDIO --- STBeeのpin5(TMS)に接続 (写真の白い線)
STM32VLDiscovery側のCN2です。赤丸のついているところに1pinを表す「1」が描かれています。
![](https://blogimg.goo.ne.jp/user_image/11/36/a17e329bbf927c58c429b7d12fa05346.jpg)
pin1のVdd検知ですが、ユーザーマニュアルに載っている回路図を見るとGNDに10kΩを介して接続しているだけみたいなので、接続しなくてもいい(はず)です。
STBee側のCN2です。赤丸のところに1pinを表す▼マークがついています。
![](https://blogimg.goo.ne.jp/user_image/36/36/7f7a6e89e880f2198fa2b0da77590001.jpg)
pin3のGNDですが、pin4, 6, 8, 10, 12, 14, 16, 18, 20が全てGNDなので、このうちのどれにつないでもいいです。
PA13がTMS(白い線)、PA14がTCK(緑の線)なので、そちらにつないでもいいです(未確認)。
JTAGデバッグしている様子です。
![](https://blogimg.goo.ne.jp/user_image/73/8b/2bfcd50cc4bfcc8b4c89068d503e5eef.jpg)
横着してAtollicのTrue Studioでしか試していません。True Studioで使うときの注意点は、ST-LINKの設定をJTAGからSWDに変更してやる必要があることです。Runメニュー → Debug Configurationを選んでDebuggerタブのGDB Server Command Line OptionsのラジオボタンをJTAGからSWDに変更します。デフォルトはJTAGになっています。
![](https://blogimg.goo.ne.jp/user_image/75/66/748aa507b4d9f913a42078b1c82b5885.jpg)
SWDはJTAGの接続線を節約するために、時分割でJTAGのピンの情報を送信するプロトコルのようです。本質的にはJTAGと同じ情報を伝えているはずですが、時分割な分遅そうです。
gccやEclipseを使った開発は「マイコン徹底入門」のサイトが詳しいです。このページの作者さんが「STM32マイコン徹底入門」という本も書かれています。とてもいい本です。
STM32VLDiscoveryそのものの使い方については、エレキジャックのサイトで「STM32バリュー・ラインを使ってみる」という連載が始まっています。
というわけで、3本つなぐだけで、JTAG(SWD)デバッグができちゃいます。もちろん、STMicroのARMじゃないと駄目です。
ところで、JTAGデバッガとマイコンボードは、どちらの電源を先に入れるのがいいんでしょうか?特にSTM32VLDiscoveryは保護用のバッファICがいるわけではないので、ちょっと怖いです。保護用ということだと、マイコンボードにつなぐラインには100Ω程度のダンピング抵抗をいれてやったほうがいいと思います。