セクションの複数ページをまとめています。 印刷またはPDF形式で保存...

もとのページに戻る

2024-05-14 現在

超簡単!標準アプリ マニュアル

最新版

ダウンロード

超簡単!標準アプリ(App_Twelite)を導入するには TWELITE STAGE SDK をインストールして、TWELITE STAGE アプリを使って書き換えてください。

1 - 超簡単!標準アプリのピン配置

超簡単!標準アプリが使用するピンの機能
超簡単!標準アプリ(App_Twelite)が使用するピンの機能とその配置

ピン配置

ピン配置表

ピン配置表

ピン名機能
VCC GND電源入力
DIx AIxデジタル・アナログ入力
DOx PWMxデジタル・アナログ出力
TX RXUART
SCL SDAI2C
Mx BPS設定入力
RSTリセット入力

電源入力

VCC/GND には、3.3V(2.3-3.6V)の電源を接続します。

デジタル・アナログ入出力

DIx/DOx, AIx/PWMx ピンは、対応する番号のピンが同期して信号伝送を行います。

デジタルアナログ
DIxの入力→DOxの出力AIxの入力→PWMxの出力

シリアル通信

UART

TX/RX は、UART 通信の送信と受信に使用します。具体的には、次のような場面で使用します。

I2C

SCL/SDAピンは、I2C のターゲットデバイスを接続する際に使用します。

設定入力

Mxピンを未接続またはGNDへ接続することで、親機、子機、中継機といった動作モードを切り替えることができます。

BPSピンを未接続またはGNDへ接続することで、UART のボーレート(通信速度)を 115200bps 以外の値へ変更できます。

リセット入力

リセット入力ピン RSTGNDとの間にプッシュボタンを接続することで、リセットボタンを実装できます。RST は内部プルアップされています。

2 - 超簡単!標準アプリの動作モード

各動作モードの説明
超簡単!標準アプリ(App_Twelite)には、7つの動作モードがあります。

動作モードの一覧

各モードは、Mx ピンを未接続または GND へ接続することで設定します。

M3M2M1モード機能省電力動作LID初期値
OOO子機:連続入力状態を親機へ送信するほか、常に受信データを待機して出力へ反映します120
OOG親機:連続入力状態を子機へ送信するほか、常に受信データを待機して出力へ反映します0
OGO中継機:連続常に受信データを待機して中継します122
OGG子機:連続0.03秒頻繁に入力状態を親機へ送信するほか、常に受信データを待機して出力へ反映します123
GOO子機:間欠1秒1秒おきに入力状態を親機へ送信するほか、受信を無効化して常に節電モードへ入ります124
GOG子機:間欠受信1秒1秒おきに入力状態を親機へ送信するほか、同時に受信を行い常に節電モードへ入ります125
GGO-未使用--
GGG子機:間欠10秒10秒おきに入力状態を親機へ送信するほか、受信を無効化して常に節電モードへ入ります127

O:未接続(OPEN)、G:GNDへ接続

初期状態は子機:連続モードです。

モードによって端末を識別するための論理デバイスID(LID)の初期値は異なります。

親機

連続モード

親機:連続モード

信号入力の変化を検知したとき、また1秒おきに、すべての子機へデータを送信します。

また子機から送信されるデータを常時待機しており、反応がよいものの、常に電力を消費します。

  • 受信:常に待機
  • 送信:入力変化時/1秒おき

子機

連続モード

子機:連続モード

信号入力の変化を検知したとき、また1秒おきに、すべての親機へデータを送信します。

また親機から送信されるデータを常時待機しており、反応がよいものの、常に電力を消費します。

親機との通信のイメージ

親機との通信のイメージ

  • 受信:常に待機
  • 送信:入力変化時/1秒おき

子機:連続0.03秒モード

子機:連続モードの定期送信の間隔は1秒ですが、これを0.03秒に短縮するモードです。

親機から送信されるデータを常時待機しているものの、子機から親機への通信で帯域を占有してしまうため、親機の入力に対する反応は鈍くなってしまいます。常に電力を消費します。

親機との通信のイメージ

親機との通信のイメージ

  • 受信:常に待機
  • 送信:入力変化時/0.03秒おき

間欠モード

子機:間欠1秒モード

信号入力の変化を検知したとき、また1秒おきに節電モードを解除し、すべての親機へデータを送信します。

受信機能を無効とするため、親機の制御を受けることはできません。省電力性能に優れたモードです。

親機との通信のイメージ

親機との通信のイメージ

  • 受信:無効
  • 送信:入力変化時/1秒おき

子機:間欠10秒モード

信号入力の変化を検知したとき、また10秒おきに節電モードを解除し、すべての親機へデータを送信します。

