0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

NFCを使ってみる

Posted at

はじめに

ファームウェアのアップデートを行うことができたので、
今回は、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の接続も必要となります。

接続.png

手順

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);

参考

NXP社

編集後記

次回は、FeliCa Lite-Sを使ってみたいと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?