セクションの複数ページをまとめています。 印刷またはPDF形式で保存...

もとのページに戻る

2025-08-08 現在

mwf_periph_ntag - NTAG

mwf_periph_ntag - NTAG
    チップ内蔵の近距離無線通信(NTAG)コントローラ(NT3H2211)のEEPROMを読み書きするための手続きです。

    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() してからスリープしてください。