受信機能を無効とするため、親機の制御を受けることはできません。省電力性能に優れたモードです。

親機との通信のイメージ

親機との通信のイメージ

  • 受信:無効
  • 送信:入力変化時/10秒おき

子機:間欠受信1秒モード

信号入力の変化を検知したとき、また1秒おきに節電モードを解除し、すべての親機へデータを送信します。

1秒おきに受信処理も合わせて行います。省電力性能に優れていますが、子機:間欠1秒モードには劣ります。

親機との通信のイメージ

親機との通信のイメージ

  • 受信:1秒おき
  • 送信:入力変化時/1秒おき

中継機

連続モード

中継機:連続モード

中継機は、受信したパケットを送信します。

親機と子機の間に3つまで設置できますが、中継機を増やすとパケットの数が増大するため、干渉しやすくなることに注意してください。

中継のイメージ

中継のイメージ

  • 受信:常に待機
  • 送信:受信時

3 - 超簡単!標準アプリの代替ボーレート設定

UART 通信に使用するボーレート設定の変更
超簡単!標準アプリ(App_Twelite)はデフォルトで 115200 bps のボーレートを UART 通信に使用しますが、これを変更できます。

代替ボーレート設定の有効化

BPS ピンを GND へ接続することで、代替ボーレート設定を有効化できます。

BPS内容ボーレート備考
Oデフォルト115200bps
G上書き設定38400bps変更

O:未接続(OPEN)、G:GNDへ接続

4 - 超簡単!標準アプリのUART機能

UART機能で利用するデータ形式
超簡単!標準アプリ(App_Twelite)の UART 機能で使用するデータ形式を解説します。

デジタル・アナログ入出力

0x81:相手端末からの状態通知

受信した入力信号の状態を出力します。

データ形式

#データ内容備考
charヘッダ:のみ
0uint8送信元の論理デバイスID
1uint8コマンド番号0x81のみ
2uint8パケット識別子アプリケーションIDより生成
3uint8プロトコルバージョン0x01のみ
4uint8LQI0-255
5uint32送信元のシリアルID0x8???????
9uint8送信先の論理デバイスID
10uint16タイムスタンプ1秒で64カウント
12uint8中継回数
13uint16電源電圧単位はmV
15int8-(未使用)
16uint8デジタル信号LSBから順にDIxへ対応、0がHigh
MSBが1なら定期送信
17uint8デジタル信号マスクLSBから順にDIxへ対応、1が有効
18uint8AI1の変換値アナログ信号の計算を参照、0xFFで未使用
19uint8AI2の変換値アナログ信号の計算を参照、0xFFで未使用
20uint8AI3の変換値アナログ信号の計算を参照、0xFFで未使用
21uint8AI4の変換値アナログ信号の計算を参照、0xFFで未使用
22uint8AIxの補正値LSBから2ビットずつ順にAIxへ対応
uint8チェックサムLRC8
charフッタCR (0x0D/'\r')
charフッタLF (0x0A/'\n')

アナログ信号の計算

AIxの入力電圧 \(V\)は、受信した変換値\(e_{r}\)および補正値\(e_{fr}\)を使って次のように表すことができます。

$$\begin{align*} V &= e+e_f \\ \text{where} \\ e &= 16e_r \\ e_f &= 4e_{fr} \\ \end{align*}$$

単位は mV

出力データの例

:78811501C98201015A000391000C2E00810301FFFFFFFFFB

0x80:相手端末の出力変更

相手端末の出力信号を制御します。

データ形式

#データ内容備考
charヘッダ:のみ
0uint8送信先の論理デバイスID親機0x00,子機0x01-0x64,全子機0x78
1uint8コマンド番号0x80のみ
2uint8書式バージョン0x01のみ
3uint8デジタル信号LSBからDOxに対応、0でHigh
4uint8デジタル信号マスクLSBからDOxに対応、1で有効
5uint16PWM1信号0-1024,0xFFFFで無効
7uint16PWM2信号0-1024,0xFFFFで無効
9uint16PWM3信号0-1024,0xFFFFで無効
11uint16PWM4信号0-1024,0xFFFFで無効
uint8チェックサムLRC8
charフッタCR (0x0D/'\r')
charフッタLF (0x0A/'\n')

UART 入出力

0x01:任意のデータの送信

データ形式

#データ内容備考
charヘッダ:のみ
0uint8送信先の論理デバイスID親機0x00,子機0x01-0x64,全子機0x78
1uint8コマンド番号0x01のみ
2[uint8]任意のデータ長さ\(N\)のバイト列(\(N\leqq80\)を推奨)
uint8チェックサムLRC8
charフッタCR (0x0D/'\r')
charフッタLF (0x0A/'\n')

