●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ボタンを、押して、解除する。
・ ・ ・ ・ ・