はじめに
FeliCaの読み書きを行ってみたいと思いNXP社のPN5180を購入しました。
PN5180を使用するために行ったことを忘備のためにまとめました。
使用機器
PN5180 NFC RFセンサーモジュール
使用機器について
PN5180 NFC RFセンサーモジュールはAmazonで購入しました。
PN5180とはSPI通信を使用してデータの送受信を行います。
PN5180はスレーブとなります。
マスターにはSTM社のNUCLEOボードを使用しました。
接続
マスター(ここではNUCLEOボード)とPN5180 NFC RFセンサーモジュールは下記のように接続します。
SPI通信について
クロック:7Mbit/sまで
モード0:CPOL=0, CPHA=0
SPI通信関連の端子 | |
---|---|
MOSI | マスター出力 |
MISO | マスター入力 |
SCK | クロック |
NSS | チップセレクト アクティブLOW |
BUSY
PN5180がデータの処理中で、マスターからデータを受信できないことを示します。
データを送信する前にBUSYがLOW(アイドル)になっていることを確認する必要があります。
RST(RESET_N)
リセット端子になります。
HIGHにすることでPN5180のリセットが解除されます。
REQ(DWL_REQ)
PN5180のファームウェアを更新するときに使用します。
ファームウェアのダウンロードは行わないのでLOWとします。
電源(3.3V)とGNDはNUCLEOボードに接続しました。
動作確認
動作確認として、PN5180のバージョン情報を読み出しました。
- Die idenfifier
- Product Version
- Firmware Version
- EEPROM Version
バージョン情報はPN5180のEEPROMに保存されています。バージョン情報の構成は、
PN5180のデータシート 11.5.2 EEPROM
より、下表のようになっています。
バージョン情報 | データサイズ |
---|---|
Die identifier | 16バイト |
Product Version | 2バイト |
Firmware Version | 2バイト |
EEPROM Version | 2バイト |
データの読み出し手順は下記のフローのようになります。
PN5180のデータシート 11.4.3.3 Host Interface Command List
より、EEPROMからバージョン情報を読み出すには下表の3バイトのコマンドを送信します。
データ | |
---|---|
0x07 | コマンド(READ_EEPROM) |
0x00 | EEPROMの読み出し開始アドレス |
0x16 | EEPROMから読み出すデータ数 |
READ_EEPROMコマンドでアドレス0x00番地から22バイトのデータを読み出すことを伝えたので、22バイトのデータを読み出します。下表のバージョン情報を取得することができました。
バージョン情報 | 受信データ |
---|---|
Die identifier | 0x00 0x00 0x00 0x00 0x00 0x01 0x76 0x0A 0x23 0x14 0x3A 0x56 0x64 0x56 0x20 0x55 |
Product Version | 0x05 0x03 |
Firmware Version | 0x05 0x03 |
EEPROM Version | 0x00 0x91 |
受信データを見るとファームウェアバージョンは3.5でした。
参考
PN5180のデータシート
NXP
PN5180A0XX_C3_C4.pdf
編集後記
PN5180のファームウェアバージョンを取得することができましたが、ファームウェアバージョンが3.5となっており古いようです。
次は最新のファームウェアにアップデートすることを目標にしたいと思います。