0x01:任意のデータの受信

データ形式

#データ内容備考
charヘッダ:のみ
0uint8送信元の論理デバイスID親機0x00,子機0x01-0x64,未設定子機0x78
1uint8コマンド番号0x01のみ
2[uint8]任意のデータ長さ\(N\)のバイト列
uint8チェックサムLRC8
charフッタCR (0x0D/'\r')
charフッタLF (0x0A/'\n')

I2C 入出力

0x88:I2C 入力

データ形式

#データ内容備考
charヘッダ:のみ
0uint8送信先の論理デバイスID親機0x00,子機0-0x7F,全子機0x78,自身0xDB
1uint8パケット識別子0x88のみ
2uint8応答番号応答メッセージへ出力する番号
3uint8コマンド番号書き込み0x1,読み出し0x2,読み書き0x4
4uint8I2Cアドレス7ビット
5uint8I2Cコマンド最初のコマンドバイト
6uint8データサイズ0はなし
7[uint8]データ長さ\(N\)のバイト列
uint8チェックサムLRC8
charフッタCR (0x0D/'\r')
charフッタLF (0x0A/'\n')

0x89:I2C 出力

データ形式

#データ内容備考
charヘッダ:のみ
0uint8送信元の論理デバイスID親機0x00,子機0-0x7F,全子機0x78,自身0xDB
1uint8パケット識別子0x89のみ
2uint8応答番号応答メッセージへ出力する番号
3uint8コマンド番号書き込み0x1,読み出し0x2,読み書き0x4
4uint8結果失敗0、成功1
5uint8データサイズ0はなし
6[uint8]データ長さ\(N\)のバイト列
uint8チェックサムLRC8
charフッタCR (0x0D/'\r')
charフッタLF (0x0A/'\n')

5 - インタラクティブモード(超簡単!標準アプリ)

インタラクティブモードによる詳細な設定変更
インタラクティブモードでアプリの詳細設定を行うことができます。

ここでは超簡単!標準アプリ(App_Twelite)に固有の機能を説明します。共通機能については、TWELITE APPS マニュアル のトップページを参照してください。

表示例

次のような画面を表示します。

--- CONFIG/TWELITE APP V1-01-1/SID=0x8201001f/LID=0x78 ---
 a: set Application ID (0x67720102)
 i: set Device ID (--)
 c: set Channels (18)
 x: set Tx Power (03)
 t: set mode4 sleep dur (1000ms)
 y: set mode7 sleep dur (10s)
 f: set mode3 fps (32)
 z: set PWM HZ (1000,1000,1000,1000)
 o: set Option Bits (0x00000000)
 b: set UART baud (38400)
 p: set UART parity (N)
---
 S: save Configuration
 R: reset to Defaults

コマンド

設定項目初期値備考
aアプリケーションID0x6772010232bit
i論理デバイスID自動子機1-100,親機121,中継機122
c周波数チャネル1811-26
x再送回数と送信出力03
再送回数01-9回、0は初期値の2回、Fは無効
送信出力30-3
t子機間欠1秒モードの間隔1000100-10000ms
y子機間欠10秒モードの間隔102-10000s
f子機連続0.03秒モードのサイクル324/8/16/32回毎秒
zPWMxの周波数10001-64000Hz、カンマ区切りで個別設定
oオプションビット0x00000000その他の詳細設定
bUART代替ボーレート38400BPSピンで有効化
pUARTパリティN8-(N/O/E)-1

各コマンドの詳細を次に示します。

a:アプリケーションID

通信を行う端末はすべて同一の値とします。論理的にネットワークを分離します。

i:論理デバイスID

複数の子機を識別する必要がある場合に設定します。

子機の場合は1-100の任意の値へ、親機の場合は121へ、中継機の場合は122へ設定してください。

c:周波数チャネル

通信を行う端末はすべて同一の値とします。物理的にネットワークを分離します。

x:送信出力と再送回数

電波の送信出力と、パケットを追加で送信する回数を指定します。

t:子機間欠1秒モードの間隔

子機間欠1秒モードの間欠時間を1秒から他の値へ上書きします。単位はミリ秒です。

0を設定した場合は、タイマによる定期的な起床を無効化します。このときDIxの立ち下がりエッジにより起床しますが、立ち上がりエッジでは起床しません。

y:子機間欠10秒モードの間隔

子機間欠10秒モードの間欠時間を10秒から他の値へ上書きします。単位は秒です。

0を設定した場合は、タイマによる定期的な起床を無効化します。このときDIxの立ち下がりエッジにより起床しますが、立ち上がりエッジでは起床しません。

f:子機連続0.03秒モードのサイクル

