昨日動かし始めたNFCボード。まずは簡単に動作確認のために
たったこれだけです。RF430CL330Hは、その名前から察しがつくようにMSP430コアを使ったチップになっており、その0番地から0x0BFFまでの3kBに空間にNDEFデータを保持することができます。制御レジスタもメモリ空間にマップされているようで、16ビットでアドレス指定して、16ビットの値を読み書きします。
NDEF(NFC Data Exchange Format)は、定められた形式に従っている必要がありますが、TIの純正ターゲットボードの説明書に
こうしてタグデータの用意ができたなら、実際にその内容を読み取ってみるのにNFCのリーダが必要です。いまどきのAndroid携帯であればNFCを持っているのですが、残念ながらわたしのドコモGalaxy S3はお財布には対応していてもNFCには対応していません。しょうがないので携帯を買い替えるよりは安価な、Nexus 7を購入。個人的好みとしてはNexus 7よりはiPad Miniが欲しかったのですが、iPhone/iPadはNFCをサポートしていないので。。。
NFCのタグ読み取りのためのアプリとしては、NXPのTagWriterとKDDIのNFCタグリーダーをインストール。アプリの読み取りを起動して、ボードのアンテナ部分の上にNexus 7をかざすことでデータを読み取ります。
上の写真は読み取り後、Nexusを横に動かした後の様子。画面は下のとおりです。
KDDIのアプリでも同じように読み取れます。
これらのアプリは、タグの読み取りだけでなく書き込みもできますので、マイコン側ソフトでは何もしなくても、RF430CL33Hのタグデータの書き換えもできます。ちゃんと割り込みの許可と検出を行えば、書き換えられたことを検出して、その内容をマイコン側で読み取ることができます。
Hello, Worldしてみました。実際に動かしてみると、バカみたいに簡単に使えます。
- まず、書き込むべきタグのNDEFデータを用意します。
- 用意したデータをRF430CL330Hの0番地以降に書き込みます。
- General Control RegisterのEnable RFビットをセットします。
たったこれだけです。RF430CL330Hは、その名前から察しがつくようにMSP430コアを使ったチップになっており、その0番地から0x0BFFまでの3kBに空間にNDEFデータを保持することができます。制御レジスタもメモリ空間にマップされているようで、16ビットでアドレス指定して、16ビットの値を読み書きします。
NDEF(NFC Data Exchange Format)は、定められた形式に従っている必要がありますが、TIの純正ターゲットボードの説明書に
Hello, Worldのサンプルがありましたので、これを流用。サンプルプログラムでは割り込みを使ったりしていますが、NFCデータの読み取り動作確認だけであれば割り込みは不要です。注意点としては現行のVersion Dのチップにはまだバグが残っていること。RFが応答しなくなるバグがあるらしく、その回避に必要な初期化操作がエラッタに掲載されていますので、このコードを追加しておきます。
こうしてタグデータの用意ができたなら、実際にその内容を読み取ってみるのにNFCのリーダが必要です。いまどきのAndroid携帯であればNFCを持っているのですが、残念ながらわたしのドコモGalaxy S3はお財布には対応していてもNFCには対応していません。しょうがないので携帯を買い替えるよりは安価な、Nexus 7を購入。個人的好みとしてはNexus 7よりはiPad Miniが欲しかったのですが、iPhone/iPadはNFCをサポートしていないので。。。
NFCのタグ読み取りのためのアプリとしては、NXPのTagWriterとKDDIのNFCタグリーダーをインストール。アプリの読み取りを起動して、ボードのアンテナ部分の上にNexus 7をかざすことでデータを読み取ります。
上の写真は読み取り後、Nexusを横に動かした後の様子。画面は下のとおりです。
KDDIのアプリでも同じように読み取れます。
これらのアプリは、タグの読み取りだけでなく書き込みもできますので、マイコン側ソフトでは何もしなくても、RF430CL33Hのタグデータの書き換えもできます。ちゃんと割り込みの許可と検出を行えば、書き換えられたことを検出して、その内容をマイコン側で読み取ることができます。