LoginSignup
3
2

More than 5 years have passed since last update.

[nrf52]NFCサンプルのソースを見る

Last updated at Posted at 2015-12-12

nRF52832(Preview版)が載った、nRF52 Preview-DKというボードを持っている。
PCA10036とも言う。
今週、東京や大阪で行われた説明会では、PCA10040というボードが配布されたようだ。

PCA10036はEngineering Aのチップが、PCA10040はEngineering Bのチップが載っているとのこと(nrf52 + S212 softdeviceの回答)。
S132 v2.0.0-7.alphaやnRF52 SDK v0.9.2も「Engineering Bは~」と書かれているので、もうPreview DKの時代は終わったのかもしれない(まあ、Previewだから仕方ないが)。
nRF52832のErrataを読めば、細かく違いがわかるかもしれないが、面倒なのでやってない。

下記のソースはPreview-DKでも動いたので、ソースを少し読んでおこう。
なんでNFCかというと、私がそういう人だからだ。
04a_nfc_url

構成

ソースの構成は、こうなっている。

source tree
tree.png

中の方まで読んでいくとわかるが、SoftDeviceは関与していない。
特にNFC Pairingと連動している感じもない。
BLEとは異なるユニットなのだろう。

nRF52 Global Tech Tour 2015 に参加してきました」を読むと、WRITEを受け付けないようだ。
このツアーのまとめサイトを読んだが(リンク先を探せなかった)、NFCによるファーム更新も遅いけどできなくはない、ということのようなので、WRITEのデータは読めるけどRAMには反映させないだけかもしれない。
Type 2 Tagのようなので、MIFARE Ultralightとかの資料があればそれを読むのが早いかもしれない。

使い方

  1. nfcSetup()
  2. nfcSetPayload()
  3. nfcStartEmulation()

これだけ。
nfc_lib.hに宣言があり、nfc_lib.libがいるので、この中身はライブラリ提供のようだ。

nfc_lib.h
nfc_lib_h.png

ただ、hal_nfc.cをコンパイルしているので、最終的にはここからハードをたたいているんじゃないだろうか。

サンプルでは、nfc_uri_msg_create()を使ってNDEF URIのデータを作っている。
これは、単にNDEFフォーマットのデータを作っているだけなので、データは自作しても良いだろう。
そうすれば、AARみたいなのを作って、Androidアプリの起動なんかもさせられるだろう(フォーマットは探せば出てくるだろう)。

まとめ

  • nRF52832では、NFCのタグになれる
  • READだけできる(らしい)

おまけ

そうそう、搬送波の検知もできるようだ。
なので「スマホが近づいた」みたいな動作をすることもできるだろう(スマホがNFCのInitiatorになってるなら)。
たぶん、搬送波検知なので、NimocaやSuicaの改札に近づいても反応するだろう。
13.56MHzのが来てるなー、という程度だから、相手がどういう人かはわからなくても検知するだろう。

3
2
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
3
2