STANDALONE MODE SAMPLE APPLICATION FOR ARDUINO ENVIRONMENT (Version 1.0.1)
概要
STANDALONE MODE SAMPLE APPLICATION FOR ARDUINO ENVIRONMENT(Arduino_standalone_mode_sample_app) は、CXM150x において Standalone モードを使用して LPWA 送信を行う
アプリケーションを Arduino 開発環境にて作成するサンプルです。マイコンは STMicroElectronics 社 STM32L073、または Espressif 社 ESP32 を想定しています。

通信制御および電源制御、および基本的なペイロードのデータ生成は CXM150x の EEPROM 設定に従ってCXM150x 自身が行い、ホストマイコンは CXM150x の起動時の動作モード設定とペイロードの一部変更のみを行います。ペイロードへのユーザーデータ付加の例として、CXM150x が自動生成したペイロードの末尾部分(bit117～127)をボードの tick(動作時間)に置き換えるサンプルとなっています。

起動時には、異常発生時のコールバック関数登録を行います。

CXM150x の各機能の詳細については、CXM150x HOST I/F Specification, CXM150x Configuration Manual,
CXM150x Programmer's Manual および CXM150x Application Manual をご参照下さい。

ハードウェアの準備
CXM1501AGR DKBoard を STMicroElectronics 社評価ボード NUCLEO-L073RZ と組み合わせて使用する場合はCXM1501AGR DK Board を NUCLEO-L073RZ の Arduino コネクタに装着してください(DK Startup Manual を参照してください)。
それ以外の場合、CXM150x はデータシートのアプリケーション回路例に沿った接続を行い、ホストマイコンとの間には以下の接続を行ってください。マイコンの I/O 入出力電圧が 1.8～2V 以外の場合には、必要に応じて CXM150x との接続にレベルコンバータを使用してください。
CXM150x 端子名

STM32L073 端子名

ESP32 端子名

ENABLE (D9)PC 7GPIO 19

WAKEUP (D12)PA 6GPIO 22

INT_OUT2 (D6)PB 10GPIO 4RX (D8)PA 9GPIO 17

TX (D2)PA 10

GPIO 16

CTS (D3)PB 3GPIO 15

RTS (D5)PB 4GPIO 14(DK board ピン番号)© 2021, 2022 Sony Semiconductor Solutions corporation1

アプリケーションのビルド、書き込みアプリケーションのビルド、書き込みには Arduino IDE を使用します。

STM32L073 を使用する場合は"STM32 MCU based board"ボードをあらかじめボードマネージャによりインストールしてください。また、ソースファイル CXM150x_Port.cpp 中の#define FOR_STM32_DRIVER を有効にし、#define FOR_ESP32_DRIVER をコメントにして下さい。
ESP32 を使用する場合は"ESP32"ボードライブラリをあらかじめボードマネージャによりインストールしてください。また、ソースファイル CXM150x_Port.cpp 中の#define FOR_ESP32_DRIVER を有効にし、#define FOR_STM32_DRIVERをコメントにして下さい。

CXM1504GR において送信デューティー制限機能を使用する場合には、main_standalone_mode_sample_app.cpp において、マクロ TX_DUTY_USE の定義を以下のように変更してください。
#define TX_DUTY_USE(1)

ビルド、書き込みは以下の手順によって行います。
・配布したソースファイルの zip パッケージを解凍し、standalone_mode_sample_app.ino を Arduino IDE から開く
・Arduino IDE の[ツール]メニューから使用するボードを選択し、必要な設定を行う
・Arduino IDE の操作法に従ってビルド、マイコンへの書き込みを行う

その他情報○対応ファームウェアバージョン
システムファームウェアバージョン(GNSS ファームウェアバージョン)

FY0100_RA2400 (17166,3dac91c,122) 以降
このアプリケーションの動作には以下の EEPROM 設定が関与します。
EEPROM 設定

説明

INT_OUT2

CXM150x が UART での送信開始する指定時間(ミリ秒単位)だけ前に通知する信号を発生します。
0 以外に設定されている必要があります。
設定値 10 を推奨します。

SM_TOUTCXM150x が起動後自動的に通常動作モードに遷移するまでの時間を指定します。
0(自動遷移無効)に設定してください。

AUTOPLD_COLLECT

オートペイロードのデータを取得する際のデータ収集開始時間を、データ送信の何秒前に開始するかで設定します。
0 以外に設定されている必要があります。
設定値 5 を推奨します。

WAKEUP_CTRL

UART インタフェース回路の自動電源オフの有無を設定します
0(自動オフしない)に設定してください。

2

AUTO_PERIODIC_SELECT

送信プロファイルにあわせて設定してください。

PROFILE_SELECT

設定については CXM150x Application Manual, CXM150x Configuration

MIN_DSLP_TIME

Manual を参照してください。

DSLP_BUP
AUTOPLD_SRC_SELECT

ペイロードに設定するデータや配置を指定します。

AUTOPLD_LAT_BASE

設定については CXM150x Application Manual, CXM150x Configuration

AUTOPLD_LON_BASE

Manual を参照してください。

AUTOPLD_LAT_RANGEAUTOPLD_LON_RANGEAUTOPLD_LAT_RES
AUTOPLD_LON_RES
AUTOPLD_SRC6_BIT_WIDTHAUTOPLD_SRC7_BIT_WIDTHAUTOPLD_HEIGHT_OFFSETAUTOPLD_SRC1_BIT_POS
AUTOPLD_SRC2_BIT_POS
AUTOPLD_SRC3_BIT_POS
AUTOPLD_SRC4_BIT_POS
AUTOPLD_SRC5_BIT_WIDTHAUTOPLD_SRC5_BIT_POS
AUTOPLD_SRC6_BIT_WIDTHAUTOPLD_SRC6_BIT_POS
AUTOPLD_SRC7_BIT_WIDTHAUTOPLD_SRC7_BIT_POS
AUTOPLD_SRC8_BIT_POS
AUTOPLD_SRC9_BIT_WIDTHAUTOPLD_SRC9_BIT_POS

Arduino 環境の各ソフトウェア/ライブラリは以下のバージョンで動作確認をしています。
ソフトウェア/ライブラリバージョン

情報 URL

Arduino IDE

1.8.15https://www.arduino.cc/software

STM32 MCU base board

2.0.0

https://github.com/stm32duino/Arduino_Core_STM32

ESP32

1.0.5

https://docs.espressif.com/projects/arduino-esp32/en/latest/3