マイコン・ボードFRDM-RW612でMatter通信を試す

FRDM-RW612(NXPセミコンダクターズ)は,トライラジオ内蔵ワイヤレス・マイコンRW612(NXPセミコンダクターズ)を搭載する評価ボードです.
Wi-Fi 6(2.4GHz/5GHz),Bluetooth LE,IEEE802.15.4無線を搭載しており,Matter over Wi-FiもしくはMatter over ThreadによるMatterデバイスの開発に対応します.
図1に全体のブロックを示します.

RW612には,CPUとして最高260MHz動作のCortex-M33を搭載しています.また,内蔵メモリとして1.2MバイトのSRAMを搭載しています.
プログラムは外付けのQuad SPIフラッシュ・メモリに格納され,FlexSPIペリフェラルのexecute in-place機能により直接実行されます.
また,同様にFlexSPIペリフェラル経由で外付けのpSRAM(pseudo Static Random Access Memory,擬似SRAM)を接続できます.
FRDM-RW612にはプログラム・メモリとして512Mビット(64Mバイト)のQuad SPIフラッシュ・メモリ,外部RAMとして64Mビット(8Mバイト)のpSRAMが搭載されています.
通信以外のボード上の機能としては,RW612のリセット・ボタン,GPIOに接続されたボタン,RGB LED,温度センサがあります.
温度センサとしては,P3T1755(NXPセミコンダクターズ)が搭載されています.P3T1755はI2CおよびI3Cに対応した温度センサですが,RW612とはI2Cで接続されています.
RDM-RW612には,RW612が対応している2.4GHz/5GHz帯の通信を行うためのPCBアンテナと周辺回路が搭載されており,
RW612が対応する全ての無線通信機能を試すことができます.また,10BASE-T/100BASE-TXに対応するイーサネットPHYおよび周辺回路,RJ-45コネクタが搭載されており,
イーサネットによる有線通信も行えます.
RW612へのプログラム書き込み,およびデバッグ機能として,MCU-Link機能を実装したUSB機能付きマイコンが搭載されています.
対応するUSB Type-CコネクタをPCと接続することにより,RW612のデバッグやログの取得が行えます.
その他のペリフェラルに対応したピンは,Arduino互換ヘッダ,MikroBUSヘッダ,およびPmodヘッダに接続されています.
MikroBUSヘッダにはFlexCOMMペリフェラルのUART機能に対応するピンが接続されており,Matterファームウェアのデバッグ時のログ取得に用います.
RW612に対するMatterファームウェアのサンプル・コードは,製造元であるNXPセミコンダクターズより提供されています.
このサンプル・コードは,大きく分けて2種類あります.1つはFreeRTOSを使うもの,もう1つはZephyrを使うものです.
今回は,周辺回路のドライバ対応などの豊富さから,Zephyrを使うサンプル・プログラムを用いることにしました.
Zephyrは,Linux Foundationが管理しているオープンソース・ソフトウェアのリアルタイムOSです.組み込み向けのLinuxで用いられるデバイス・ツリーが使えるという特徴を持っています.
デバイス・ツリーを用いてハードウェアの構成を定義し,ハードウェアに対応する各種ドライバの結びつけや設定を行います.ここ数年では,通信機能を持つマイコンでの採用例が増えてきていて,
NXPセミコンダクターズでも同社製マイコンのZephyr対応を進めています.今回使用するFRDM-RW612もZephyr向けのボード定義が提供されており,すぐに開発を始められます.
RW612に対するMatterファームウェアのサンプル・コードは,製造元であるNXPセミコンダクターズより提供されています.
NXPセミコンダクターズは,自社製マイコンの開発環境として,MCUXpressoを提供しています.MCUXpressoには,単体のマイコン開発環境であるMCUXpresso IDEと,
Visual Studio Code向けの拡張機能MCUXpresso for VSCodeがあります.本稿ではMCUXpresso for VSCodeを用いて,FRDM-RW612向けのZephyrおよびMatterの開発環境を構築します.
Matterのリファレンス実装は,GitHubにてconnectedhomeipという名前のリポジトリでオープンソース・ソフトウェアとして公開されています.
各マイコン・メーカは,この実装に対して自社マイコン向けの対応を入れて公開しています.NXPセミコンダクターズでは,適宜connectedhomeipリポジトリに対して変更内容を反映していますが,
最新の内容を使うため,同社によるfork版の使用を推奨しています.執筆時点の最新バージョンはv1.4.0.2.1です.
リポジトリのexamples/all-clusters-app/nxpディレクトリ以下に,
さまざまなMatterデバイスの機能を実装したサンプルであるall-clusters-appのNXPセミコンダクターズ向けの実装が含まれています.
今回はこのサンプルをビルドし,FRDM-RW612に書き込んで動作確認をしてみました.
NXPセミコンダクターズのMatterサンプルでは,MCU-LinkのUSBシリアル変換機能経由でファームウェアとのコマンドライン・インターフェースが提供されます.
また,MikroBUS上のTXピンからはMatterのプロトコル・スタックのログ・メッセージが出力されるので,別で用意したUSBシリアル変換アダプタを接続します.
ファームウェアを書き込んで起動すると,MCU-LinkのUSBシリアル変換にuart:~$のプロンプトが表示され,コマンド入力を受け付ける状態になります.
まずはコミッショニング(Matterデバイスをネットワークに接続する処理)に必要なマニュアル・ペアリング・コード(MPC)を取得します.matter onboardingcodes bleを実行すると,
ManualPairingCode:の部分に出力されます.サンプルでは20054912334です.
uart:~$ matter onboardingcodes ble
QRCode: MT:-24J042C00O40648G00
QRCodeUrl: https://project-chip.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J042C00O40648G00
ManualPairingCode: 20054912334
Done
次に,connectedhomeipに含まれるMatterのデバッグ用ツールであるchip-toolを用いて,
サンプルのMatterデバイスをローカル・ネットワークにWi-Fi経由で接続してみます.(SSID) と (PASSWORD) の部分は,
接続先のWi-Fiアクセス・ポイントのSSIDとパスワードです.
$ chip-tool pairing code-wifi 1 (SSID) (PASSWORD) 20054912334
...
[1756668652.963689][947539:947540] CHIP:BLE: New device scanned: D1:6A:8A:EE:16:DF
[1756668652.963702][947539:947540] CHIP:BLE: Device discriminator match. Attempting to connect.
[1756668655.036841][947539:947540] CHIP:DL: ConnectDevice complete
...
[1756668670.351017][947539:947541] CHIP:TOO: Device commissioning completed with success
...
たくさんのログ・メッセージが出力されますが,対象のデバイスを見つけた部分と,
コミッショニングが完了した部分だけ抜き出しています.FRDM-RW612のMikroBUS側のUARTからのログ・メッセージにも
次の通りコミッショニングが完了したというメッセージが出力されます.
I: 493735 [SVR]Commissioning completed successfully
この状態でFRDM-RW612はWi-Fiアクセス・ポイントに接続されているので,chip-toolを使ってコマンドを送ってみます.
chip-tool interactive startを実行して,chip-toolを対話モードで起動します.
起動すると >>> のプロンプトが表示されコマンドを受け付ける状態になるので,MatterのOn/Off Lightデバイス・タイプが実装している
On/Offクラスタのonoffアトリビュートの内容を読み出してみます.
$ chip-tool interactive start
...
>>> onoff read on-off 1 1
...
[1756669557.559575][948145:948147] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0006 Attribute 0x0000_0000 DataVersion: 3547281730
[1756669557.559585][948145:948147] CHIP:TOO: OnOff: FALSE
いろいろ長いメッセージが表示された後,最終的に上記の結果が出力されます.
この結果より,onoffアトリビュートの内容はFALSEであることがわかります.
次にOn/Offクラスターのtoggleコマンドを実行して,現在のOn/Offの状態を反転してみます.
>>> onoff toggle 1 1
...
[1756669735.870316][948145:948147] CHIP:DMG: Received Command Response Status for Endpoint=1 Cluster=0x0000_0006 Command=0x0000_0002 Status=0x0
最後にもう1度onoffアトリビュートの内容を読み出します.
>>> onoff read on-off 1 1
...
[1756669793.896099][948145:948147] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0006 Attribute 0x0000_0000 DataVersion: 3547281731
[1756669793.896108][948145:948147] CHIP:TOO: OnOff: TRUE
先ほどtoggleコマンドを実行したため,On/Off状態が反転しTRUEになっていることが分かります.
* * *
現在のNXPセミコンダクターズのサンプルでは,これらの状態変化はボード上のLEDなどに反映されるようになっていません.一方,実際のMatterデバイスを開発するにあたっては,
Matterデバイスとしての状態変化を適宜ハードウェア側に反映する必要があります.
10月14日に開催するセミナでは実際にハードウェアに状態を反映するようにコードを修正し動作確認を行う予定です.
(1) トライラジオ内蔵ワイヤレスMCU:1x1 Wi-Fi 6 + Bluetooth Low Energy 5.4 / 802.15.4, NXPセミコンダクターズ.
https://csa-iot.org/developer-resource/specifications-download-request/
(2) RW612 Wi-Fi 6 + Bluetooth Low Energy + 802.15.4トライラジオ・ワイヤレスMCUに対応する,FRDM開発ボード, NXPセミコンダクターズ.
https://www.nxp.jp/design/design-center/development-boards-and-designs/FRDM-RW612
(3) MCUXpressoインストーラで,複雑な組込みツールの依存関係を持つ環境を適切に設定, NXPセミコンダクターズ.
https://www.nxp.jp/design/design-center/software/development-software/mcuxpresso-software-and-tools-/mcuxpresso-installer:MCUXPRESSO-INSTALLER
(4) connectedhomeipリポジトリ(Matterのリファレンス実装), GitHub.
https://github.com/project-chip/connectedhomeip
(5) Matter (NXP fork),GitHub.
https://github.com/NXP/matter
・組み込みマイコン入門講座
-- https://interface.cqpub.co.jp/mcu-hands-on/
・登録内容の変更,メール・マガジン配信中止はこちらからお願いします.
-- https://cc.cqpub.co.jp/system/auth/
スマート・ホーム向け通信規格「Matter」のファームウェア開発入門
・開催日 :2025年10月14日 10:00-17:00
・受講料 :5,000円(ボード付き,税込み)
・使用ボード:FRDM-RW612(NXPセミコンダクターズ)
・講師 :井田 健太氏(Nature株式会社)
※セミナ受講時に使用したFRDM-RW612はそのままお持ち帰り頂けます.
申し込みページはこちら
豊富な品ぞろえの在庫をもち、1個から迅速にお届けします。
https://jp.farnell.com/b/nxp
1個から注文可能で、注文内容確定から通常2-4日でお手元にお届けします。
5,000円以上で送料無料です。関税手続きはFarnellが行いますので追加の支払いは発生しません。