はじめに
ファームウェアのアップデートを行うことができたので、
今回は、ISO/IEC 14443 TypeAとISO/IEC 15693の検出を行ってみたいと思います。
使用機器
PN5180 NFC RFセンサーモジュール
NFC ISO 14443 TypeA
ISO/IEC 15693
PN5180 NFC RFセンターモジュールを購入したときに付属している
キーホルダー型のNFCがISO/IEC 14443で、カード型のものがISO/IEC 15693のようです。
接続
NFCタグを読み取るためには5Vの接続も必要となります。
手順
NFCにアクセスする手順は、NXP社で公開さている
アプリケーションノート
AN12650.pdf
4.1 ISO/IEC 14443
4.2 ISO/IEC 15693
に従って通信を行えばNFCを検出することができます。
ISO/IEC 14443
アプリケーションノートのwaitForCardResponseで行っていること。
カードの存在を確認するために、
sendSPI(0x09, 0x07, 0x26)
でREQA(Request Command)をカードに送っているそうです。
カードからはREQAコマンドに対して、ATQA(Answer To Request Type A)という応答があるので、それを待っているようです。
レジスタリードコマンドで、IRQ_STATUSレジスタ(アドレス:0x02)を読み出して、ATQAの応答があったのか確認しています。
ISO/IEC 15693
アプリケーションノートの下記の処理で行っていること
for (SlotCounter = 0; SlotCounter < 16; SlotCounter++)
{
if (CardHasReponded)
{
sendSPI(0x0A, 0x00);
readSPI(UIDbuffer);
}
}
レジスタリードコマンドで、RX_STATUSレジスタ(アドレス:0x13)を読み出して、カードからの応答を確認しているようです。
RX_STATUSレジスタの8ビットから0ビットが受信データのサイズを表しており、この値が0より大きければ応答があったと判断しているようです。
この応答のサイズ分のデータをREAD_DATAコマンドで読み出しているようです。
sendSPI(0x0A, 0x00);
readSPI(UIDbuffer);
参考
編集後記
次回は、FeliCa Lite-Sを使ってみたいと思います。