X_NUCLEO_NFC02A1 library for M24LR

Dependencies:   ST_INTERFACES

Dependents:   HelloWorld_NFC02A1_mbedOS HelloWorld_NFC02A1laatste HelloWorld_NFC02A1

Fork of X_NUCLEO_NFC02A1 by ST Expansion SW Team

X-NUCLEO-NFC02A1 Dynamic NFC Tag Expansion Board Firmware Package

Introduction

This firmware package includes Components Device Drivers, Board Support Package and example applications for STMicroelectronics X-NUCLEO-NFC02A1 Dynamic NFC Tag Expansion Board based on M24LR.

Firmware Library

Class X_NUCLEO_NFC02A1 is intended to represent the Dynamic NFC Tag Expansion Board with the same name.
It provides an API to access to the M24LR component and to the three onboard LEDs.
It is intentionally implemented as a singleton because only one X_NUCLEO_NFC02A1 at a time might be deployed in a HW component stack.
The library also provides an implementation of the NDEF library API for M24LR, providing an simple way to read/write NDEF formatted messages from/to the M24LR dynamic NFC tag.

Example application

Hello World is a simple application to program and read an URI from the NFC tag.

Committer:
rosarium
Date:
Wed Sep 28 11:30:09 2016 +0000
Revision:
0:71bff5ad0a49
X_NUCLEO_NFC02A1 converted as an library

Who changed what in which revision?

