STM32F103でマイコン遊び

STM32F103

 パソコンでUSB接続するだけでマイコンチップのソフトをC言語で書いて実行⇨デバッグまでできる開発キット「STM32 Nucleo Board STM32F103」というものを散歩のついでに寄った秋月電商さんで買ってきた。昔のマイクロチップ社のPICみたいなもんかと思って、店員さんに電源はどうやってつなぐのか聞いたところ、USBだと・・・。えらい時代になったもんだと関心しながら今はもうレガシー化しつつあるUSB-A <> USB Mini のケーブルもついでに秋月さんで購入して家に帰ってきた。

まずはつないでみる!

 なにはともあれまずはパソコンとSTM32 Nucleo BoardをUSB Miniケーブルでつないでみます。説明書によると、この開発ボードに乗っているSTM32F103RBチップには、すでにLEDを点滅させるデモ用のプログラムが書き込まれているらしいので、電源を繋げばすぐにその動作を見れるはずなので、さっそく接続してみた。

USBをつなぐと・・・

 USBをパソコンにつなぐと、STM32 Nucleo Boardでは緑色のLEDが点滅をしはじめた。それど同時に、外部メディア(USBメモリみたいに)が認識されて、エクスプローラが開いた。

メデイア名がチップの名前になっている。
メディア内には2つのファイルが・・・

 メディアの中の「MBED.HTM」というHTMLファイルをブラウザで開いてみると、NUCLEO-F103RBの説明サイトが表示された。これはべんり。このページには、NUCLEO-F103RBボードのピン配置図などの有用な情報が書かれているので気が利くなあと関心。

開発環境をインストール

 この開発ボードに書き込まれているデモプログラムを見てみるには、無料で使える開発環境をダウンロードしてきてパソコンにインストールする必要があるらしいので、先ほど開いたMBED.HTMファイルで表示されるWEBサイトを使って、さっそくインストールしてみた。

前準備

MBED.HTMを開いて、次の文字列を検索する「Getting started」。



埋め込まれた動画のブロックのすぐ下に、デバイスドライバとボードのファームウエアの更新プログラムへのリンクがあるので、両方インストールします。

ST Link Diver

 まずは、ST-LINK/V2 driver の「LINK」というリンクをクリックしてドライバをインストールします。

Installation Instructionsの欄のすぐ下にある「Download the latest ST LINK/V2 driver」のリンクをクリックします。

「Get Latest」という赤いボタンをクリックします。

注意事項に「Accept」ボタンを押します。

MySTアカウントを持っていない人は「Create a MyST Account」を選択します。

必要事項を記入します。

「en.stsw-link009.zip」のような圧縮ファイルをダウンロードして展開したら、Windows11の64ビットのパソコンを使っているのであれば「dpinst_amd64.exe」を起動してドライバをインストールします。

ST LINK/V2 firmware

ドライバをインストールしたら次はボードのファームウエアのアップグレードです。

Download the latest ST-LINK/V2 firmware upgradeのリンクをクリックします。

Get Softwareセクションにある「Get Latest」の赤いボタンを押してファームウエアアップデート「en.stsw-link007-v3-15-6.zip」のようなファイルをダウンロードして圧縮ファイルを展開します。

圧縮ファイルを展開したら、Windowsというフォルダの中にある「ST-LinkUpgrade.exe」を起動します。

「ST-LinkUpgrade.exe」を起動したら、STM Nucleo BoardをUSBケーブルを使ってパソコンに接続します。接続したら「Device Connect」ボタンを押下します。

Device Connectボタンを押下して、正しくボードを認識すると、version欄にボードにインストールされているファームウエアのバージョンが表示されます。
Upgrade to Firmwareの欄にはインストールしようとしている最新バージョンの情報が表示されます。

「Yes >>>>」というボタンを押すと、ファームウエアの更新がスタートします。

アップグレードが正常に終了すると、「Upgrade is successful」というダイアログが表示されます。

開発ツールのインストール

ブラウザで「mbed」を検索するか、「https://os.mbed.com/」を開きます。

MBED開発環境のアカウントを持っていない場合「Signup for Free」ボタンを押下してアカウントを作成します。

MBEDにログインします。

画面上部のメニューから「Hardware▼」を選択し、「Board」を選択します。

左側のリストから「STMicroelectronics 」にチェックを入れます。

リストの2ページ目にある「NUCLEO-F103RB」を選択します。

NUCLEO-F103RBのページの右上にある「Keil Studio Cloud」という黄色いボタンを押します。

オンラインの開発環境が起動します。

メイン画面が表示されればOKです。

ウエブベース開発環境 Keil Studio

オンライン開発環境「Keil Studio」を起動したら、開発ボードをUSBケーブルでパソコンに接続します。

Keil Studioの左側のパネルにある「Build Target」には「NUCLEO F103RB」と正しいターゲットデバイスが選択されていることと「Connected Device」にも正しいターゲットデバイスが表示されていることを確認します。

ターゲットデバイスが正しく接続されていると、青いボタンで「コンパイル」「実行」「デバッグ」ができるようになります。

OSの違いに注意

Keil Studio Cloudでは2024年現在、2種類のMBED OS(mbed os 5 と mbed os 6)の開発ができるようになっていますが、最初にデモ版で入ってくるボード上の緑色のLEDを点滅させるサンプルプログラムはmbed os 5で書かれているようです。このバーションではボード上の青い色のプッシュボタンの定義が「USER_BUTTON」となっていますが、mbed os 6のほうではこの定数が廃止になっているのですぐ分かると思います。

mbed os 5 の場合

 現在のプロジェクトがmbed os 5用なのか、mbed os 6用なのかを知るには、いろいろ方法がありますが、大きく違うのはユーザーが使用できるボタンの定義名が違うことです。mbed os 5の場合。青い色のユーザーボタンは、下記のファイル内で「USER_BUTTON」と定義されています。

「mbed-os → targets → TARGET_STM → TARGET_STM32F1 → TARGET_NUCLEO_F103RB → PinNames.h」

ファイルエクスプローラの「PinNames.h」では、USER_BUTTONと定義されている。

mbed os 6 の場合

 mbed os 6では、このUSER_BUTTONの定義が無くなっていて代わりに「BUTTON1」が定義されています。このようにOSの違いで様々な仕様変更がサれていますので注意が必要です。

定義内容が変わっている。

ターゲットの指定を間違えた場合

mbedのユーザーフォーラムでもこのような「定義がない」エラーによってコンパイルが通らなくなってしまった人がたくさんいたようでしたが、プロジェクトを削除して正しいダーゲットでプロジェクトを作り直すしか無いという意見が多数寄せられていました。

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