●PIC( マスター ) ⇔ VS−RCV3( スレーブ )間の電文
はじめに・・・ コントローラ( VS-C3 )からの操作( ボタン・スティック )情報を レシーバ( VS-RCV3 : VS-C3用受信モジュール )経由で取得する際に SPI通信に準じて、双方の間で、電文の送受信を行っています。
・SPI通信のインタフェース処理が実装できましたので ……… 電文について、整理することにしました。
・ ・ ・ ・ ・
●PICプログラムからのモード設定 コントローラ( VS-C3 )の操作設定は、2種類のモードがある。 @デジタルモード : ボタン情報が取得できる。 ・ボタン情報@【左側】エリア・【中央】エリア ・ボタン情報A【右側】エリア・【前側】エリア Aアナログモード : ボタン情報とステイック情報が取得できる。 ・ボタン情報@【左側】エリア・【中央】エリア ・ボタン情報A【右側】エリア・【前側】エリア ・ステイック情報@【右側】水平(左右)軸 ・ステイック情報A【右側】垂直(上下)軸 ・ステイック情報B【左側】水平(左右)軸 ・ステイック情報C【左側】垂直(上下)軸
・ ・ ・ ・ ・
●【 PIC → レシーバ 】 CMD(コマンド)発行電文 ・SPIマスタで作成するCMD電文を、SPIスレーブへ送信する。 ・SPIスレーブは、受信したCMD電文より動作を開始する。 -------------------------------------------------------------------------------- ■デジタルモード(5バイト) ・バイト1 : 80h ……… ヘッダー情報(1/3) ・バイト2 : 42h ……… ヘッダー情報(2/3) ・バイト3 : 00h ……… ヘッダー情報(3/3) ・バイト4 : 00h ……… NUL ・バイト5 : 00h ……… NUL -------------------------------------------------------------------------------- ■アナログモード(9バイト) ・バイト1 : 80h ……… ヘッダー情報(1/3) ・バイト2 : 42h ……… ヘッダー情報(2/3) ・バイト3 : 00h ……… ヘッダー情報(3/3) ・バイト4 : 00h ……… NUL ・バイト5 : 00h ……… NUL ・バイト6 : 00h ……… NUL ・バイト7 : 00h ……… NUL ・バイト8 : 00h ……… NUL ・バイト9 : 00h ……… NUL --------------------------------------------------------------------------------
・ ・ ・ ・ ・
●【 レシーバ → PIC 】 DAT(データ)応答電文 ・SPIスレーブで作成するDAT電文で、このDAT電文をSPIマスタへ送信する。 -------------------------------------------------------------------------------- ■デジタルモード(5バイト) ・バイト1 : FFh ……… ヘッダー情報(1/3) ・バイト2 : 82h ……… ヘッダー情報(2/3)デジタルモード(82) ・バイト3 : 5Ah ……… ヘッダー情報(3/3) ・バイト4 : −−− ……… ボタン情報@【左側】エリア・【中央】エリア ・バイト5 : −−− ……… ボタン情報A【右側】エリア・【前側】エリア -------------------------------------------------------------------------------- ■アナログモード(9バイト) ・バイト1 : FFh ……… ヘッダー情報(1/3) ・バイト2 : CEh ……… ヘッダー情報(2/3)アナログモード(CE) ・バイト3 : 5Ah ……… ヘッダー情報(3/3) ・バイト4 : −−− ……… ボタン情報@【左側】エリア・【中央】エリア ・バイト5 : −−− ……… ボタン情報A【右側】エリア・【前側】エリア ・バイト6 : −−− ……… ステイック情報@【右側】水平(左右)軸 ・バイト7 : −−− ……… ステイック情報A【右側】垂直(上下)軸 ・バイト8 : −−− ……… ステイック情報B【左側】水平(左右)軸 ・バイト9 : −−− ……… ステイック情報C【左側】垂直(上下)軸 --------------------------------------------------------------------------------
・ ・ ・ ・ ・
●PICプログラムからモード設定する基本的な電文の発行要領 ■基本電文@ ………【 デジタルモード 】で固定する。 1.コンフィギュレーションモード <入る>エンター(80) …… CMD電文(5バイト) 2.デジタルモード(00)固定 ……… セットモード&ロックコマンド(9バイト) 3.コンフィギュレーションモード <出る>イグジット(00) …… CMD電文(5バイト) ■基本電文A ………【 アナログモード 】で固定する。 1.コンフィギュレーションモード <入る>エンター(80) …… CMD電文(5バイト) 2.アナログモード(80)固定 ……… セットモード&ロックコマンド(9バイト) 3.コンフィギュレーションモード <出る>イグジット(00) …… CMD電文(9バイト)
・ ・ SPI通信(マスター)側の ・ ・ PICプログラムで取り扱う電文の基本形について ・
●デジタルモード(5バイト)電文 --------------------------------------------------------------------------------
●アナログモード(9バイト)電文 -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- --------------------------------------------------------------------------------
・ ・ SPI通信(マスター)側の ・ ・ PICプログラムからの電文設定について ・
●プログラムから設定する電文@ ………【 デジタルモード 】で固定する。 -------------------------------------------------------------------------------- 1.コンフィギュレーションモード <入る>エンター(80) …… CMD電文(5バイト) ・バイト1 : 80h …… ヘッダー情報(1/3) ・バイト2 : C2h …… ヘッダー情報(2/3) ・バイト3 : 00h …… ヘッダー情報(3/3) ・バイト4 : 80h …… コンフィギュレーションモード <入る>エンター(80) ・バイト5 : 00h …… NUL <応答 DAT電文> デジタルモード(5バイト) ・バイト1 : FFh …… ヘッダー情報(1/3) ・バイト2 : 82h …… ヘッダー情報(2/3)デジタルモード(82) ・バイト3 : 5Ah …… ヘッダー情報(3/3) ・バイト4 : −−− ・バイト5 : −−− -------------------------------------------------------------------------------- 2.デジタルモード(00)固定 ……… セットモード&ロックコマンド(9バイト) ・バイト1 : 80h …… ヘッダー情報(1/3) ・バイト2 : 22h …… ヘッダー情報(2/3) ・バイト3 : 00h …… ヘッダー情報(3/3) ・バイト4 : 00h …… デジタルモード(00) ・バイト5 : C0h …… モード固定、ボタンでの切替え不可(C0)、切替え可(以外) ・バイト6 : 00h …… NUL ・バイト7 : 00h …… NUL ・バイト8 : 00h …… NUL ・バイト9 : 00h …… NUL <応答 DAT電文> (9バイト) ・バイト1 : FFh …… ヘッダー情報(1/3) ・バイト2 : CFh …… ヘッダー情報(2/3) ・バイト3 : 5Ah …… ヘッダー情報(3/3) ・バイト4 : −−− ・バイト5 : −−− ・バイト6 : −−− ・バイト7 : −−− ・バイト8 : −−− ・バイト9 : −−− -------------------------------------------------------------------------------- 3.コンフィギュレーションモード <出る>イグジット(00) …… CMD電文(5バイト) ・バイト1 : 80h …… ヘッダー情報(1/3) ・バイト2 : C2h …… ヘッダー情報(2/3) ・バイト3 : 00h …… ヘッダー情報(3/3) ・バイト4 : 00h …… コンフィギュレーションモード <出る> イグジット(00) ・バイト5 : 00h …… NUL <応答 DAT電文> (5バイト) ・バイト1 : FFh …… ヘッダー情報(1/3) ・バイト2 : 82h …… ヘッダー情報(2/3)デジタルモード(82) ・バイト3 : 5Ah …… ヘッダー情報(3/3) ・バイト4 : −−− ・バイト5 : −−− --------------------------------------------------------------------------------
・ ・ ・ ・ ・
●プログラムから設定する電文A ………【 アナログモード 】で固定する。 -------------------------------------------------------------------------------- 1.コンフィギュレーションモード <入る>エンター(80) …… CMD電文(5バイト) ・バイト1 : 80h …… ヘッダー情報(1/3) ・バイト2 : C2h …… ヘッダー情報(2/3) ・バイト3 : 00h …… ヘッダー情報(3/3) ・バイト4 : 80h …… コンフィギュレーションモード <入る>エンター(80) ・バイト5 : 00h …… NUL <応答 DAT電文> (5バイト) ・バイト1 : FFh …… ヘッダー情報(1/3) ・バイト2 : 82h …… ヘッダー情報(2/3)デジタルモード(82) ・バイト3 : 5Ah …… ヘッダー情報(3/3) ・バイト4 : −−− ・バイト5 : −−− -------------------------------------------------------------------------------- 2.アナログモード(80)固定 ……… セットモード&ロックコマンド(9バイト) ・バイト1 : 80h …… ヘッダー情報(1/3) ・バイト2 : 22h …… ヘッダー情報(2/3) ・バイト3 : 00h …… ヘッダー情報(3/3) ・バイト4 : 80h …… アナログモード(80) ・バイト5 : C0h …… モード固定、ボタンでの切替え不可(C0)、切替え可(以外) ・バイト6 : 00h …… NUL ・バイト7 : 00h …… NUL ・バイト8 : 00h …… NUL ・バイト9 : 00h …… NUL <応答 DAT電文> (9バイト) ・バイト1 : FFh …… ヘッダー情報(1/3) ・バイト2 : CFh …… ヘッダー情報(2/3) ・バイト3 : 5Ah …… ヘッダー情報(3/3) ・バイト4 : −−− ・バイト5 : −−− ・バイト6 : −−− ・バイト7 : −−− ・バイト8 : −−− ・バイト9 : −−− -------------------------------------------------------------------------------- 3.コンフィギュレーションモード <出る>イグジット(00) …… CMD電文(9バイト) ・バイト1 : 80h …… ヘッダー情報(1/3) ・バイト2 : C2h …… ヘッダー情報(2/3) ・バイト3 : 00h …… ヘッダー情報(3/3) ・バイト4 : 00h …… コンフィギュレーションモード <出る> イグジット(00) ・バイト5 : 00h …… NUL ・バイト6 : 00h …… NUL ・バイト7 : 00h …… NUL ・バイト8 : 00h …… NUL ・バイト9 : 00h …… NUL <応答 DAT電文> (9バイト) ・バイト1 : FFh …… ヘッダー情報(1/3) ・バイト2 : CEh …… ヘッダー情報(2/3)アナログモード(CE) ・バイト3 : 5Ah …… ヘッダー情報(3/3) ・バイト4 : −−− ・バイト5 : −−− ・バイト6 : −−− ・バイト7 : −−− ・バイト8 : −−− ・バイト9 : −−− --------------------------------------------------------------------------------
・ ・ ・ メモ ……… ・ ・
●起動後の初期状態では ……… デジタルモードである。 ・ステイック操作は、ボタン操作と同じ扱いで動作する。 ・コントローラの【 ANALOG 】ボタンを押すことにより、モード変更ができる。
●アナログモードで ……… プログラム固定した方が良いです。 ・スティツク操作の情報が活用できるので、操作性の機能UPできます。
●コントローラと受信モジュールをペアリングする。 ……… 初回起動時のみ -------------------------------------------------------------------------------- 【 受信モジュール 】 @ 電源を入れる。 A CONNECTボタンを押す。 B 赤LEDが点滅する。 -------------------------------------------------------------------------------- 【 コントローラ 】 C 電源をONにする。 D ALALOGボタンを押す。 -------------------------------------------------------------------------------- 【 受信モジュール と コントローラ 】 E LEDが、点滅→点灯になれば、ペアリングOKです。 --------------------------------------------------------------------------------
●コントローラを、5分間使用しなかった場合 ……… ・スリープモードになるので、STARTボタンを、押して、解除する。
・ ・ ・ ・ ・