はじめに
WB55RGをMatterデバイスとして動かす前にOTBR(OpenThread border router)のRCP(Radio Co-Processor)として動かしてみます。
STM32CubeProgrammer の入手
サンプルプログラムをデバイスへ書き込むために STM32CubeProgrammer を使用します。
こちらから入手してインストールします。
サンプルプログラム (Thread_RCP) の入手
サンプルプログラムはこちらから入手します。
- どちらのサンプルプログラムも動作しました
- Wireless Coprocessor Binaryを書き込むアドレスが一部異なるので注意
STM32CubeWB v1.18.0, CSA Matter SDK V1.1, OpenThread 1.3
Wireless Coprocessor Binary | STM32WB5xxG(1M) | Version |
---|---|---|
stm32wb5x_FUS_fw.bin | 0x080EC000 | V1.2.0 |
stm32wb5x_Thread_RCP_fw.bin | 0x080DE000 | V1.18.0 |
Application Binary | STM32WB5xxG(1M) |
---|---|
Thread_RCP.bin | 0x08000000 |
STM32CubeWB firmware release V1.17.0
Wireless Coprocessor Binary | STM32WB5xxG(1M) | Version |
---|---|---|
stm32wb5x_FUS_fw.bin | 0x080EC000 | V1.2.0 |
stm32wb5x_Thread_RCP_fw.bin | 0x080CF000 | V1.0.0 |
Application Binary | STM32WB5xxG(1M) |
---|---|
Thread_RCP.bin | 0x08000000 |
サンプルプログラムをデバイスへ書き込む
STM32CubeProgrammerを起動してPC(macOS)とデバイスをUSB Micro-Bケーブルで接続します。
デバイス側はST-LINKポートを使用します。
「connect」を押します。
Wireless Coprocessor Binaryは「Firmware Upgrade Services」メニューを使用します。
「File path」でstm32wb5x_FUS_fw.binファイルを指定し、「Start address」に書き込みアドレスを設定します。
「Firmware Upgrade」を押します。
「File path」でstm32wb5x_Thread_RCP_fw.binファイルを指定し、「Start address」に書き込みアドレスを設定します。
「First install」にチェックを入れます。
「Firmware Upgrade」を押します。
Application Binaryは「Erace & Programming」メニューを使用します。
「File path」でThread_RCP.binファイルを指定し、「Start address」に書き込みアドレスを設定します。
「Start Programming」を押します。
Border Router (Raspberry Pi)
ラズパイへボーダールーターのソフトウェアをインストールする手順はこちらを参照します。
Raspberry Pi と WB55RB との接続
USB-UART変換ボード(赤い基板)とRaspberry PiをUSBケーブルで接続します。
USB-UART変換ボード(赤い基板)とデバイス(WB55RG)をジャンパーケーブルで接続します。
Raspberry Piの設定変更
nRF52840 Dongleデバイスは/dev/ttyACM0として認識されましたが、USB-UART変換ボード(赤い基板)は/dev/ttyUSB0として認識されるため、otbr-agentの設定を一部変更します。
/etc/default/otbr-agent
# for nRF52840 Dongle
OTBR_AGENT_OPTS="-I wpan0 -B eth0 spinel+hdlc+uart:///dev/ttyACM0 trel://eth0"
↓
# for STM32 RCP via UART
OTBR_AGENT_OPTS="-I wpan0 -B eth0 spinel+hdlc+uart:///dev/ttyUSB0 trel://eth0"
otbr-agentを再起動します。
sudo service otbr-agent restart
ST-LINK側のシリアルコンソール出力
[0000000000] [PLATFORM] --> DebugLevel set to 1
[0000000000] [PLATFORM] IeeeEui64 = 0x0080e1fffebeccc2
[0000000001] [PLATFORM] ----> EUID64 = 0x0080e1fffebeccc2
[0000000001] [PLATFORM] [THREAD] Init_ThreadStack_Infrastructure
[0000001678] [PLATFORM] EnableSrcMatch=0
[0000001678] [PLATFORM] PANID=FFFF
[0000001678] [PLATFORM] Short_Addr=FFFE
[0000001679] [PLATFORM] PromiscuousMode=0
[0000001822] [PLATFORM] PANID=FFFF
[0000001838] [PLATFORM] Short_Addr=0
[0000001902] [PLATFORM] Short_Addr=FFFE
[0000001966] [PLATFORM] PANID=1234
[0000001998] [PLATFORM] Short_Addr=3400
[TX :x4b|00011000|..|0000] 6abe -> ffff (15)
[TX :x4c|00011000|..|0000] 6abe -> ffff (15)
[TX :x4d|00011000|..|0000] 6abe -> ffff (15)
[TX :x4e|00011000|..|0000] 6abe -> ffff (15)
[TX :x4f|00011000|..|0000] 6abe -> ffff (15)
[TX :x50|00011000|..|0000] 6abe -> ffff (15)
[0000027307] [PLATFORM] Short_Addr=FFFE
[TX :x51|00011000|..|0000] 6abe -> ffff (15)
[TX :x52|00011000|..|0000] 6abe -> ffff (15)
[TX :x53|00011000|..|0000] 6abe -> ffff (15)
[TX :x54|00011000|..|0000] 6abe -> ffff (15)
[TX :x55|00011000|..|0000] 6abe -> ffff (15)
[TX :x56|00011000|..|0000] 6abe -> ffff (15)
[0000033958] [PLATFORM] Short_Addr=3400
[TX :x57|00011000|..|0000] 6abe -> ffff (15)
[TX :x58|00011000|..|0000] 6abe -> ffff (15)
[TX :x59|00011000|..|0000] 6abe -> ffff (15)
[TX :x5a|00011000|..|0000] 6abe -> ffff (15)
...