STM32G031J6をArduino IDEでLチカ!Nucleo-103 ST-LINKで動かす方法

STM32G031J6-Stlink-Lチカ開発環境のイメージ図STM32G031J6をArduino IDEでLチカ!Nucleo-103 ST-LINKで動かす方法
スポンサーリンク

工具箱で眠っていた、4年前に購入したNucleoー103、8ピンマイコン『STM32G031J6』を再利用できないか? そんな好奇心から始まった今回のプロジェクト。Arduino IDEの環境構築から、最新ファームウェアへのアップデート、『Lチカ』成功までの道のりを、備忘録として残します。STM32の奥深さと、純正ツールの信頼性に改めて気づかされた記録です。

スポンサーリンク

米粒サイズの実力者「G031J6」

  • 8ピンという最小構成の魅力。以前(120円)秋月電子で購入しましたが、今は販売されていません。
  • フラッシュ32KB/RAM 8KBという、Arduino Unoに勝るスペックの紹介。

Arduino IDEにSTM32のボード定義をインストールする

Arduino IDEはデフォルトでは「Arduino Uno」などの標準的なボードしか入っていないので、STM32を認識させるための「追加パッケージ(ボード定義)」のインストールが必須になります。

「追加のボードマネージャのURL」を登録する

Arduino IDEの [ファイル] > [基本設定] を開き、「追加のボードマネージャのURL」という欄に以下のURLをコピー&ペーストします。

https://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json

ボードマネージャで検索・インストール

「STM32 MCU based boards」 (by STMicroelectronics) という項目が出てくるので、最新版をインストールします。
※データ量が数GBと大きいので、Wi-Fi環境で行うのがおすすめです。

STM32CubeProgrammer のインストール

こちらをインストールしてないと、Aruduino IDEからSTM32のプログラムが書き込めません
公式サイトの製品ページを開く STM32CubeProgrammer ダウンロードページ (ST公式) ※「ソフトウェアを入手」というボタンまでスクロールしてください。

OSを選択する リストの中から 「STM32CubePrg-W64(Windows 64-bit版)」 を探して、右側の 「Get Software」 をクリックします。

規約に同意する 「License Agreement」が表示されたら、右下の 「Accept」 をクリックします。

メールアドレスの入力(重要) ログインしていない場合、名前とメールアドレスを求めるポップアップが出ます。

  • 名前(First Name / Last Name) と メールアドレス を入力して 「Download」 をクリック。
  • 入力したアドレスに、STから 「Download link for STM32CubeProgrammer」 というメールが届きます。
  • メール内の 「Download now」 ボタンを押すと、ようやくファイルのダウンロードが始まります。

⚠️ インストール時の注意点

ダウンロードしたZIPファイルを解凍し、中にある SetupSTM32CubeProgrammer-x.x.x.exe を実行します。その際、以下の点に気をつけてください。

  • インストール場所: 基本的には変更せず、C:\Program Files\STMicroelectronics\... のままにしてください。Arduino IDEはこの場所を自動で見に行くからです。
  • ドライバーのインストール: 途中で「ドライバーをインストールしますか?」という黒い画面やポップアップが出たら、迷わず「はい(インストール)」を選んでください。

IDEの設定

以下の設定にします
1.Board: “Generic STM32G0 series”
2.Board part number: “Generic G031J6Ux” か ”Generic G031J6Mx”
3.Uplaod method: “STM32CubeProgrammer (SWD)”

4年前のNucleoを最新ファームウェアへアップデート

4年前に購入したNucleoのSt-Linkは、ファームウェアのアップデートは「ほぼ必須」と考えました。
アップデートは驚くほど簡単です。
専用のツールを使わなくても、昨日インストールした 「STM32CubeProgrammer」 でそのままアップデートできます。

手順

  1. NucleoをPCに繋ぐ(8ピンマイコンはまだ繋がなくてOK)、ピン(CN2のジャンパ)は「付けたまま」でも「外した状態」でも、どちらでも大丈夫です!
  2. STM32CubeProgrammerを起動。
  3. 右側のメニューにある 「ST-LINK Configuration」(または 「Firmware Upgrade」 ボタン)をクリック。
  4. ウィンドウが開くので [Open Update Mode] を押し、次に [Upgrade] を押す。
  5. 「Upgrade Successful」と出れば完了!
stmProgrammar-Frmwaregrade画像

STM32G031J6のピンアサインと配線図

ARMマイクロコントローラ – MCUメインストリームArm Cortex-M0+ MCU 32KBフラッシュ 8KB RAM、64MHz CPU、2x US
STM32G03ピンアサイン

STM32G03ピンアサイン図

St-Linkとは下記のように接続します。

  • 2番ピン: 3.3V (VDD)
  • 3番ピン: GND (VSS)
  • 7番ピン: SWDIO
  • 8番ピン: SWCLK
  • 4番ピン: NRST (リセット)
  • 5番ピン: LED (Lチカ用)
STM32G031J6とNucleoの接続回路図

書き込みと成功のログ

動作確認

こちらが今回使用した動作確認用プログラムです

// 8ピン STM32G031J6 用 Lチカプログラム
// LEDの長い足を 5番ピン(PA8) に、短い足を抵抗(480Ω)経由でGNDに繋いでください。

#define LED_PIN PA8  // 5番ピンを使用

void setup() {
  // 指定したピンを出力モードに設定
  pinMode(LED_PIN, OUTPUT);
}

void loop() {
  digitalWrite(LED_PIN, HIGH); // 点灯
  delay(500);                  // 0.5秒待機
  digitalWrite(LED_PIN, LOW);  // 消灯
  delay(500);                  // 0.5秒待機
}

コンパイル後の表示画面です

コンパイル画像1
コンパイル画像2

実際に動作した際のメモリ使用量(余裕たっぷりのスペック)、今回はまだ試していませんがシリアルモニタモニターも使えると思います。

まとめ

各種設定を一つずつクリアし、ArduinoでSTM32CubeProgramm経由でようやくSTM32G031J6の小さなチップを動かすことができました。 St-Linkは安価な互換機St-Link(パチモノ)も魅力的ですが、『純正の安心感』に助けられる場面は多々あります。 もし引き出しに眠っているNucleoがあれば、アップデート一つで最新マイコンの強力な『核』に生まれ変わるかもしれません。あなたもこの小さな8ピンの世界、覗いてみませんか?
次回はi2c通信SSd1306の表示、また秋月電子で販売しているSTM32マSTM32F303K8T6を使ってみたいと思います。

タイトルとURLをコピーしました