こんにちは 本日はSTM32WB開発エコシステムによるブルーツースローエナジー開発実習 ツール動作確認のプレゼンテーションをご覧いただきありがとうございます今回のプレゼンテーションは 弊社の2.4GHzの無線マイコンのSTM32WBを初めて使われるお客さまがブルーツースローエナジーの機器の開発をスムーズに進められるように 開発環境の構築や使い方を実習を通して学習していただくことを目的としております本実習を受講される際 事前に実習で使用する開発ツールのインストールが必要になります本プレゼンテーションでは 皆様の事前準備が完了していることを前提に進めていきますのでご了承くださいそれでは早速今回の実習で使用するツールの動作確認をしていきたいと思います 実習で使用する開発環境ですがボードはSTM32WB55が搭載のニュークリオボード 統合開発環境は弊社製のSTM32Cube IDEを使用しますまたソフトウェアライブラリーとしてSTM32Cube MXとSTM32CubeWBを使用しますその他 フラッシュプログラミングソフトのSTM32CubeプログラマーとスマートフォンアプリのSTBLEセンサーを使用します実習を行うには 事前に次に上げる4点の準備が必要になります1つ目は統合開発環境のSTM32Cube IDEとファームエアパッケージのSTM32CubeWBのインストールです2つ目はサンプルプログラムのコンパイル確認です3つ目はフラッシュプログラミングツールのSTM32Cubeプログラマーのインストールです4つ目はスマートフォンアプリのSTBLEセンサーのインストールです以上が事前準備の内容になりますなお 詳細に関しましては こちらのリンクに資料が用意されておりますので ご参照いただければと思いますこれより 事前準備が完了していることを前提に説明させていただきますそれでは これより サンプルプログラムを使用して ツールの動作確認をしていきます使用するサンプルプログラムは ブルー2スローエナジンを使用したルーター機能のサンプルプログラムでSTM32CubeWBのファーメアパッケージに含まれています手順としましては ボードの開封 ボードとPCの接続STリンクデバッカーのドライバーのインストール確認STM32CubeWBファーメアパッケージの保存場所の確認ブルー2スローエナジンのスタックの デバイスへのダウンロードそして最後に サンプルプログラムのコンパイルおよび動作確認となりますでは ボードを開封しますプラスチックのケースの蓋を開いて 白い方のボードを取り出してくださいボードにはヘッダーピンが複数ありますので 取り出す時に怪我をしないように十分にご注意くださいまた 中のリーフレットには ヘッダーピンのピンハイチなどが記載されております必要に応じてご利用いただければと思います次に取り出したボードとPCを USBケーブルで接続しますボードには2つのUSBコネクターがありますが ここではSTリンクと記載されている方のコネクターCN15の方にケーブルを接続してください接続しますと ボードの表側のUSBコネクターのそばのLED6が点滅しますしばらくするとLEDの点滅が点灯に変わります点灯に変わりますと PC側でオンボードのデバッカーのドライバーが正しく認識されたことになりますデバッカーのドライバーが正しくインストールされていることを確認するために デバイスマネジャーを開きますデバイスマネジャーの中から ポーツ コム&LPTを選択しSTマイクロエレクトロニクス STリンクバーチャルコムポートと表示されていることをご確認くださいまた、ユニバーサルシリアルバスデバイシスを選択しSTリンクデバッカーと表示されていることをご確認くださいもし表示されていない場合 ドライバーのインストールPCのUSBポートを変更USBケーブルを変更 ボードのUSBコネクターが正しいことの確認PCのセキュリティソフトの無効果をお試しくださいもしデバッカーのドライバーがインストールされていない場合統合開発環境のSTM32 Cube IDEのインストールフォルダーにドライバーのインストーラーがありますので こちらを実行してくださいSTリンクウィンUSB install.batというファイルが該当ファイルになります次にSTM32 Cube WBのファーメアパッケージの展開場所を確認しますパッケージの展開場所はご使用のPC環境によって異なります事前準備のご案内に従って設定しますとPC環境のユーザー名が日本語の場合パッケージの展開場所はCドライブの下のSTフォルダーとなりますPC環境のユーザー名がA数字の場合パッケージの展開場所はCドライブの下のユーザーズの下のユーザー名の下のSTM32 Cubeフォルダーの下のレポジトリーフォルダーになります事前準備におきまして正しく展開場所が設定できている場合STM32 Cube MXを起動してHELPメニューよりアップデータセッティングを選択することでパッケージの展開場所を確認することができます実際にWindowsのExplorerでパッケージの展開場所を確認するとこのようになります次に無線スタックのダウンロードを進めていきます最初にSTM32WB55のソフトウェア構成について説明しますSTM32WB55はCoreTek SM4とCoreTek SM0プラスの2つのコアを搭載したマイコンなので各コアで動作させるプログラムをそれぞれ用意する必要がありますそこでこれらの2つのプログラムのメモリ配置についてメモリーマップを用いて説明いたします右側にSTM32WB55のメモリーマップがありますがここではフラッシュメモリーとシステムメモリーのみバスイしていますまずCoreTek SM4で動作させるユーザーコードですがこちらは通常のシングルコアマイコンと同様にフラッシュメモリーの先頭からコードを配置していきます次にCoreTek SM0プラスで動作させる無線スタックですがこちらはフラッシュメモリーのまつびに配置しますまたこの無線スタックをフラッシュメモリーにダウンロードするためには専用のソフトウェアが必要になりますそれがファームウェア更新サービスFUSと呼ばれるコードになりますFUSはあらかじめフラッシュメモリーのまつびに書き込まれて出荷されます一方システムメモリーにはブートローダーが配置されていますこちらはFUSのバージョンを確認する際に使用します続きまして無線スタックのダウンロード手順について説明しますまずフラッシュメモリー書き込みツールのSTM32Cubeプログラマーを使用して無線スタックを消去しますそしてブートローダーを使用してマイコンに書き込まれているFUSのバージョンを確認しますその後FUSを更新して最後にスタックを書き込みますこの作業が終わりましたらそれ以降は統合開発環境でプロジェクトファイルを開いてデバッグを進めるという通常の開発フローになりますではここからダウンロード手順に従って作業を進めていきますまずは事前にインストールしていただいたフラッシュプログラミングツールのSTM32Cubeプログラマーのコマンドラインツールを準備しますWindowsのコマンドプロンプトを開きます次にコマンドプロンプト上でディレクトリーを変更するCDコマンドを使用してSTM32Cubeプログラマーがインストールされているフォルダーの中のビンフォルダーを指定しますここでマイコンに書き込まれている無線スタックを消去しますこちらのコマンドをコマンドプロンプト上で実行するとスタックが消去されますスタックが消去されますと消去完了のメッセージとコマンド実行完了のメッセージが表示されます次にFUSのバージョンを確認します本作業にはブートモードを変更する必要がありますここでブートモードというのはマイコンをリセットした際にアクセスするメモリー領域を指定するモードになりますSTM32WB55にはフラッシュメモリーブート、ラムブート、システムメモリーブートの3種類のブートモードがありますデフォルトではフラッシュメモリーブートに設定されていますがFUSのバージョン確認にはシステムメモリーブートを使用しますまずはPCとボードからUSBケーブルを外します次にボード上のJP1のジャンパー設定を7と8の位置から5と6の位置に変更して電源供給ルートをSTリンクのUSBコネクターからユーザー用途のUSBコネクターへ変更します続きまして使用していないジャンパーを使ってブートモードを切り替えますボード上のJP5の一番下のRXのジャンパーを外します外したジャンパーをボード左側のCN7のヘッダーピンの5番と7番ピンに接続しますジャンパーの設定が終わりましたらボードのユーザーUSBと書いてあるUSBコネクターにUSBケーブルを接続します続いてPCにUSBケーブルを接続しますボードの接続が完了しましたらFUSのバージョンを確認しますコマンドプロンプとの画面に戻りFUSのバージョン確認のためのコマンドを実行しますこちらのコマンドをコマンドプロンプ土壌で実行するとバージョン情報が表示されます右下の表に表示されたバージョンと実際のFUSのバージョンの関係を示しています確認したFUSのバージョンが0.5.3の場合バージョン1.0.2をダウンロードした後にバージョン1.1.0をダウンロードする必要があります確認したFUSのバージョンが1.0.8の場合FUSのバージョン1.1.0をダウンロードする必要があります確認したFUSのバージョンが1.1.0の場合FUSを更新する必要はありませんFUSのダウンロード方法について説明しますSTM32CubeWBにはFUSのバージョン1.0.2とバージョン1.1.0のバイナリファイルが同根されておりターゲットデバイスのフラッシュメモリーサイズによってダウンロードするアドレスが異なります今回実習で使用するボード上のデバイスはフラッシュメモリーのサイズが1MBですので書き込むアドレスは0X080EC000となりますバージョン1.0.2とバージョン1.1.0のダウンロードのコマンドはそれぞれこのようになりますコマンドプロンプ途上で実行していただければと思いますコマンドの中にバイナリーファイル名とアドレスを含んでいますので間違えないようにご注意くださいまたダウンロード対象のFUSのバイナリーファイルはSTM32CubeプログラマーのインストールディレクトリにあるSTM32プログラマーCLI.exeという実行ファイルと同じフォルダーに置いておくとこちらのコマンドをそのままご利用いただけますFUSの更新が終わりましたら再びバージョン確認コマンドを実行してFUSのバージョンを確認します表示されたバージョン情報が0101.000となっていればバージョン1.1.0のFUSが書き込まれていることになります以上でFUSの更新は完了です次は無線スタックの書き込み作業になります今回の実習ではブルーツースローエナジーのスタックを使用しますファイルとしましてはSTM32WB合抜BLEスタックフルFW.binを使用しますこちらのコマンドを実行して指定したバイナリファイルを指定したアドレスに書き込みます書き込みが完了すると最後にファームやアップグレード・サクセスというメッセージが表示されます以上でスタックの書き込みは終了です無線スタックの書き込みが完了しましたのでブートモードをシステムメモリーブートからフラッシュメモリーブートへ戻します手順としては先ほどのブートモード切り替えの逆の手順となりますまずPCとボードからUSBケーブルを外します次にボードの左側のピンヘッダ CN7の5番ピンと7番ピン間のジャンパーを外します外したジャンパーをJP5の15番ピンと16番ピンのRXのところに取り付けますJP1の電源オプションをUSB MCUからUSB STLに付け替えます最後にPCとボードをUSBケーブルで接続しますボード側は CN15のSTリンクと書いてある方のUSBコネクターに接続します次に動作確認に使用するサンプルプログラムを開きます該当のサンプルプログラムはSTM32CUBWBのフォルダーの中のプロジェクツ PNWB55 NUCLEOアプリケーションつ PLE PLEP2PサーバSTM32CUB IDEのフォルダーを順番に開いてくださいSTM32CUB IDEのフォルダーが開けましたらその中に .projectというファイルがありますこちらがSTM32CUB IDE用のプロジェクトファイルになりますこちらをダブルクリックしてSTM32CUB IDEを起動しますワークスペースの場所を聞かれますので 設定してロウンチをクリックしますここでは デートして ワークスペースの場所 STM32CUB IDE WSの下のVLE P2Pサーバというフォルダーに設定していますワークスペースへのプロジェクトのインポートが完了するとポップアップメッセージが表示されますので OKを選択しますSTM32CUB IDEが起動しますと 左側のような画面が表示されますのでInformation Centerタブの右側の抜印をクリックして閉じますそうしますと 右側のような画面になりますこの画面の左側の Project ExplorerのところにVLE P2Pサーバというプロジェクトが表示されていることをご確認くださいプロジェクトのBuildを行いますプロジェクトメニューよりBuild Allを選択しますショートカットキーはコントロールキー プラスBキーになりますBuildが完了するとコンソール画面にエラーとワーニングの数が表示されますここでデバッカーの設定を行いますRAMメニューより デバッグコンフィグレーションズを選択しますデバッグコンフィグレーションズの画面が表示されましたら左側のリストにある STM32 コアテックスM C C++アプリケーションをダブルクリックしますそうしますと 左側のリストに New Configurationというアイテムが追加されますのでそちらを選択しますメインタブを開き プロジェクトランのブラウスボタンを選択してBLE P2P Serverを指定してOKを選択しますそこまで作業を進めますと C C++アプリケーションのランにデバッグ BLE P2P Server.elf と表示されるのが確認できます次に デバッグタブを選択して デバッグプローブランでST-Link-GDB Serverを指定しますその後 アプライ デバッグという順に選択しますデバッグが起動する際に ボード上のデバッグのファームウェアが最新ではない場合最新のファームウェアに更新するかどうか聞かれる場合がありますその場合 Yes を選択し オープンインアップデートモードのボタンをクリックしますと現在のデバッグのファームウェアバージョンと 更新後のファームウェアバージョンが表示されます更新する場合 アップグレードボタンを選択します更新が完了しますと 画面下側に アップグレードサクセスフルと表示されますデバッグの設定が終わり デバッグのファームウェアを更新しましたらデバッグアを起動しますダンメニューより デバッグを選択しますデバッグア画面切り替えのポップアップインドが表示されますのでスイッチを選択して デバッグア画面に切り替えますプログラムがダウンロードされて デバッグアが起動しますとこのような画面になります左側にデバッグ関連の情報を表示する画面真ん中にコードが表示されますまた 画面上側にデバッグ用のツールバーが表示されますデバッグ用のツールバーには プログラムの実行再開 実行停止デバッグセッション再起動 デバッグセッション終了 切断 などの基本的な操作からステップインやステップオーバーなどの ステップ実行系の機能などデバッグに便利なアイコンが複数用意されていますでは ここでプログラムを実行してみましょう実行再開のアイコンをクリックしてくださいこの時点でボード上のプログラムが 動作している状態になりますので今度は対抗のスマートフォンのアプリを起動します事前にインストールしました STBLEセンサーのアプリを起動します起動しましたら Connect to a deviceのアイコンをタップして 接続を開始しますデバイスリストにデバイスが表示されましたら その中から P2P SRV1をタップしますしばらく接続中のアイコンが表示されます接続が完了しますと LEDが表示された画面に切り替わりますスマートフォンの画面上のLEDをタップすると 画面上のLEDが黄色に代わりボード上の青いLEDが点灯します再度LEDをタップすると 画面上のLEDが灰色に代わり 青いLEDが衝突しますこの動作が確認できたら 実習で使用するツールは 正常に動作していることになりツールの動作確認は完了となります 動作確認ができましたら 最後にデバッカーを停止しますデバッグ用ツールバーの実行停止ボタンをクリックして プログラムの実行を停止します次にデバッグセッション終了ボタンをクリックして デバッカーを停止しますこれで実習のための開発環境の動作確認を終了しますプレゼンテーションを最後までご覧いただきまして ありがとうございました