UserRevisionLine numberNew contents of line
rosarium 0:71bff5ad0a49 1 /**
rosarium 0:71bff5ad0a49 2 ******************************************************************************
rosarium 0:71bff5ad0a49 3 * @file m24lr.h
rosarium 0:71bff5ad0a49 4 * @author AMG Central Lab
rosarium 0:71bff5ad0a49 5 * @version V1.0.0
rosarium 0:71bff5ad0a49 6 * @date 30 Aug 2016
rosarium 0:71bff5ad0a49 7 * @brief header file for M24LR driver .
rosarium 0:71bff5ad0a49 8 ******************************************************************************
rosarium 0:71bff5ad0a49 9 * @attention
rosarium 0:71bff5ad0a49 10 *
rosarium 0:71bff5ad0a49 11 * <h2><center>&copy; COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
rosarium 0:71bff5ad0a49 12 *
rosarium 0:71bff5ad0a49 13 * Redistribution and use in source and binary forms, with or without modification,
rosarium 0:71bff5ad0a49 14 * are permitted provided that the following conditions are met:
rosarium 0:71bff5ad0a49 15 * 1. Redistributions of source code must retain the above copyright notice,
rosarium 0:71bff5ad0a49 16 * this list of conditions and the following disclaimer.
rosarium 0:71bff5ad0a49 17 * 2. Redistributions in binary form must reproduce the above copyright notice,
rosarium 0:71bff5ad0a49 18 * this list of conditions and the following disclaimer in the documentation
rosarium 0:71bff5ad0a49 19 * and/or other materials provided with the distribution.
rosarium 0:71bff5ad0a49 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
rosarium 0:71bff5ad0a49 21 * may be used to endorse or promote products derived from this software
rosarium 0:71bff5ad0a49 22 * without specific prior written permission.
rosarium 0:71bff5ad0a49 23 *
rosarium 0:71bff5ad0a49 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
rosarium 0:71bff5ad0a49 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
rosarium 0:71bff5ad0a49 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
rosarium 0:71bff5ad0a49 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
rosarium 0:71bff5ad0a49 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
rosarium 0:71bff5ad0a49 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
rosarium 0:71bff5ad0a49 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
rosarium 0:71bff5ad0a49 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
rosarium 0:71bff5ad0a49 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
rosarium 0:71bff5ad0a49 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
rosarium 0:71bff5ad0a49 34 *
rosarium 0:71bff5ad0a49 35 ******************************************************************************
rosarium 0:71bff5ad0a49 36 */
rosarium 0:71bff5ad0a49 37
rosarium 0:71bff5ad0a49 38
rosarium 0:71bff5ad0a49 39 #ifndef __M24LR_H
rosarium 0:71bff5ad0a49 40 #define __M24LR_H
rosarium 0:71bff5ad0a49 41
rosarium 0:71bff5ad0a49 42 #include "common.h"
rosarium 0:71bff5ad0a49 43 #include "DevI2C.h"
rosarium 0:71bff5ad0a49 44 #include "Nfc.h"
rosarium 0:71bff5ad0a49 45 #include "NDefNfcTag.h"
rosarium 0:71bff5ad0a49 46 #include "NDefNfcTagM24LR.h"
rosarium 0:71bff5ad0a49 47
rosarium 0:71bff5ad0a49 48 //#include "lib_NDEF_URI.h"
rosarium 0:71bff5ad0a49 49 /* Exported constants --------------------------------------------------------*/
rosarium 0:71bff5ad0a49 50 /** @defgroup M24LR_Exported_Constants
rosarium 0:71bff5ad0a49 51 * @{
rosarium 0:71bff5ad0a49 52 */
rosarium 0:71bff5ad0a49 53 #define I_AM_M24LR04 0x5A
rosarium 0:71bff5ad0a49 54 #define I_AM_M24LR16 0x4E
rosarium 0:71bff5ad0a49 55 #define I_AM_M24LR64 0x5E
rosarium 0:71bff5ad0a49 56
rosarium 0:71bff5ad0a49 57 #ifndef NULL
rosarium 0:71bff5ad0a49 58 #define NULL (void *) 0
rosarium 0:71bff5ad0a49 59 #endif
rosarium 0:71bff5ad0a49 60
rosarium 0:71bff5ad0a49 61 #define M24LR_PAGEWRITE_NBBYTE 4
rosarium 0:71bff5ad0a49 62
rosarium 0:71bff5ad0a49 63 #define M24LR_ADDR_DATA_I2C 0xA6
rosarium 0:71bff5ad0a49 64 #define M24LR_ADDR_SYST_I2C 0xAE
rosarium 0:71bff5ad0a49 65 #define M24LR_I2C_TIMEOUT 200 /* I2C Time out (ms), this is the maximum time needed by M24LR to complete any command */
rosarium 0:71bff5ad0a49 66
rosarium 0:71bff5ad0a49 67 #define M24LR_IT_BUSY_MASK 0x01
rosarium 0:71bff5ad0a49 68 #define M24LR_IT_WIP_MASK 0x02
rosarium 0:71bff5ad0a49 69
rosarium 0:71bff5ad0a49 70 /* Registers address */
rosarium 0:71bff5ad0a49 71 #define M24LR_SSS_REG 0x0000
rosarium 0:71bff5ad0a49 72 #define M24LR_LOCK_REG 0x0800
rosarium 0:71bff5ad0a49 73 #define M24LR_I2C_PWD_REG 0x0900
rosarium 0:71bff5ad0a49 74 #define M24LR_CFG_REG 0x0910
rosarium 0:71bff5ad0a49 75 #define M24LR_AFI_REG 0x0912
rosarium 0:71bff5ad0a49 76 #define M24LR_DSFID_REG 0x0913
rosarium 0:71bff5ad0a49 77 #define M24LR_UID_REG 0x0914
rosarium 0:71bff5ad0a49 78 #define M24LR_ICREF_REG 0x091C
rosarium 0:71bff5ad0a49 79 #define M24LR_MEMSIZE_REG 0x091D
rosarium 0:71bff5ad0a49 80 #define M24LR_CTRL_REG 0x0920
rosarium 0:71bff5ad0a49 81
rosarium 0:71bff5ad0a49 82 /* Registers mask */
rosarium 0:71bff5ad0a49 83 #define M24LR_SSS_LOCK_MASK 0x01
rosarium 0:71bff5ad0a49 84 #define M24LR_SSS_RW_MASK 0x06
rosarium 0:71bff5ad0a49 85 #define M24LR_SSS_PASSCTRL_MASK 0x18
rosarium 0:71bff5ad0a49 86 #define M24LR_LOCK_MASK 0x0F
rosarium 0:71bff5ad0a49 87
rosarium 0:71bff5ad0a49 88 #define M24LR_CFG_EHCFG0_MASK 0x01
rosarium 0:71bff5ad0a49 89 #define M24LR_CFG_EHCFG1_MASK 0x02
rosarium 0:71bff5ad0a49 90 #define M24LR_CFG_EHMODE_MASK 0x04
rosarium 0:71bff5ad0a49 91 #define M24LR_CFG_WIPBUSY_MASK 0x08
rosarium 0:71bff5ad0a49 92
rosarium 0:71bff5ad0a49 93 #define M24LR_CTRL_EHEN_MASK 0x01
rosarium 0:71bff5ad0a49 94 #define M24LR_CTRL_FIELD_MASK 0x02
rosarium 0:71bff5ad0a49 95 #define M24LR_CTRL_TPROG_MASK 0x80
rosarium 0:71bff5ad0a49 96
rosarium 0:71bff5ad0a49 97
rosarium 0:71bff5ad0a49 98
rosarium 0:71bff5ad0a49 99 /**
rosarium 0:71bff5ad0a49 100 * @brief M24LR VOUT Configuration enumerator definition
rosarium 0:71bff5ad0a49 101 */
rosarium 0:71bff5ad0a49 102 typedef enum
rosarium 0:71bff5ad0a49 103 {
rosarium 0:71bff5ad0a49 104 M24LR_EH_Cfg_6MA = 0,
rosarium 0:71bff5ad0a49 105 M24LR_EH_Cfg_3MA,
rosarium 0:71bff5ad0a49 106 M24LR_EH_Cfg_1MA,
rosarium 0:71bff5ad0a49 107 M24LR_EH_Cfg_300UA
rosarium 0:71bff5ad0a49 108 } M24LR_EH_CFG_VOUT;
rosarium 0:71bff5ad0a49 109
rosarium 0:71bff5ad0a49 110 /**
rosarium 0:71bff5ad0a49 111 * @brief M24LR FIELD status enumerator definition
rosarium 0:71bff5ad0a49 112 */
rosarium 0:71bff5ad0a49 113 typedef enum
rosarium 0:71bff5ad0a49 114 {
rosarium 0:71bff5ad0a49 115 M24LR_FIELD_OFF = 0,
rosarium 0:71bff5ad0a49 116 M24LR_FIELD_ON
rosarium 0:71bff5ad0a49 117 } M24LR_FIELD_STATUS;
rosarium 0:71bff5ad0a49 118
rosarium 0:71bff5ad0a49 119 /**
rosarium 0:71bff5ad0a49 120 * @brief M24LR TT-PROG status enumerator definition
rosarium 0:71bff5ad0a49 121 */
rosarium 0:71bff5ad0a49 122 typedef enum
rosarium 0:71bff5ad0a49 123 {
rosarium 0:71bff5ad0a49 124 M24LR_T_PROG_NO = 0,
rosarium 0:71bff5ad0a49 125 M24LR_T_PROG_OK
rosarium 0:71bff5ad0a49 126 } M24LR_T_PROG_STATUS;
rosarium 0:71bff5ad0a49 127
rosarium 0:71bff5ad0a49 128 /**
rosarium 0:71bff5ad0a49 129 * @brief M24LR Energy Harvesting status enumerator definition
rosarium 0:71bff5ad0a49 130 */
rosarium 0:71bff5ad0a49 131 typedef enum
rosarium 0:71bff5ad0a49 132 {
rosarium 0:71bff5ad0a49 133 M24LR_EH_DISABLE = 0,
rosarium 0:71bff5ad0a49 134 M24LR_EH_ENABLE
rosarium 0:71bff5ad0a49 135 } M24LR_EH_STATUS;
rosarium 0:71bff5ad0a49 136
rosarium 0:71bff5ad0a49 137 /**
rosarium 0:71bff5ad0a49 138 * @brief M24LR Energy Harvesting mode enumerator definition
rosarium 0:71bff5ad0a49 139 */
rosarium 0:71bff5ad0a49 140 typedef enum
rosarium 0:71bff5ad0a49 141 {
rosarium 0:71bff5ad0a49 142 M24LR_EH_MODE_ENABLE = 0,
rosarium 0:71bff5ad0a49 143 M24LR_EH_MODE_DISABLE
rosarium 0:71bff5ad0a49 144 } M24LR_EH_MODE_STATUS;
rosarium 0:71bff5ad0a49 145
rosarium 0:71bff5ad0a49 146 /**
rosarium 0:71bff5ad0a49 147 * @brief M24LR GPO status enumerator definition
rosarium 0:71bff5ad0a49 148 */
rosarium 0:71bff5ad0a49 149 typedef enum
rosarium 0:71bff5ad0a49 150 {
rosarium 0:71bff5ad0a49 151 M24LR_GPO_BUSY = 0,
rosarium 0:71bff5ad0a49 152 M24LR_GPO_WIP
rosarium 0:71bff5ad0a49 153 } M24LR_GPO_STATUS;
rosarium 0:71bff5ad0a49 154
rosarium 0:71bff5ad0a49 155 /**
rosarium 0:71bff5ad0a49 156 * @brief M24LR Memory information structure definition
rosarium 0:71bff5ad0a49 157 */
rosarium 0:71bff5ad0a49 158 typedef struct
rosarium 0:71bff5ad0a49 159 {
rosarium 0:71bff5ad0a49 160 uint8_t BlockSize;
rosarium 0:71bff5ad0a49 161 uint16_t Mem_Size;
rosarium 0:71bff5ad0a49 162 } M24LR_Mem_Size;
rosarium 0:71bff5ad0a49 163
rosarium 0:71bff5ad0a49 164 /**
rosarium 0:71bff5ad0a49 165 * @brief M24LR I2C Write Lock register structure definition
rosarium 0:71bff5ad0a49 166 */
rosarium 0:71bff5ad0a49 167 typedef struct
rosarium 0:71bff5ad0a49 168 {
rosarium 0:71bff5ad0a49 169 uint8_t sectors_7_0;
rosarium 0:71bff5ad0a49 170 uint8_t sectors_15_8;
rosarium 0:71bff5ad0a49 171 uint8_t sectors_23_16;
rosarium 0:71bff5ad0a49 172 uint8_t sectors_31_24;
rosarium 0:71bff5ad0a49 173 uint8_t sectors_39_32;
rosarium 0:71bff5ad0a49 174 uint8_t sectors_47_40;
rosarium 0:71bff5ad0a49 175 uint8_t sectors_55_48;
rosarium 0:71bff5ad0a49 176 uint8_t sectors_63_56;
rosarium 0:71bff5ad0a49 177 } M24LR_Lock_Sectors;
rosarium 0:71bff5ad0a49 178
rosarium 0:71bff5ad0a49 179 /**
rosarium 0:71bff5ad0a49 180 * @brief M24LR UID information structure definition
rosarium 0:71bff5ad0a49 181 */
rosarium 0:71bff5ad0a49 182 typedef struct
rosarium 0:71bff5ad0a49 183 {
rosarium 0:71bff5ad0a49 184 uint32_t MSB_UID;
rosarium 0:71bff5ad0a49 185 uint32_t LSB_UID;
rosarium 0:71bff5ad0a49 186 } M24LR_UID;
rosarium 0:71bff5ad0a49 187
rosarium 0:71bff5ad0a49 188 /**
rosarium 0:71bff5ad0a49 189 * @brief M24LR Sector Security register structure definition
rosarium 0:71bff5ad0a49 190 */
rosarium 0:71bff5ad0a49 191 typedef struct
rosarium 0:71bff5ad0a49 192 {
rosarium 0:71bff5ad0a49 193 uint8_t SectorLock;
rosarium 0:71bff5ad0a49 194 uint8_t RW_Protection;
rosarium 0:71bff5ad0a49 195 uint8_t PassCtrl;
rosarium 0:71bff5ad0a49 196 } M24LR_SECTOR_SEC;
rosarium 0:71bff5ad0a49 197
rosarium 0:71bff5ad0a49 198
rosarium 0:71bff5ad0a49 199 /**
rosarium 0:71bff5ad0a49 200 * @}
rosarium 0:71bff5ad0a49 201 */
rosarium 0:71bff5ad0a49 202
rosarium 0:71bff5ad0a49 203 class M24LR : public Nfc {
rosarium 0:71bff5ad0a49 204 public:
rosarium 0:71bff5ad0a49 205 NFCTAG_StatusTypeDef i2c_Init( void );
rosarium 0:71bff5ad0a49 206 NFCTAG_StatusTypeDef i2c_ReadID( uint8_t * const pICRef );
rosarium 0:71bff5ad0a49 207 NFCTAG_StatusTypeDef i2c_IsDeviceReady( const uint32_t Trials );
rosarium 0:71bff5ad0a49 208 NFCTAG_StatusTypeDef i2c_ConfigureGPO( const uint16_t ITConf );
rosarium 0:71bff5ad0a49 209 NFCTAG_StatusTypeDef i2c_GetGPOStatus( uint16_t * const pGPOStatus );
rosarium 0:71bff5ad0a49 210 NFCTAG_StatusTypeDef i2c_ReadData( uint8_t * const pData, const uint16_t TarAddr, const uint16_t NbByte );
rosarium 0:71bff5ad0a49 211 NFCTAG_StatusTypeDef i2c_WriteData( const uint8_t * const pData, const uint16_t TarAddr, const uint16_t NbByte );
rosarium 0:71bff5ad0a49 212 NFCTAG_StatusTypeDef i2c_ReadRegister( uint8_t * const pData, const uint16_t TarAddr, const uint16_t NbByte );
rosarium 0:71bff5ad0a49 213 NFCTAG_StatusTypeDef i2c_WriteRegister( const uint8_t * const pData, const uint16_t TarAddr, const uint16_t NbByte );
rosarium 0:71bff5ad0a49 214
rosarium 0:71bff5ad0a49 215
rosarium 0:71bff5ad0a49 216 /* Extended Functions */
rosarium 0:71bff5ad0a49 217 NFCTAG_StatusTypeDef i2c_ReadUID( M24LR_UID * const pUid );
rosarium 0:71bff5ad0a49 218 NFCTAG_StatusTypeDef i2c_ReadDSFID( uint8_t * const pDsfid );
rosarium 0:71bff5ad0a49 219 NFCTAG_StatusTypeDef i2c_ReadAFI( uint8_t * const pAfi );
rosarium 0:71bff5ad0a49 220 NFCTAG_StatusTypeDef i2c_ReadI2CLockSector( M24LR_Lock_Sectors * const pLock_sector );
rosarium 0:71bff5ad0a49 221 NFCTAG_StatusTypeDef i2c_I2CLockSector( const uint8_t Sector );
rosarium 0:71bff5ad0a49 222 NFCTAG_StatusTypeDef i2c_I2CUnlockSector( const uint8_t Sector );
rosarium 0:71bff5ad0a49 223 NFCTAG_StatusTypeDef i2c_PresentI2CPassword( const uint32_t PassWord );
rosarium 0:71bff5ad0a49 224 NFCTAG_StatusTypeDef i2c_WriteI2CPassword( const uint32_t PassWord );
rosarium 0:71bff5ad0a49 225 NFCTAG_StatusTypeDef i2c_ReadSSSx( const uint8_t SectorNb, M24LR_SECTOR_SEC * const pData );
rosarium 0:71bff5ad0a49 226 NFCTAG_StatusTypeDef i2c_WriteSSSx( const uint8_t SectorNb, const M24LR_SECTOR_SEC * const pData );
rosarium 0:71bff5ad0a49 227 NFCTAG_StatusTypeDef i2c_ReadMemSize( M24LR_Mem_Size * const pSizeInfo );
rosarium 0:71bff5ad0a49 228 NFCTAG_StatusTypeDef i2c_GetRF_WIP_BUSY( M24LR_GPO_STATUS * const pRf_Wip_Busy );
rosarium 0:71bff5ad0a49 229 NFCTAG_StatusTypeDef i2c_SetRFBUSY( void );
rosarium 0:71bff5ad0a49 230 NFCTAG_StatusTypeDef i2c_SetRFWIP( void );
rosarium 0:71bff5ad0a49 231 NFCTAG_StatusTypeDef i2c_Read_EH_mode( M24LR_EH_MODE_STATUS * const pEH_mode );
rosarium 0:71bff5ad0a49 232 NFCTAG_StatusTypeDef i2c_Enable_EH_mode( void );
rosarium 0:71bff5ad0a49 233 NFCTAG_StatusTypeDef i2c_Disable_EH_mode( void );
rosarium 0:71bff5ad0a49 234 NFCTAG_StatusTypeDef i2c_ReadEH_Cfg( M24LR_EH_CFG_VOUT * const pEH_Cfg );
rosarium 0:71bff5ad0a49 235 NFCTAG_StatusTypeDef i2c_WriteEH_Cfg( const M24LR_EH_CFG_VOUT EH_Cfg );
rosarium 0:71bff5ad0a49 236 NFCTAG_StatusTypeDef i2c_GetEH( M24LR_EH_STATUS * const pEH_Val );
rosarium 0:71bff5ad0a49 237 NFCTAG_StatusTypeDef i2c_SetEH( void );
rosarium 0:71bff5ad0a49 238 NFCTAG_StatusTypeDef i2c_ResetEH( void );
rosarium 0:71bff5ad0a49 239 NFCTAG_StatusTypeDef i2c_GetRFField( M24LR_FIELD_STATUS * const pRF_Field );
rosarium 0:71bff5ad0a49 240 NFCTAG_StatusTypeDef i2c_GetTProg( M24LR_T_PROG_STATUS * const pT_Prog );
rosarium 0:71bff5ad0a49 241
rosarium 0:71bff5ad0a49 242 void Enable_EnergyHarvesting( void );
rosarium 0:71bff5ad0a49 243 NFCTAG_StatusTypeDef Initialization( void );
rosarium 0:71bff5ad0a49 244
rosarium 0:71bff5ad0a49 245 virtual int ReadBinary(uint16_t Offset, uint8_t NbByteToRead,
rosarium 0:71bff5ad0a49 246 uint8_t *pBufferRead) {
rosarium 0:71bff5ad0a49 247 return (NFC_StatusTypeDef) i2c_ReadData( pBufferRead, Offset, NbByteToRead );
rosarium 0:71bff5ad0a49 248
rosarium 0:71bff5ad0a49 249 }
rosarium 0:71bff5ad0a49 250
rosarium 0:71bff5ad0a49 251 virtual int UpdateBinary(uint16_t Offset,
rosarium 0:71bff5ad0a49 252 uint8_t NbByteToWrite,uint8_t *pDataToWrite) {
rosarium 0:71bff5ad0a49 253 return (NFC_StatusTypeDef) i2c_WriteData( pDataToWrite, Offset, NbByteToWrite );
rosarium 0:71bff5ad0a49 254 }
rosarium 0:71bff5ad0a49 255
rosarium 0:71bff5ad0a49 256 M24LR(uint8_t const address, uint8_t const addressData, DevI2C &devI2C ):
rosarium 0:71bff5ad0a49 257 NDefTagUtil(*this), i2c_address_syst(address), i2c_address_data(addressData), dev_I2C(devI2C) {}
rosarium 0:71bff5ad0a49 258
rosarium 0:71bff5ad0a49 259
rosarium 0:71bff5ad0a49 260 NDefLib::NDefNfcTag& getNDefTag(){
rosarium 0:71bff5ad0a49 261 return NDefTagUtil;
rosarium 0:71bff5ad0a49 262 }
rosarium 0:71bff5ad0a49 263
rosarium 0:71bff5ad0a49 264
rosarium 0:71bff5ad0a49 265 virtual int Init(void *ptr) {
rosarium 0:71bff5ad0a49 266 (void)ptr;
rosarium 0:71bff5ad0a49 267 return (NFC_StatusTypeDef) i2c_Init();
rosarium 0:71bff5ad0a49 268 }
rosarium 0:71bff5ad0a49 269
rosarium 0:71bff5ad0a49 270 virtual int ReadID(uint8_t *id) {
rosarium 0:71bff5ad0a49 271 return (NFC_StatusTypeDef) i2c_ReadID(id);
rosarium 0:71bff5ad0a49 272 }
rosarium 0:71bff5ad0a49 273 private:
rosarium 0:71bff5ad0a49 274 static uint8_t NfctagInitialized;
rosarium 0:71bff5ad0a49 275
rosarium 0:71bff5ad0a49 276
rosarium 0:71bff5ad0a49 277 /*
rosarium 0:71bff5ad0a49 278 * Object implementing the interface to use the NDefLib.
rosarium 0:71bff5ad0a49 279 */
rosarium 0:71bff5ad0a49 280 NDefNfcTagM24LR NDefTagUtil;
rosarium 0:71bff5ad0a49 281
rosarium 0:71bff5ad0a49 282 uint8_t i2c_address_syst;
rosarium 0:71bff5ad0a49 283 uint8_t i2c_address_data;
rosarium 0:71bff5ad0a49 284 DevI2C dev_I2C;
rosarium 0:71bff5ad0a49 285 };
rosarium 0:71bff5ad0a49 286
rosarium 0:71bff5ad0a49 287
rosarium 0:71bff5ad0a49 288
rosarium 0:71bff5ad0a49 289
rosarium 0:71bff5ad0a49 290 #endif /* __M24LR_H */
rosarium 0:71bff5ad0a49 291
rosarium 0:71bff5ad0a49 292
rosarium 0:71bff5ad0a49 293
rosarium 0:71bff5ad0a49 294 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/