資料の取り扱いについてをご覧ください。
お気付きの点がございましたら、当社サポート窓口へお問い合わせください。
ダウンロード
超簡単!標準アプリ(App_Twelite
)を導入するには TWELITE STAGE SDK をインストールして、TWELITE STAGE アプリを使って書き換えてください。
セクションの複数ページをまとめています。 印刷またはPDF形式で保存...
資料の取り扱いについてをご覧ください。
お気付きの点がございましたら、当社サポート窓口へお問い合わせください。
超簡単!標準アプリ(App_Twelite
)を導入するには TWELITE STAGE SDK をインストールして、TWELITE STAGE アプリを使って書き換えてください。
ピン名 | 機能 |
---|---|
VCC GND | 電源入力 |
DIx AIx | デジタル・アナログ入力 |
DOx PWMx | デジタル・アナログ出力 |
TX RX | UART |
SCL SDA | I2C |
Mx BPS | 設定入力 |
RST | リセット入力 |
x
は任意の数字を表します。例えば、M1
M2
M3
の総称を Mx
と表しています。VCC
/GND
には、3.3V(2.3-3.6V)の電源を接続します。
DIx
/DOx
, AIx
/PWMx
ピンは、対応する番号のピンが同期して信号伝送を行います。
デジタル | アナログ |
---|---|
DIx の入力→DOx の出力 | AIx の入力→PWMx の出力 |
超簡単!標準アプリでは、アナログ入力の電圧範囲を 0-2V としています。
VCC
へ接続するなど、2V以上の電圧を入力した際は未使用扱いとなります。
TX
/RX
は、UART 通信の送信と受信に使用します。具体的には、次のような場面で使用します。
SCL
/SDA
ピンは、I2C のターゲットデバイスを接続する際に使用します。
Mx
ピンを未接続またはGND
へ接続することで、親機、子機、中継機といった動作モードを切り替えることができます。
BPS
ピンを未接続またはGND
へ接続することで、UART のボーレート(通信速度)を 115200bps 以外の値へ変更できます。
リセット入力ピン RST
と GND
との間にプッシュボタンを接続することで、リセットボタンを実装できます。RST
は内部プルアップされています。
各モードは、Mx
ピンを未接続または GND
へ接続することで設定します。
M3 | M2 | M1 | モード | 機能 | 省電力 | LID |
---|---|---|---|---|---|---|
O | O | O | 子機: | 入力状態を親機へ | 120 | |
O | O | G | 親機: | 入力状態を子機へ | 0 | |
O | G | O | 中継機: | 122 | ||
O | G | G | 子機: | 頻繁に入力状態を親機へ | 123 | |
G | O | O | 子機: | 1秒おきに入力状態を親機へ | ✅ | 124 |
G | O | G | 子機: | 1秒おきに入力状態を親機へ | ✅ | 125 |
G | G | O | - | 未使用 | - | - |
G | G | G | 子機: | 10秒おきに入力状態を親機へ | ✅ | 127 |
O:未接続(OPEN)、G:
GND
へ接続
初期状態は子機:連続モードです。
モードによって端末を識別するための論理デバイスID(LID)の初期値は異なります。
親機または中継機モードに限り、インタラクティブモードで切り替えできます。
親機は121
、中継機は122
としてください。
AIx
ポートの扱い子機:連続/子機:連続0.03秒/親機:連続 モードでは、未使用の AIx
ポートを VCC
へ接続してください。
未使用の AIx
ポートは不定の値を報告します。これらのモードは入力信号に変化が生じた際にデータ送信を行いますから、不要なデータ送信を引き起こす場合があります。
信号入力の変化を検知したとき、また1秒おきに、すべての子機へデータを送信します。
また子機から送信されるデータを常時待機しており、反応がよいものの、常に電力を消費します。
0x00000002
を設定することで、1秒おきの定期送信を無効化できます。信号入力の変化を検知したとき、また1秒おきに、すべての親機へデータを送信します。
また親機から送信されるデータを常時待機しており、反応がよいものの、常に電力を消費します。
0x00000002
を設定することで、1秒おきの定期送信を無効化できます。子機:連続モードの定期送信の間隔は1秒ですが、これを0.03秒に短縮するモードです。
親機から送信されるデータを常時待機しているものの、子機から親機への通信で帯域を占有してしまうため、親機の入力に対する反応は鈍くなってしまいます。常に電力を消費します。
信号入力の変化を検知したとき、また1秒おきに節電モードを解除し、すべての親機へデータを送信します。
受信機能を無効とするため、親機の制御を受けることはできません。省電力性能に優れたモードです。
信号入力の変化を検知したとき、また10秒おきに節電モードを解除し、すべての親機へデータを送信します。
受信機能を無効とするため、親機の制御を受けることはできません。省電力性能に優れたモードです。
信号入力の変化を検知したとき、また1秒おきに節電モードを解除し、すべての親機へデータを送信します。
1秒おきに受信処理も合わせて行います。省電力性能に優れていますが、子機:間欠1秒モードには劣ります。
中継機は、受信したパケットを送信します。
親機と子機の間に3つまで設置できますが、中継機を増やすとパケットの数が増大するため、干渉しやすくなることに注意してください。
0x00008000
を指定してください。BPS
ピンを GND
へ接続することで、代替ボーレート設定を有効化できます。
BPS | 内容 | ボーレート | 備考 |
---|---|---|---|
O | デフォルト | 115200bps | |
G | 上書き設定 | 38400bps | 変更可 |
O:未接続(OPEN)、G:
GND
へ接続
BPS
ピンが GND
に接続されていないと、インタラクティブモードの設定値は適用されません。0x81
:相手端末からの状態通知受信した入力信号の状態を出力します。
# | データ | 内容 | 備考 |
---|---|---|---|
char | ヘッダ | : のみ | |
0 | uint8 | 送信元の論理デバイスID | |
1 | uint8 | コマンド番号 | 0x81 のみ |
2 | uint8 | パケット識別子 | アプリケーションIDより生成 |
3 | uint8 | プロトコルバージョン | 0x01 のみ |
4 | uint8 | LQI | 0 -255 |
5 | uint32 | 送信元のシリアルID | 0x8??????? |
9 | uint8 | 送信先の論理デバイスID | |
10 | uint16 | タイムスタンプ | 1秒で64カウント |
12 | uint8 | 中継回数 | |
13 | uint16 | 電源電圧 | 単位はmV |
15 | int8 | - | (未使用) |
16 | uint8 | デジタル信号 | LSBから順にDIx へ対応、0 がHighMSBが 1 なら定期送信 |
17 | uint8 | デジタル信号マスク | LSBから順にDIx へ対応、1 が有効 |
18 | uint8 | AI1 の変換値 | アナログ信号の計算を参照、0xFF で未使用 |
19 | uint8 | AI2 の変換値 | アナログ信号の計算を参照、0xFF で未使用 |
20 | uint8 | AI3 の変換値 | アナログ信号の計算を参照、0xFF で未使用 |
21 | uint8 | AI4 の変換値 | アナログ信号の計算を参照、0xFF で未使用 |
22 | uint8 | AIx の補正値 | LSBから2ビットずつ順にAIx へ対応 |
uint8 | チェックサム | LRC8 | |
char | フッタ | CR (0x0D /'\r' ) | |
char | フッタ | LF (0x0A /'\n' ) |
AIx
の入力電圧 \(V\)は、受信した変換値\(e_{r}\)および補正値\(e_{fr}\)を使って次のように表すことができます。
単位は mV
:78811501C98201015A000391000C2E00810301FFFFFFFFFB
# | データ | 内容 | 値 | |
---|---|---|---|---|
: | char | ヘッダ | : | |
78 | 0 | uint8 | 送信元の論理デバイスID | 0x78 |
81 | 1 | uint8 | コマンド番号 | 0x81 |
15 | 2 | uint8 | パケット識別子 | 0x15 |
01 | 3 | uint8 | プロトコルバージョン | 0x01 |
C9 | 4 | uint8 | LQI | 201/255 |
8201015A | 5 | uint32 | 送信元のシリアルID | 0x201015A |
00 | 9 | uint8 | 送信先の論理デバイスID | 0x00 |
0391 | 10 | uint16 | タイムスタンプ | 約14.27 秒 |
00 | 12 | uint8 | 中継回数 | 0 |
0C2E | 13 | uint16 | 電源電圧 | 3118 mV |
00 | 15 | int8 | - | |
81 | 16 | uint8 | デジタル信号 | DI1 L DI2 H DI3 H DI4 H (定期送信) |
03 | 17 | uint8 | デジタル信号マスク | DI1 DI2 |
01 | 18 | uint8 | AI1 の変換値 | 16 mV |
FF | 19 | uint8 | AI2 の変換値 | 未使用 |
FF | 20 | uint8 | AI3 の変換値 | 未使用 |
FF | 21 | uint8 | AI4 の変換値 | 未使用 |
FF | 22 | uint8 | AIx の補正値 | AI1 0x03 |
FB | uint8 | チェックサム | 0xFB | |
char | フッタ | \r | ||
char | フッタ | \n |
0x80
:相手端末の出力変更相手端末の出力信号を制御します。
# | データ | 内容 | 備考 |
---|---|---|---|
char | ヘッダ | : のみ | |
0 | uint8 | 送信先の論理デバイスID | 親機0x00 ,子機0x01 -0x64 ,全子機0x78 |
1 | uint8 | コマンド番号 | 0x80 のみ |
2 | uint8 | 書式バージョン | 0x01 のみ |
3 | uint8 | デジタル信号 | LSBからDOx に対応、0 でHigh |
4 | uint8 | デジタル信号マスク | LSBからDOx に対応、1 で有効 |
5 | uint16 | PWM1 信号 | 0 -1024 ,0xFFFF で無効 |
7 | uint16 | PWM2 信号 | 0 -1024 ,0xFFFF で無効 |
9 | uint16 | PWM3 信号 | 0 -1024 ,0xFFFF で無効 |
11 | uint16 | PWM4 信号 | 0 -1024 ,0xFFFF で無効 |
uint8 | チェックサム | LRC8 | |
char | フッタ | CR (0x0D /'\r' ) | |
char | フッタ | LF (0x0A /'\n' ) |
0x01
:任意のデータの送信# | データ | 内容 | 備考 |
---|---|---|---|
char | ヘッダ | : のみ | |
0 | uint8 | 送信先の論理デバイスID | 親機0x00 ,子機0x01 -0x64 ,全子機0x78 |
1 | uint8 | コマンド番号 | 0x01 のみ |
2 | [uint8] | 任意のデータ | 長さ\(N\)のバイト列(\(N\leqq80\)を推奨) |
uint8 | チェックサム | LRC8 | |
char | フッタ | CR (0x0D /'\r' ) | |
char | フッタ | LF (0x0A /'\n' ) |
0x01
を指定する場合と同様です。0x01
:任意のデータの受信# | データ | 内容 | 備考 |
---|---|---|---|
char | ヘッダ | : のみ | |
0 | uint8 | 送信元の論理デバイスID | 親機0x00 ,子機0x01 -0x64 ,未設定子機0x78 |
1 | uint8 | コマンド番号 | 0x01 のみ |
2 | [uint8] | 任意のデータ | 長さ\(N\)のバイト列 |
uint8 | チェックサム | LRC8 | |
char | フッタ | CR (0x0D /'\r' ) | |
char | フッタ | LF (0x0A /'\n' ) |
0x01
であった場合と同様です。0x88
:I2C 入力# | データ | 内容 | 備考 |
---|---|---|---|
char | ヘッダ | : のみ | |
0 | uint8 | 送信先の論理デバイスID | 親機0x00 ,子機0 -0x7F ,全子機0x78 ,自身0xDB |
1 | uint8 | パケット識別子 | 0x88 のみ |
2 | uint8 | 応答番号 | 応答メッセージへ出力する番号 |
3 | uint8 | コマンド番号 | 書き込み0x1 ,読み出し0x2 ,読み書き0x4 |
4 | uint8 | I2Cアドレス | 7ビット |
5 | uint8 | I2Cコマンド | 最初のコマンドバイト |
6 | uint8 | データサイズ | 0 はなし |
7 | [uint8] | データ | 長さ\(N\)のバイト列 |
uint8 | チェックサム | LRC8 | |
char | フッタ | CR (0x0D /'\r' ) | |
char | フッタ | LF (0x0A /'\n' ) |
0x4
では、データサイズに読み出すデータのサイズを指定したうえで、データを省略してください。指定されたI2Cコマンドを書き込み、データサイズの分だけ読み出しを行います。0x89
:I2C 出力# | データ | 内容 | 備考 |
---|---|---|---|
char | ヘッダ | : のみ | |
0 | uint8 | 送信元の論理デバイスID | 親機0x00 ,子機0 -0x7F ,全子機0x78 ,自身0xDB |
1 | uint8 | パケット識別子 | 0x89 のみ |
2 | uint8 | 応答番号 | 応答メッセージへ出力する番号 |
3 | uint8 | コマンド番号 | 書き込み0x1 ,読み出し0x2 ,読み書き0x4 |
4 | uint8 | 結果 | 失敗0 、成功1 |
5 | uint8 | データサイズ | 0 はなし |
6 | [uint8] | データ | 長さ\(N\)のバイト列 |
uint8 | チェックサム | LRC8 | |
char | フッタ | CR (0x0D /'\r' ) | |
char | フッタ | LF (0x0A /'\n' ) |
ここでは超簡単!標準アプリ(App_Twelite)に固有の機能を説明します。共通機能については、TWELITE APPS マニュアル のトップページを参照してください。
TWELITE がスリープしている間はインタラクティブモードを使用できません。
Mx
ピンの設定を子機連続モードあるいは親機・中継機モードとしてください。
次のような画面を表示します。
--- 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 | アプリケーションID | 0x67720102 | 32bit |
i | 論理デバイスID | 自動 | 子機1 -100 ,親機121 ,中継機122 |
c | 周波数チャネル | 18 | 11 -26 |
x | 再送回数と送信出力 | 03 | |
再送回数 | 0 | 1 -9 回、0 は初期値の2回、F は無効 | |
送信出力 | 3 | 0 -3 | |
t | 子機間欠1秒モードの間隔 | 1000 | 100 -10000 ms |
y | 子機間欠10秒モードの間隔 | 10 | 2 -10000 s |
f | 子機連続0.03秒モードのサイクル | 32 | 4 /8 /16 /32 回毎秒 |
z | PWMx の周波数 | 1000 | 1 -64000 Hz、カンマ区切りで個別設定 |
o | オプションビット | 0x00000000 | その他の詳細設定 |
b | UART代替ボーレート | 38400 | BPS ピンで有効化 |
p | UARTパリティ | N | 8-(N /O /E )-1 |
各コマンドの詳細を次に示します。
a
:アプリケーションID通信を行う端末はすべて同一の値とします。論理的にネットワークを分離します。
i
:論理デバイスID複数の子機を識別する必要がある場合に設定します。
子機の場合は1
-100
の任意の値へ、親機の場合は121
へ、中継機の場合は122
へ設定してください。
121
または122
へ設定すると、親機または中継機モードへ切り替えできます。このときMx
ピンの設定は必要ありません。超簡単!標準アプリでは、動作モードによって論理デバイスIDの初期値が異なります。
c
:周波数チャネル通信を行う端末はすべて同一の値とします。物理的にネットワークを分離します。
x
:送信出力と再送回数電波の送信出力と、パケットを追加で送信する回数を指定します。
t
:子機間欠1秒モードの間隔子機間欠1秒モードの間欠時間を1秒から他の値へ上書きします。単位はミリ秒です。
0
を設定した場合は、タイマによる定期的な起床を無効化します。このときDIx
の立ち下がりエッジにより起床しますが、立ち上がりエッジでは起床しません。
y
:子機間欠10秒モードの間隔子機間欠10秒モードの間欠時間を10秒から他の値へ上書きします。単位は秒です。
0
を設定した場合は、タイマによる定期的な起床を無効化します。このときDIx
の立ち下がりエッジにより起床しますが、立ち上がりエッジでは起床しません。
f
:子機連続0.03秒モードのサイクル毎秒の送信リクエストの数を32回から4
/8
/16
回へ上書きします。再送回数は含みません。
z
:PWMx
の周波数値を一つ指定した場合は、すべてのPWMポートの周波数を上書きします。カンマ区切りで指定した場合は、PWM1
-PWM4
に個別の値を上書きできます。
o
:オプションビット32bit の数値を指定します。各ビットに紐付いた設定を有効化できます。
対象ビット | 設定項目 | 初期 | 送信 | 受信 | 連続 | 間欠 |
---|---|---|---|---|---|---|
0x00000001 | 低レイテンシモード | 0️⃣ | ✅ | ✅ | ✅ | |
0x00000002 | 定期送信の無効化 | 0️⃣ | ✅ | ✅ | ||
0x00000004 | 定期送信とUART出力の無効化 | 0️⃣ | ✅ | ✅ | ||
0x00000010 | AIx の変化による送信の無効化 | 0️⃣ | ✅ | ✅ | ||
0x00000020 | AIx の値の無効化 | 0️⃣ | ✅ | ✅ | ✅ | |
0x00000040 | PWMx の計算式を変更 | 0️⃣ | ✅ | ✅ | ✅ | |
0x00000100 | ボタン押下時のみ送信 | 0️⃣ | ✅ | ✅ | ✅ | |
0x00000800 | DIx の内部プルアップを停止 | 0️⃣ | ✅ | ✅ | ✅ | |
0x00008000 | 子機へ中継機能を付与 | 0️⃣ | ✅ | ✅ | ✅ | |
0x00001000 | 子機中継時の最大中継段数を2とする | 0️⃣ | ✅ | ✅ | ✅ | |
0x00002000 | 子機中継時の最大中継段数を3とする | 0️⃣ | ✅ | ✅ | ✅ | |
0x00010000 | PWMx の波形を反転 | 0️⃣ | ✅ | ✅ | ||
0x00020000 | 起動後PWMx を落とす | 0️⃣ | ✅ | ✅ | ||
0x00080000 | 代替ポート割り当て | 0️⃣ | ✅ | ✅ | ✅ | ✅ |
0x00100000 | 起動後2秒間DOx を落とす | 0️⃣ | ✅ | ✅ | ||
0x00400000 | DOx の出力を反転 | 0️⃣ | ✅ | ✅ | ✅ | |
0x00800000 | DOx の内部プルアップを停止 | 0️⃣ | ✅ | ✅ | ✅ |
b
:UART代替ボーレートBPS
ピンをGND
へ接続して起動した場合に選択される代替ボーレートを38400
bpsから上書きします。
値は9600
/19200
/38400
/57600
/115200
/230400
から選択できます。他の値を指定すると、誤差が生じる可能性があります。
BPS
ピンを開放して起動した場合、この設定は適用されません。115200
bpsに固定されます。
ボーレート変更によってインタラクティブモードが使用できない事態を防ぐための仕様です。
p
:UARTパリティN
はパリティ無し、O
は奇数、E
:は偶数を示します。
データビットは8、ストップビットは1で固定されます。ハードウェアフローは設定できません。
オプションビットの値の各ビットに紐付いた設定を解説します。
00000001
:低レイテンシモード低レイテンシモードは、DIx
の変化を検知してから速やかに送信を行うことで、受信側の遅延を短縮します。
初期状態ではDIx
がDOx
へ反映されるまでに30-70ms程度の遅延が生じます。低レイテンシモードでは、チャタリングや無線パケットの干渉を避けるための処理を簡略化することで、遅延を3-10ms程度に短縮します。
DIx
の立ち下がりの場合に約3-5ms、立ち上がりの場合に約10msです00000002
:定期送信の無効化連続モードにおける1秒おきの定期送信を無効化します。
00000004
:定期送信とUART出力の無効化子機:連続モードにおける1秒おきの定期送信を無効化するほか、受信データのUART出力を停止します。
00000010
:AIx
の変化による送信の無効化子機:連続モードにおいて、AIx
の入力が変化した際の送信を無効化します。
開放されたAIx
ポートは不定の値を報告するため、正気状態でアナログ入力を利用しない場合はVCC
へ接続する必要があります。このオプションを設定すると、VCC
への接続を省略できます。
00000020
:AIx
の値の無効化ADCの計測値を使用せず、未使用ポート(0xFFFF
)扱いとしてパケットを送信します
00000040
:PWMx
の計算式を変更初期状態ではボリューム用に調節した出力を PWMx
へ適用します。
このオプションはこれを無効化し、1.8V 以下の入力に対してフルスケールの出力を行います。
デューティ比 \(duty\)は、入力電圧\(V_{input}\)と電源電圧\(V_{cc}\)を使って、(1) のように表すことができます。
このオプションを有効化すると、代わりに (2) を適用します。
なお、2.0V 以上の入力は未使用扱いとなります。
00000100
:ボタン押下時のみ送信DIx
の入力が Low であるときにパケットを連続送信します。
例えば、モータを遠隔制御する際に利用します。リモコンのボタンを押している間にモータを回転させ、電波が途切れた場合に停止させることができます。
DIx
のいずれかが Low のときは、1秒につき32回送信しますDIx
のすべてが High へ遷移してから1秒間は引き続き32回送信しますDOx
のいずれかが Low へ遷移してから0.5秒間パケットを受信しなかった場合は、DOx
をすべて High へ戻します。PWMx
は保持します00000800
:DIx
の内部プルアップを停止DIx
の内部プルアップ(約50kΩ)をすべて停止します。
00008000
:子機へ中継機能を付与子機:連続モードにおいて中継機能を付与します。最大中継段数は1です。
00001000
:子機中継時の最大中継段数を2とする00008000
:子機へ中継機能を付与の設定時に、最大中継段数を2へ変更します。
00002000
:子機中継時の最大中継段数を3とする00008000
:子機へ中継機能を付与の設定時に、最大中継段数を3へ変更します。
00010000
:PWMx
の波形を反転PWMx
の出力波形を反転します。
AIx
へ最大値を入力すると PWMx
は Low となります。
00020000
:起動後PWMx
を落とす起動後またはリセット後にPWMx
の出力を Low 状態とします。
00080000
:代替ポート割り当て代替ポート割り当てを有効化します。
PWM2
/PWM3
へトランジスタ等を接続すると、動作が不安定となる場合があります(詳細)そうした場合に利用してください。
PWMx
の割り当て変更DI3
→PWM1
DI1
→PWM2
DI2
→PWM3
BPS
→PWM4
DIx
の割り当て変更PWM1
→DI1
PWM4
→DI2
SDA
→DI3
DI4
→DI4
(変更なし)BPS
の割り当て変更SCL
→BPS
SCL
/SDA
を無効化SCL
:なしSDA
:なし00100000
:起動後2秒間DOx
を落とす起動後またはリセット後にDOx
を2秒間 Low 状態とします。
DOx
へ接続した LED を起動時に点灯させることができます。
00400000
:DOx
の出力を反転DOx
の出力を反転します。
初期状態とは異なり、片方の DI が Low レベルになると、もう片方の DO も Low レベルとなります。
00800000
:DOx
の内部プルアップを停止DOx
の内部プルアップ(約50kΩ)をすべて停止します。