6 オペレーションモード(マイコンからの操作方法を中心に解説)
本製品は、設定、送受信など動作モードによって、利用できる機能と振る舞いをモード切り替えによって選択して使用します。動作モードの決定は、外部から2つの信号線M1とM0ピンのHigh, Lowの2値信号レベルで設定します。一般に、M1とM0をHighレベルとLowレベルを組み合わせて、動作モードを決定するため、 MCUの2つのGPIOを使用してモード切り替え制御が可能です。単純な使用方法に限定する場合は、M1、M0を単一のGPIO端子から、同値に制御して軽量な設計、および、使用方法を採用することも可能です。
M1, M0の各ピンは、モジュール内部においてプルアップに保持されており、外部から信号を加えない限りにおいては、M1=High, M0=Highの状態で、Config/DeepSleep(mode 3)となります。
#
6.1 通常送受信モード(mode 0) < M1=Low, M0=Low >M1=Low, M0=Lowとしたとき通常送受信モード(mode 0)となります。(後述のWOR機能を使用せず)通常の送受信を行う場合は、一般にこのモードを使用します。
送信時の命令は、MCU(TXD)からシリアルポートを介して本製品(RXD)へデータを入力でき、モジュールは入力バイト列の情報に従って、自動的にワイヤレス送信を開始します。受信時には、モジュールが無線データを受信した後、シリアルポート(TXD)を介してMCU(RXD)へ出力されます。また、受信データをMCUへ出力する前に、6.9節で後述するAUXピン動作により、MCUへ割り込みをかけることができます。
#
6.2 WOR送信モード(mode 1) < M1=Low, M0=High >M1=Low, M0=HighとしたときWOR送信モード(mode 1)となります。8.6節で後述するWOR通信における、送信側として動作するためのモードになります。
送信時の命令は通常送受信モードと同じで、MCU(TXD)からシリアルポートを介して本製品(RXD)へデータを入力でき、モジュールは入力バイト列の情報に従って、自動的にワイヤレス送信を開始します。この際、WOR通信におけるプリアンブルが付加されます。また、受信時には、通常送受信モードと同じく、モジュールが無線データを受信した後、シリアルポート(TXD)を介してMCU(RXD)へ出力されます。また、AUXピン動作により、MCUへ割り込みをかけることができます。
#
6.3 WOR受信モード(mode 2) < M1=High, M0=Low >M1=High, M0=LowとしたときWOR受信モード(mode 2)となります。8.6節で後述するWOR通信における、受信側として動作するためのモードになります。
このモードでは、データ受信のみ動作し、データ送信は行うことができません。MCU(TXD)からシリアルポートを介して本製品(RXD)へデータを入力しても、入力信号は破棄されます。受信時には、通常送受信モードと同じく、モジュールが無線データを受信した後、シリアルポート(TXD)を介してMCU(RXD)へ出力されます。また、AUXピン動作により、MCUへ割り込みをかけることができます。
#
6.4 Config/DeepSleepモード(mode 3) < M1=High, M0=High >M1=High, M0=HighとしたときConfig/DeepSleepモード(mode 3)となります。第9章で後述するレジスタに対して、6.8節で説明するコマンド送受信の方法により、パラメータセットを行うためのモードになります。また、このモードではモジュール内部の無線チップの動作がオフとなりデータ送受信ができなくなりますが、最小の待機消費電力で動作するDeepSleep状態となります。
#
6.5 オペレーション通常送受信モード(mode 0) / WOR送信モード(mode 1)において、データ送信、データ受信、コマンド送受信が可能ですが、レジスタ読み取り操作などはできません。
また、(実用上問題となることは希ですが)、トランスペアレント(透過)送信モードにおいては、送信ペイロードにコマンド列に解釈されるバイト列が含まれる場合で、かつ、送信処理の読み取り開始に該当する箇所(送信サブパケット長で指定された、ペイロード区切り箇所)の開始位置にコマンドの開始バイト列「0xC0, 0xC1, 0xC2, 0xC3」が現れた場合に限って、これと、これに続くパラメータ部がコマンドとして解釈されます。
通常送信モードにおいては、送信時指定のチャンネル値(3バイト目の0xC2)として、これに合致するチャンネルは存在しないため、重複することは発生しません。
また、データ受信時に、MCUをウェイクアップさせるためのAUX立ち下がりからUART送信までの待機時間は2~3msで固定となります。
#
6.6 データ送信データ送信および受信を行う際には送受信双方ともモジュールのLoRa変調の設定を合わせておく必要があります。すなわち、第9章の設定レジスタの中の、0x02レジスタのAirDataRate設定を送信側、受信側で同一設定にする必要があります。第9章の設定レジスタの中の、0x03レジスタのペイロード長設定でセットした長さが、1つのパケットの最大ペイロード(ユーザが任意のバイト列を載せられる領域)のサイズとなります。また、第9章の設定レジスタの中の、0x05レジスタの送信方法設定により、次の2つの送信モードで動作させることができます。
- 通常(Fixed-block)送信モード
4.2節で説明した宛先デバイスを指定した通信を行う通常(Fixed-block)送信モードです。このモードでは送信時の、MCU(TXD)からのシリアルポートを介して本モジュール(RXD)へデータを入力する際に、図 18の通り、ペイロードデータの前に宛先デバイスアドレス(2byte)と宛先デバイスの待ち受け周波数チャンネル(1byte)の情報を付加して、宛先デバイスを指定する必要があります。(この送信モードでは、必ず送信時に周波数チャンネルの指定を行います)
図 18 MCUから本モジュールへのUART入力バイト列
- 透過(Transparent)送信モード
この透過(Transparent)送信モードでは、第9章の設定レジスタの中の0x00, 0x01レジスタでセットしている自身のデバイスアドレスおよび、0x04レジスタでセットしている自身の待ち受け周波数チャンネルと同じ設定をした、他のモジュールに向けてデータ送信を行うことができます。このモードでは、ペイロードデータの前に宛先情報を付加する必要はなく、ペイロードデータだけをMCU(TXD)からシリアルポートを介して本モジュール(RXD)へ入力することでデータ送信することができます。
#
6.7 データ受信受信時には、モジュールが無線データを受信した後、図 19の受信時の出力形式に従ってシリアルポート(TXD)を介してMCU(RXD)へ出力されます。
図 19 本モジュールからMCUへのUART出力バイト列
#
6.8 コマンド送受信レジスタ0x03のRSSI環境ノイズ出力を有効化したとき、通常送受信モード(mode 0) / WOR送信モード(mode 1)において、図 20のコマンドによって、現在の環境ノイズと前回のデータ受信時RSSIの応答を取得できます。現在の環境ノイズはアドレス0x00から、前回のデータ受信時のRSSIはアドレス0x01から読み出すことができます。このとき、図 20のReg Start addr(読み出し開始アドレス)は0x00しか指定することができません。Read length(読み出し数)は、現在の環境ノイズのみ取得する場合は0x01を、現在の環境ノイズと前回のデータ受信時RSSIを取得する場合は0x02を指定してください。
図 20 MCUから本モジュールへの環境ノイズと前回受信時RSSI取得コマンドバイト列
また、本モジュールからMCUへの読み出し環境ノイズのレスポンスバイト列を図 21に示します。
図 21 本モジュールからMCUへの環境ノイズと前回受信時RSSIレスポンスバイト列
#
6.9 AUXピン動作本モジュールのAUXピン(出力)は、ワイヤレス送信予定の未送信データがあるかどうか、すべてのワイヤレスデータがUARTを介して送信されているかどうか、また、モジュールが通電直後の初期化、もしくは、モード切り替え中などのセルフチェックの過程にあるかどうかのインジケータとして使用できます。図 22、図 23に示す通り、データ送信時およびデータ受信時の内部バッファにデータがあるかどうかをAUXの状態で表します。
図 22の通り、受信された全ての無線データを、TXDからMCUへ送信完了したタイミングで、AUXはHighレベルになります。この時、内部受信バッファが空になっていることを表します。また、AUXピンは無線データ受信時にMCUをウェイクアップするための割り込みピンとして使用することもでき、図 22のAUXがLowレベルに落ちてから、TXDから受信無線データをMCUへ送信し始めるまでの間に、2~3msの間、Lowレベルにした後TXDからMCUへデータを送信します。
図 22 TXDピンが送信するときのAUXのタイミングシーケンス
図 23の通り、MCUが本モジュールへ送信データを入力し、そのデータが内部送信バッファに格納され、内部送信バッファが空ではないときAUXがLowになります。内部送信バッファのデータを無線チップに書き込み終わり内部送信バッファが空になったタイミングで、AUXはHighレベルになります。
図 23 RXDピンが受信したときのAUXのタイミングシーケンス
また、図 24に示す通り、電源投入時のリセットおよびConfig/DeepSleepモード(mode 3)から他の動作モードへの移行時に、ハードウェアのセルフチェックが実行され、その動作はAUXのLow状態で表されます。この動作中、AUXはLowレベルのままです。このプロセスが完了すると、AUXはHighレベルを出力し、M1とM0の組み合わせによって設定された動作モードに従って動作を開始します。
図 24 セルフチェック時のAUXのタイミングシーケンス