はじめに
今回は、FeliCa Lite-Sの検出を行ってみたいと思います。
使用機器
FeliCa Lite-S RC-S966
手順
FeliCa Lite-Sの検出には、Pollingコマンドを使用します。
FeliCa Lite-S ユーザーズマニュアル
4.4.2 Pollingコマンド
FeliCa Lite-Sの検出手順をNXP社のアプリケーションノートのように書くと下記のようになります。
1:sendSPI(0x11, 0x09, 0x89);
2:sendSPI(0x16, 0x00);
3:sendSPI(0x00, 0x03, 0xFF, 0xFF, 0x0F, 0x00);
4:sendSPI(0x02, 0x00, 0xBF, 0xFF, 0xFF, 0xFF);
5:sendSPI(0x01, 0x00, 0x03, 0x00, 0x00, 0x00);
6:sendSPI(0x09, 0x00, 0x06. 0x00, 0xFF, 0xFF, 0x01, 0x00);
7:sendSPI(0x0A, 0x00);
8:sendSPI(0x14);
手順は下図のようになります。
※事前に、リセット解除、オペレーションモードに設定
1. ロードコンフィグレーション
RFコンフィグレーションをロードする
0x09 : FeliCa / NFC PI424
0x89 : FeliCa / NFC PI424
RFコンフィグレーションをロード(PN5180の仕様)
0x11 0x09 0x89
2. RFオン
RFをオンする(PN5180の仕様)
0x16 0x00
3. ライトレジスタ
IRQ_CLEARレジスタ(PN5180の仕様)
0x00 0x03 0xFF 0xFF 0x0F 0x00
4. AND MASK
SYSTEM_CONFIGレジスタ(PN5180の仕様)
0x02 0x00 0xBF 0xFF 0xFF 0xFF
5. OR MASK
SYSTEM_CONFIGレジスタ(PN5180の仕様)
0x01 0x00 0x03 0x00 0x00 0x00
6. SEND DATA
Pollingコマンドでシステムコードを要求(FeliCa Lite-Sの仕様)
0x09 0x00 0x06 0x00 0xFF 0xFF 0x01 0x00
※システムコードはワイルドカード(0xFF 0xFF)とする
※複数枚を検出することができなかったのでスロット数は1としました。
7. READ DATAコマンド送信
Pollingコマンドに対するレスポンスを読み出し(PN5180の仕様)
0x0A 0x00
8. データ取得
Pollingコマンドに対するレスポンスデータ(FeliCa Lite-Sの仕様)
0x14
0x01
0x01 0x2E 0x50 0xE7 0xDA 0xC7 0x8B 0x47
0x00 0xF1 0x00 0x00 0x00 0x01 0x43 0x00
0x88 0xB4
9. SEND DATA
Pollingコマンドで通信性能を要求(FeliCa Lite-Sの仕様)
0x09 0x00 0x06 0x00 0x88 0xB4 0x02 0x00
※手順6から手順8で取得したシステムコード(0x88 0xB4)を使用する
10. READ DATAコマンド送信
Pollingコマンドに対するレスポンスを読み出し(PN5180の仕様)
0x0A 0x00
11. データ取得
Pollingコマンドに対するレスポンスデータ(FeliCa Lite-Sの仕様)
0x14
0x01
0x01 0x2E 0x50 0xE7 0xDA 0xC7 0x8B 0x47
0x00 0xF1 0x00 0x00 0x00 0x01 0x43 0x00
0x00 0x83
※通信速度自動検出対応
参考
編集後記
FeliCa Lite-Sの検出ができたので、次は、データの読み書きを行ってみたいと思います。