はじめに
秋月電子で販売されているSTM32C011F4P6 ブレークアウトモジュールキットを使ってLチカ(LED点滅)を行います。
STマイコン用デバッガとして、1.ST-LINK/V2、2.Nucleo開発ボード(ST-LINK/V2-1)を使います。
※デバッガ:STM32マイコンにプログラム書き込み、動作を確認(デバッグ)する装置
「ArduinoやESP32, RaspberryPi Picoのようなマイコンボードは触ったけど、ワンチップマイコンは初めて」
といった方向けに記載しています。
また電子工作初心者ですので、誤ったことを記載している可能性があります。
ご了承ください。
備品,部品類
部品
AE-STM32C011F4P6-DIP(秋月電子キット)
ST-LINK/V2(白い筐体)
Nucleo Board STM32C031C6
→ST-LINKとNucleoはどちらか一つでOKです。
はんだ作業が必要ですがNucleoがおすすめです。
ブレッドボード(BB-801を使っています)
ジャンパーワイヤー オス-オス
ジャンパーワイヤー オス-メス
リードLEDとリード抵抗(今回は赤色LEDと220Ω抵抗)
USB A-マイクロB(2.0) (Nucleoボード接続用)
備品, ソフト
パソコン(Windows11を使いました)
はんだごて、はんだ
STM32CubeMX
STM32CubeIDE
ソフトのインストール
STM32CubeIDE
下記よりSTM32CubeIDEをダウンロードします。
https://www.st.com/ja/development-tools/stm32cubeide.html#get-software
※事前にMySTアカウントの登録、ログインが必要
下図、自分のパソコンにあったものをダウンロード(Windowsの場合は最下部)、
インストールします。
IDEを起動すると下図ウインドウが表示されます。
私は上を選択しました。(Windowsdifenderから除外)
STM32CubeIDEはいったん閉じてもOKです。
Microsoft Windows Defender が有効になっているため、STM32CubelDE の起動と全体的なパフォーマンスが大幅に低下する可能性があります。
Microsoft Defender によるこのインストールの処理方法を選択してください。
・パフォーマンスを向上させるため、STM32CubelDE をスキャン対象から除外します。
(一般的に、除外を追加すると、このコンピューターのセキュリティレベルに影響を与える可能性があります)
・STM32CubelDE を Microsoft Defender によるスキャン対象のままにします。 詳細と設定オプションについては、「スタートアップとシャットダウン」の設定を参照してください。
詳細と設定オプションについては、「スタートアップとシャットダウン」の設定を参照してください。
STM32CubeMX
ピン設定のコード生成機能について、元々はSTM32CubeIDEに含まれていたようですが、あるタイミングでSTM32CubeMXに分離したようです。
下記からSTM32CUbeMXダウンロード(Windowsの場合は最下部)し、インストールします。
https://www.st.com/ja/development-tools/stm32cubemx.html#get-software
初期設定とプログラムのビルド
ピン設定等の初期設定、コード生成
STM32CubeMXを起動します。
File → New Project をクリック。
ウインドウが表示されますので使用するマイコンを「Commercial Part Number」に入力します。(今回はSTM32C011F4P6)
MCUs/MCUs Listから選択 → Start Project をクリック。
ピンの設定画面が表示されますので、ピン設定を行います。
LED接続用にPA3(10pin)を「GPIO_Output」に変更
「Project Manager」タブを押し、
「Project Name」にファイル名を記入
「Project Location」にて保存場所を選択
「Toolchain /IDE」をSTM32CubeIDEを選択
「GENERATE CODE」を押し、コード生成
※プロジェクトネームに"()"を使うと、ビルド時にエラーが発生するため使わないでください。
※プロジェクトロケーションは「CubeMX」直下としてください。
「CubeMX\プロジェクトネーム」とした場合、CubeIDEでエラーが発生します。
初回はファームウェアのダウンロードが必要です。
「Yes」をクリック
コード生成後のウィンドウで、「Open Project」をクリックすると
自動でSTM32CubeIDEが起動し、インポートしてくれます。
Lチカ コード入力、ビルド
STMCubeIDEのインポートしたプロジェクト内「Core」 → 「Src」 → 「main.c」にコードを記入します。
※CubeMXのコード生成時に削除されるため、下記に囲まれている部分に記載する必要があります。
/* USER CODE BEGIN WHILE /
コード記入箇所
/ USER CODE END WHILE */
コードはwindows11のCopilotに書いてもらいました。
Lチカ_main.c
/* USER CODE BEGIN WHILE */
while (1)
{
HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_3); // LED反転
HAL_Delay(500); // 500ms待つ
}
/* USER CODE END WHILE */
メニューの「Project」 → 「 Build All」 を押しコンパイル&ビルドします。
問題がなければ、下部のコンソール画面に「0errors, 0warnings」と表示されます。
配線、Lチカ動作(デバッグ)
マイコンとLEDの配線
下記のように配線します。
今回使ったLEDの最大電流は20mAですが、
マイコン保護のために8mA以下に抑えています。
IF = (E - VF) / R
IF = LEDに流れる電流 = (3.3V - 2.05V) / 220Ω = 5.68mA
E = 3.3V (マイコンからの電圧)
VF = 2.05V(LEDの順方向電圧)
R = 220Ω(電流制限抵抗)
※LEDの制限電流、VFはLEDのカタログより
マイコンとST-LINK/V2の接続
ST-LINK/V2とマイコンも接続します。
デバッガ - マイコン接続
ST-LINK - マイコン(STM32C011F4P6)
pin1(VDD検知) - pin4(VDD)
7(SWDIO) - 18(SWDIO)
9(SWCLK) - 19(SWCLK)
15(NRST) - 6(NRST)
19(VDD3.3V供給) - 4(VDD)
20(GND) - 5(VSS)
※ST-LINK側のGNDは20以外の3~6など、どれか1つ接続でOKとのこと
ST-LINK/V2ユーザーマニュアルのコネクタ図は、プリント基板に刺した上面から見た図です。
コネクタに接続したケーブルへジャンパーワイヤーを接続する際は、左右が反転するため注意してください。
(ケーブル不足のため枠線の色と一部変更しています。 赤→白、黒→茶色)
Lチカ動作(デバッグ)
ST-LINK/V2とパソコンをUSBで接続します。
「Run」 → 「Debug」をクリック
初回は「Edit Configuration」ウィンドウが表示されます。
「OK」をクリック
初回のため、ST-LINK/V2のアップデートウインドウも出ました。「OK」をクリック。
※事前にアップデートできるようです。 その場合は「Help」 → 「ST-LINK更新」
ウインドウが切り替わるため、ST-LINKとPCのUSBを抜いて、刺す、
数秒以内に「Refresh device list」→「Open in update mode」
「update」ボタンが有効化したらクリック
アップデートが始まります。
ST-LINKアップデート後、再度「Run」 → 「Debug」をクリック
デバッグ画面に切り替えを提案されるため、「Switch」を押して了承する。
「
」Resumeボタンをクリック
LEDが点滅します。
ST-LINKのUSBを外すと消灯しますが、次回以降はUSBを刺すだけでLEDが点滅します。(マイコンにプログラムが書き込まれたため)
Nucleo開発ボードC031C6をデバッガとしてつかう
Nucleo-64開発ボード ST-LINK/V2-1の準備
STM32 Nucleo-64開発ボードの一部をデバッガ(ST-LINK/V2-1)として使う方法は、下記マニュアルに記載されています。
ネットではボードを分割する事例が多いですが、分割しなくてもデバッガとして使えます。
またST-LINK/V2(白い筐体)ではシリアルモニターを使えませんが、NucleoのST-LINK/V2-1ではシリアルモニターを使うことができます。
※シリアルモニター:マイコンの動作状況やデバッグ用のメッセージを、パソコンの画面に文字として表示するための仕組み。
STM32 Nucleo Board STM32C031C6マニュアル
https://www.st.com/ja/evaluation-tools/nucleo-c031c6.html
Nucleoボード裏面のSB23のジャンパーチップ(0Ωチップ)をはんだごてで外します。
SB23は、nucleoボード上のST-LINK/V2-1とオンボードMCUのNRST接続箇所のようです。
接続した状態ではST-LINK/V2-1と外部STM32のデバッグがうまくいきませんでした。
デバッガ - マイコン接続
ST-LINK - マイコン(STM32C011F4P6)
CN3
pin1(VDD検知) - pin4(VDD)
pin2(SWCLK) - pin19(PA14 SWCLK)
pin3(GND) - pin5(VSS)
pin4(SWDIO) - pin18(PA13 SWDIO)
pin5(NRST) - pin6(NRST)
CN6
3V3(3.3V給電) - pin4(VDD)
接続図がわかりづらく申し訳ないです・・・
NucleoボードでのLチカ動作(デバッグ)
ST-LINK/V2(白い筐体)同様に、LEDと抵抗をつなぎます。
またST-LINKの更新も同様に行います。
NucleoボードとパソコンをUSBで接続します。
「Run」 → 「Debug」をクリック
初回は「Edit Configuration」ウィンドウが表示されます。
「OK」をクリック
デバッグ画面に切り替えを提案されるため、
「Switch」を押して了承する。
「
」Resumeボタンをクリック。LEDが点滅します。
参考リンク
STマイクロニクス公式ドキュメント
STMicroelectronics, DS13866 Rev 4:STM32C011x4/x6データシート
https://www.stmcu.jp/stm32/stm32c0/stm32c0x1/97032/
STMicroelectronics, UM1075 rev10:ST-LINK/V2ユーザーマニュアル
https://www.st.com/ja/development-tools/st-link-v2.html
STMicroelectronics, UM2953 Rev 2:STM32 Nucleo Board STM32C031C6マニュアル
https://www.st.com/ja/evaluation-tools/nucleo-c031c6.html
Lチカ全体の流れ
コテツ商会(技術書典), WindowsではじめるSTM32 2021年版
https://techbookfest.org/product/5750763357732864?productVariantID=6244791165648896
ソフトのインストール
島津あおん, STM32 インストール/セットアップ/基本操作
https://zenn.dev/shimazu_aon/articles/a4b2746d68e9fd
STMicroelectronics, STM32CubeIDE
https://www.st.com/ja/development-tools/stm32cubeide.html#get-software
Qiita @denkisuiso0116, STM32CubeIDE Ver.2.0.0の仕様変更
https://qiita.com/denkisuiso0116/items/b5e09e9cc336011f7916
Satのロボット工房, 秋月電子で最安のSTM32マイコンSTM32C011F4P6でLチカしてみる
https://sat-robotics.com/stm32c011f4p6_led_flash/
STMicroelectronics, STM32CubeMX
https://www.st.com/ja/development-tools/stm32cubemx.html#get-software
LEDの使い方
marutsu, LED基本ガイド LEDの基本を詳しく解説
https://www.marutsu.co.jp/pc/static/large_order/led?srsltid=AfmBOorefzAGiEBI6sZbdY2ccRgUthxcIYoDrPZXju5rxepjp9IKFmmM
ST-LINK/V2接続方法
なんとなく活動記録。, ST-Link/V2を買ったので記す
https://blueeyes.sakura.ne.jp/2020/08/23/3357/
##NucleoボードST;LINK/V2-1でのデバッグ
ZeptoElectronicDesign, STM32 Nucleoをデバッガ ST-Linkとして使う方法
https://zeptoelecdesign.com/stm32-nucleo-stlink/


-
OY
さんが
前の月曜日の15:20
に
編集
をしました。
(メッセージ: 初版)
-
OY
さんが
前の月曜日の15:31
に
編集
をしました。
-
OY
さんが
前の月曜日の17:17
に
編集
をしました。
-
OY
さんが
前の月曜日の18:04
に
編集
をしました。
-
OY
さんが
前の月曜日の18:11
に
編集
をしました。
Opening
JO
前の火曜日の15:33 Opening
OY
前の火曜日の19:48 -
OY
さんが
前の火曜日の20:06
に
編集
をしました。
ログインしてコメントを投稿するARMですか、贅沢なLチカですね
コメントありがとうございます。
贅沢感をLチカで表現したかったのですが、難しかったです。
前回はRL78/G10 10ピンでLEDのPWMをやっていましたが、プログラムメモリが大きくて安いこちらにしました。
今後はNFCモジュールを使う予定です。