39#ifdef PREINIT_SUPPORTED
43#ifdef MikroCCoreVersion
44 #if MikroCCoreVersion >= 1
49#include "drv_digital_out.h"
50#include "drv_digital_in.h"
51#include "drv_i2c_master.h"
52#include "drv_analog_in.h"
74#define NFCTAG5_REG_SECTOR_SECURITY_0 0x0000
75#define NFCTAG5_REG_SECTOR_SECURITY_4 0x0004
76#define NFCTAG5_REG_SECTOR_SECURITY_8 0x0008
77#define NFCTAG5_REG_SECTOR_SECURITY_12 0x000C
78#define NFCTAG5_REG_SECTOR_SECURITY_16 0x0010
79#define NFCTAG5_REG_SECTOR_SECURITY_20 0x0014
80#define NFCTAG5_REG_SECTOR_SECURITY_24 0x0018
81#define NFCTAG5_REG_SECTOR_SECURITY_28 0x001C
82#define NFCTAG5_REG_SECTOR_SECURITY_32 0x0020
83#define NFCTAG5_REG_SECTOR_SECURITY_36 0x0024
84#define NFCTAG5_REG_SECTOR_SECURITY_40 0x0028
85#define NFCTAG5_REG_SECTOR_SECURITY_44 0x002C
86#define NFCTAG5_REG_SECTOR_SECURITY_48 0x0030
87#define NFCTAG5_REG_SECTOR_SECURITY_52 0x0034
88#define NFCTAG5_REG_SECTOR_SECURITY_56 0x0038
89#define NFCTAG5_REG_SECTOR_SECURITY_60 0x003C
90#define NFCTAG5_REG_SECTOR_SECURITY_STATUS_LSB 0x0800
91#define NFCTAG5_REG_SECTOR_SECURITY_STATUS_MSB 0x0804
92#define NFCTAG5_REG_I2C_PASSWORD 0x0900
93#define NFCTAG5_REG_RF_PASSWORD_1 0x0904
94#define NFCTAG5_REG_RF_PASSWORD_2 0x0908
95#define NFCTAG5_REG_RF_PASSWORD_3 0x090C
96#define NFCTAG5_REG_CONFIG 0x0910
97#define NFCTAG5_REG_UID_LSB 0x0914
98#define NFCTAG5_REG_UID_MSB 0x0918
99#define NFCTAG5_REG_IC_REF_MEM_SIZE 0x091C
100#define NFCTAG5_REG_CONTROL 0x0920
118#define NFCTAG5_CAPABILITY_CONTAINER_ADDRESS 0x0000
119#define NFCTAG5_CAPABILITY_CONTAINER 0xE1, 0x40, 0x80, 0x01
120#define NFCTAG5_NDEF_MESSAGE_START_ADDRESS 0x0004
121#define NFCTAG5_TYPE_NDEF_MESSAGE 0x03
122#define NFCTAG5_NDEF_RECORD_HEADER 0xD1
123#define NFCTAG5_NDEF_TYPE_LENGTH 0x01
124#define NFCTAG5_NDEF_URI_TYPE 'U'
125#define NFCTAG5_NDEF_MESSAGE_END_MARK 0xFE
131#define NFCTAG5_URI_PREFIX_0 0x00
132#define NFCTAG5_URI_PREFIX_1 0x01
133#define NFCTAG5_URI_PREFIX_2 0x02
134#define NFCTAG5_URI_PREFIX_3 0x03
135#define NFCTAG5_URI_PREFIX_4 0x04
136#define NFCTAG5_URI_PREFIX_5 0x05
137#define NFCTAG5_URI_PREFIX_6 0x06
138#define NFCTAG5_URI_PREFIX_7 0x07
139#define NFCTAG5_URI_PREFIX_8 0x08
140#define NFCTAG5_URI_PREFIX_9 0x09
141#define NFCTAG5_URI_PREFIX_10 0x0A
142#define NFCTAG5_URI_PREFIX_11 0x0B
143#define NFCTAG5_URI_PREFIX_12 0x0C
144#define NFCTAG5_URI_PREFIX_13 0x0D
145#define NFCTAG5_URI_PREFIX_14 0x0E
146#define NFCTAG5_URI_PREFIX_15 0x0F
147#define NFCTAG5_URI_PREFIX_16 0x10
148#define NFCTAG5_URI_PREFIX_17 0x11
149#define NFCTAG5_URI_PREFIX_18 0x12
150#define NFCTAG5_URI_PREFIX_19 0x13
151#define NFCTAG5_URI_PREFIX_20 0x14
152#define NFCTAG5_URI_PREFIX_21 0x15
153#define NFCTAG5_URI_PREFIX_22 0x16
154#define NFCTAG5_URI_PREFIX_23 0x17
155#define NFCTAG5_URI_PREFIX_24 0x18
156#define NFCTAG5_URI_PREFIX_25 0x19
157#define NFCTAG5_URI_PREFIX_26 0x1A
158#define NFCTAG5_URI_PREFIX_27 0x1B
159#define NFCTAG5_URI_PREFIX_28 0x1C
160#define NFCTAG5_URI_PREFIX_29 0x1D
161#define NFCTAG5_URI_PREFIX_30 0x1E
162#define NFCTAG5_URI_PREFIX_31 0x1F
163#define NFCTAG5_URI_PREFIX_32 0x20
164#define NFCTAG5_URI_PREFIX_33 0x21
165#define NFCTAG5_URI_PREFIX_34 0x22
166#define NFCTAG5_URI_PREFIX_35 0x23
172#define NFCTAG5_USER_MEMORY_ADDRESS_MIN 0x0000
173#define NFCTAG5_USER_MEMORY_ADDRESS_MAX 0x1FFF
174#define NFCTAG5_MEMORY_BLOCK_SIZE 4
175#define NFCTAG5_MEMORY_BLOCK_MASK 0x1FFC
181#define NFCTAG5_ADDRESS_MODE_CONFIG 0
182#define NFCTAG5_ADDRESS_MODE_USER_MEMORY 1
188#define NFCTAG5_VH_VREF_3V3 3.3
189#define NFCTAG5_VH_VREF_5V 5.0
190#define NFCTAG5_VH_VREF NFCTAG5_VH_VREF_3V3
197#define NFCTAG5_DEVICE_ADDRESS_CONFIG 0x57
198#define NFCTAG5_DEVICE_ADDRESS_USER_MEMORY 0x53
216#define NFCTAG5_MAP_MIKROBUS( cfg, mikrobus ) \
217 cfg.scl = MIKROBUS( mikrobus, MIKROBUS_SCL ); \
218 cfg.sda = MIKROBUS( mikrobus, MIKROBUS_SDA ); \
219 cfg.vh = MIKROBUS( mikrobus, MIKROBUS_AN ); \
220 cfg.busy = MIKROBUS( mikrobus, MIKROBUS_INT )
231 uint8_t value_bytes[ 4 ];
err_t nfctag5_format_memory(nfctag5_t *ctx)
NFC Tag 5 format memory function.
void nfctag5_cfg_setup(nfctag5_cfg_t *cfg)
NFC Tag 5 configuration object setup function.
err_t nfctag5_read_memory_block(nfctag5_t *ctx, uint16_t block_addr, nfctag5_block_t *block)
NFC Tag 5 read memory block function.
err_t nfctag5_write_multiple_memory_block(nfctag5_t *ctx, uint16_t block_addr, nfctag5_block_t *block, uint8_t num_blocks)
NFC Tag 5 write multiple memory block function.
err_t nfctag5_read_message_from_memory(nfctag5_t *ctx, uint16_t block_addr, uint8_t *message, uint16_t message_len)
NFC Tag 5 read message from memory function.
err_t nfctag5_write_ndef_uri_record(nfctag5_t *ctx, uint8_t uri_prefix, uint8_t *uri_data, uint8_t data_len)
NFC Tag 5 write NDEF URI record function.
err_t nfctag5_default_cfg(nfctag5_t *ctx)
NFC Tag 5 default configuration function.
err_t nfctag5_write_message_to_memory(nfctag5_t *ctx, uint16_t block_addr, uint8_t *message, uint16_t message_len)
NFC Tag 5 write message to memory function.
err_t nfctag5_set_address_mode(nfctag5_t *ctx, uint8_t mode)
NFC Tag 5 set address mode function.
err_t nfctag5_read_multiple_memory_block(nfctag5_t *ctx, uint16_t block_addr, nfctag5_block_t *block, uint8_t num_blocks)
NFC Tag 5 read multiple memory block function.
err_t nfctag5_read_vh_pin_value(nfctag5_t *ctx, uint16_t *data_out)
NFC Tag 5 read AN pin value function.
err_t nfctag5_init(nfctag5_t *ctx, nfctag5_cfg_t *cfg)
NFC Tag 5 initialization function.
err_t nfctag5_write_memory_block(nfctag5_t *ctx, uint16_t block_addr, nfctag5_block_t *block)
NFC Tag 5 write memory block function.
err_t nfctag5_read_vh_pin_voltage(nfctag5_t *ctx, float *data_out)
NFC Tag 5 read VH pin voltage level function.
uint8_t nfctag5_get_busy_pin(nfctag5_t *ctx)
NFC Tag 5 get busy pin function.
nfctag5_return_value_t
NFC Tag 5 Click return value data.
Definition nfctag5.h:277
@ NFCTAG5_OK
Definition nfctag5.h:278
@ NFCTAG5_ERROR
Definition nfctag5.h:279
NFC Tag 5 Click configuration object.
Definition nfctag5.h:258
analog_in_resolution_t resolution
Definition nfctag5.h:267
float vref
Definition nfctag5.h:268
uint32_t i2c_speed
Definition nfctag5.h:265
pin_name_t vh
Definition nfctag5.h:262
pin_name_t scl
Definition nfctag5.h:259
pin_name_t sda
Definition nfctag5.h:260
pin_name_t busy
Definition nfctag5.h:263
uint8_t i2c_address
Definition nfctag5.h:266
NFC Tag 5 Click context object.
Definition nfctag5.h:240
digital_in_t busy
Definition nfctag5.h:242
i2c_master_t i2c
Definition nfctag5.h:245
uint8_t slave_address
Definition nfctag5.h:249
analog_in_t adc
Definition nfctag5.h:246
NFC Tag 5 Click memory block union definition.
Definition nfctag5.h:230
uint32_t value
Definition nfctag5.h:232