まずは、nRF52832のNFCサンプルが動くか試そう。
このくらいだったらハンダ付けしなくても、ピンを挿すだけで使えるだろう。
電源を入れても何も動かなかったのだが、FLASHが空だった。
SoftDeviceはS132v2.0.1を入れておく。
なお、電源はUSB(MiniB)から取るだけでよさそうだ。
NFCサンプルは、nRF5 SDK v11.0.0のexamples\nfc\record_url\pca10040\armgcc。
ARM-GCCは4.9と、nRF51のときと同じものにした。
何も考えず、makeして、make flash。
そして、Android端末でTagInfoアプリを起動してNFCアンテナに近づける。
あっさり動いた。
GCCでも変更せずにビルドできるのは、楽だねぇ。
TagInfoアプリはタグから読めるだけ読もうとするので、えらく時間がかかる。
というのも、Type2Tagに見えるのだが、アドレスが0x100あるのだ。
1アドレス4バイトだから1KB!
すごいねぇ。
搬送波を検知するとLEDが点灯するようなソースになっているけど、この基板にはそういうのがないので、特に光らない。
で、NFCIDだ。
ここを見ると、FICRに初期値が入っているようだ。
まあ、Factory設定だから、それがよいのだろう。
UIDが1~15ってのがすごいな。
ただ、初期値なので、実際の値はNFCTのレジスタに入れるようだ。
- 4バイトUID
- SENSRES.NFCIDSIZE = 0
- NFCID1_W, X, Y, Z
- 7バイトUID
- SENSRES.NFCIDSIZE = 1
- NFCID1_T, U, V, W, X, Y, Z
- 10バイトUID
- SENSRES.NFCIDSIZE = 2
- NFCID1_Q, R, S, T, U, V, W, X, Y, Z
サンプルを動かすと7バイトUIDに見えた。
デフォルトがそうなっているのだろう。
まあ、4バイトは推奨されなくなったので、7バイトなのかな。
components\nfc\t2t_lib\hal_t2t\hal_nfc_t2t.cのhal_nfc_common_hw_setup()でSENSRESを設定していて、Doubleになっていた。
これが初期値か。
そしてその前にNFCID1への設定があるから、それより後で設定すればUIDを好きな値に変更できそうな気がする。
やってみるか。
できてしまった。。。
こ、こいつは強力だな。
PN532みたいなR/Wチップの場合、カードエミュレーションさせてもType-AについてはUIDの一部しか変更できなかったのだ。
FeliCaについてはIDmを8桁とも変更できたので、ちょっと危ないと思っていたのだ。
が、これがあるとType-Aでも好きにUIDを変更できるのだ。
まあ、UIDだけで何かする、という実装はセキュリティ的にやってはいかんのだが、最近はどうなってるんだろうね。
0 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。