mwf_periph_ntag - NTAG
mwf_periph_ntag - NTAG
チップ内蔵の近距離無線通信(NTAG)コントローラ(NT3H2211)のEEPROMを読み書きするための手続きです。
このページでは、EEPROMの手続きのみ記述しています。
NTAG 通信の扱いについては、後日追記する予定です。
mwf_periph_ntag - NTAG
チップ内蔵の近距離無線通信(NTAG)コントローラ(NT3H2211)のEEPROMを読み書きするための手続きです。コントローラはI2C接続されていますがmwf::periph::i2c
は用いません。
本手続きにより読み書きできるのは 1KB の領域(NT3H2211 の I2C block address 64-127)です。
コード例
#include "mwf_periph_ntag.hpp"
void func() {
// create the_ntag class object.
if (!mwf::the_ntag) {
mwf::ntag::global_init_ntag_manager();
}
// initialize
mwf::the_ntag->init();
// write 128bytes
uint8_t xfer1[128];
for (unsigned i = 0; i < 128; i++) xfer1[i] = i;
mwf::the_ntag->write_user_area(0x00, xfer1);
// read 128bytes
uint8_t xfer2[128];
mwf::the_ntag->read_user_area(0x00, xfer2);
}
class mwf::periph::ntag
global_init_ntag_manager(), global_deinit_ntag_manager()
static void global_init_ntag_manager();
static void global_deinit_ntag_manager();
the_ntag
クラスオブジェクトの生成と破棄を行います。
init(), deinit()
void init();
void deinit();
デバイスアクセスのための初期化と利用終了手続きを行います。初期化init()
には300usecの待ち処理が含まれます。
write_user_area()
bool write_user_area(uint16_t addr, const uint8_t *p, uint16_t len);
template <unsigned N> bool write_user_area(uint8_t addr, const uint8_t (&buf)[N]);
EEPROMのユーザエリアにバイト列を書き込みます。
addr
は開始アドレスで0..1023を指定します。p
またはbuf
は書込みデータのバッファです。len
またはN
はデータバイト数です。
read_user_area()
bool read_user_area(uint16_t addr, uint8_t *p, uint16_t len);
template <unsigned N> bool read_user_area(uint8_t addr, const uint8_t (&buf)[N]);
EEPROMのユーザエリアからバイト列を読み出します。
addr
は開始アドレスで0..1023を指定します。p
またはbuf
は読み出し先のデータのバッファです。len
またはN
はデータバイト数です。
class mwf::periph::ntag (sys_ev_handler)
on_sleep()
スリープ前に利用終了の手続きを行います。
on_wakeup()
スリープ時に初期化済みの場合は、再度初期化します。再初期化が不要な場合は deinit()
してからスリープしてください。