毎秒の送信リクエストの数を32回から4/8/16回へ上書きします。再送回数は含みません。

zPWMxの周波数

値を一つ指定した場合は、すべてのPWMポートの周波数を上書きします。カンマ区切りで指定した場合は、PWM1-PWM4に個別の値を上書きできます。

o:オプションビット

32bit の数値を指定します。各ビットに紐付いた設定を有効化できます。

対象ビット設定項目初期送信受信連続間欠
0x00000001低レイテンシモード0️⃣
0x00000002定期送信の無効化0️⃣
0x00000004定期送信とUART出力の無効化0️⃣
0x00000010AIxの変化による送信の無効化0️⃣
0x00000020AIxの値の無効化0️⃣
0x00000040PWMxの計算式を変更0️⃣
0x00000100ボタン押下時のみ送信0️⃣
0x00000800DIxの内部プルアップを停止0️⃣
0x00008000子機へ中継機能を付与0️⃣
0x00001000子機中継時の最大中継段数を2とする0️⃣
0x00002000子機中継時の最大中継段数を3とする0️⃣
0x00010000PWMxの波形を反転0️⃣
0x00020000起動後PWMxを落とす0️⃣
0x00080000代替ポート割り当て0️⃣
0x00100000起動後2秒間DOxを落とす0️⃣
0x00400000DOxの出力を反転0️⃣
0x00800000DOxの内部プルアップを停止0️⃣

b:UART代替ボーレート

BPSピンをGNDへ接続して起動した場合に選択される代替ボーレートを38400bpsから上書きします。

値は9600/19200/38400/57600/115200/230400から選択できます。他の値を指定すると、誤差が生じる可能性があります。

p:UARTパリティ

Nはパリティ無し、Oは奇数、E:は偶数を示します。

データビットは8、ストップビットは1で固定されます。ハードウェアフローは設定できません。

オプションビットの詳細

オプションビットの値の各ビットに紐付いた設定を解説します。

00000001:低レイテンシモード

低レイテンシモードは、DIxの変化を検知してから速やかに送信を行うことで、受信側の遅延を短縮します。

00000002:定期送信の無効化

連続モードにおける1秒おきの定期送信を無効化します。

00000004:定期送信とUART出力の無効化

子機:連続モードにおける1秒おきの定期送信を無効化するほか、受信データのUART出力を停止します。

00000010AIxの変化による送信の無効化

子機:連続モードにおいて、AIxの入力が変化した際の送信を無効化します。

開放されたAIxポートは不定の値を報告するため、正気状態でアナログ入力を利用しない場合はVCCへ接続する必要があります。このオプションを設定すると、VCCへの接続を省略できます。

00000020AIxの値の無効化

ADCの計測値を使用せず、未使用ポート(0xFFFF)扱いとしてパケットを送信します

00000040PWMxの計算式を変更

初期状態ではボリューム用に調節した出力を PWMx へ適用します。

このオプションはこれを無効化し、1.8V 以下の入力に対してフルスケールの出力を行います。

00000100:ボタン押下時のみ送信

DIxの入力が Low であるときにパケットを連続送信します。

例えば、モータを遠隔制御する際に利用します。リモコンのボタンを押している間にモータを回転させ、電波が途切れた場合に停止させることができます。

00000800DIxの内部プルアップを停止

DIxの内部プルアップ(約50kΩ)をすべて停止します。

00008000:子機へ中継機能を付与

子機:連続モードにおいて中継機能を付与します。最大中継段数は1です。

00001000:子機中継時の最大中継段数を2とする

00008000:子機へ中継機能を付与の設定時に、最大中継段数を2へ変更します。

00002000:子機中継時の最大中継段数を3とする

00008000:子機へ中継機能を付与の設定時に、最大中継段数を3へ変更します。

00010000PWMxの波形を反転

PWMxの出力波形を反転します。

AIxへ最大値を入力すると PWMxは Low となります。

00020000:起動後PWMxを落とす

起動後またはリセット後にPWMxの出力を Low 状態とします。

00080000:代替ポート割り当て

代替ポート割り当てを有効化します。

PWM2/PWM3へトランジスタ等を接続すると、動作が不安定となる場合があります(詳細)そうした場合に利用してください。

00100000:起動後2秒間DOxを落とす

起動後またはリセット後にDOxを2秒間 Low 状態とします。

DOx へ接続した LED を起動時に点灯させることができます。

00400000DOxの出力を反転

DOxの出力を反転します。

初期状態とは異なり、片方の DI が Low レベルになると、もう片方の DO も Low レベルとなります。

00800000DOxの内部プルアップを停止

DOxの内部プルアップ(約50kΩ)をすべて停止します。