How does it work?
The active NFC tag component on NFC Extend Click is the ST25DV16K – the compact NFC tag IC from STMicroelectronics. The Click board™ itself has a reasonably small number of components because most of the interface and EEPROM memory circuitry is already integrated on the ST25DV16K IC. The I2C / SMBus compatible serial interface lines, along with the GPO pin, which also works in the open drain configuration, are pulled up by the on-board resistors. The 2-Wire lines are routed to the respective I2C lines of the mikroBUS™ (SCK and SDA), while the GPO pin of the main IC is routed to the INT pin of the mikroBUS™.
Depending on the application requirements various shapes and sizes of 13.56 MHz external antenna can be used by connecting them to CN1 (male U.FL) connector. This Click can utilize new antennas that we have recently released.
The ST25DV16K uses the I2C/SMBus compatible communication interface, offering a fast transfer mode (FTM), to achieve a fast link between RF and contact worlds, via a 256 byte buffer called Mailbox. This mailbox dynamic buffer of 256 byte can be filled or emptied via either RF or I2C.
There is also the INT pin available, which indicates incoming event to the contact side, like RF Field changes, RF activity in progress, RF writing completion or Mailbox message availability. The built in energy harvesting element can deliver µW of power when external conditions make it possible. The integrated RF management allows the NFC Extend Click to ignore RF requests.
All these features can be programmed by setting static and/or dynamic registers of the ST25DV16K. ST25DV16K can be partially customized using configuration registers located in the E2 system area. More information about all the registers can be found in the ST25DV16K datasheet. However, provided library contains functions that simplify the use of the NFC Extend Click. The included application example demonstrates their functionality and it can be used as a reference for custom design.
The Click board™ can be supplied and interfaced with both 3.3V and 5V without the need for any external components. The onboard SMD jumper labeled as VCC SEL allows voltage selection for interfacing with both 3.3V and 5V MCUs.
Specifications
Type
RFID/NFC
Applications
NFC enabled business cards, stickers, wristbands, key fobs, pens, movie passes, hang tags, medication bottles, and many more.
On-board modules
ST25DV16K – the compact NFC tag IC from STMicroelectronics
Key Features
Fast data transfer between I2C and RF interfaces, half-duplex 256-byte dedicated buffer, energy harvesting, data protection features, custom size and shape external antenna.
Interface
I2C
Feature
No ClickID
Compatibility
mikroBUS™
Click board size
S (28.6 x 25.4 mm)
Input Voltage
3.3V or 5V
Pinout diagram
This table shows how the pinout on NFC Extend Click corresponds to the pinout on the mikroBUS™ socket (the latter shown in the two middle columns).
Onboard settings and indicators
Label | Name | Default | Description |
---|---|---|---|
PWR | LED GREEN | – | Power LED Indicator |
JP1 | VCC/SEL | Left | Power supply voltage selection: left position 3V3, right position 5V |
Software Support
We provide a library for the NFC Extend Click on our LibStock page, as well as a demo application (example), developed using MikroElektronika compilers. The demo can run on all the main MikroElektronika development boards.
Library Description
Library contains function for getting INT pin state, for getting and setting registers via I2C, for presenting and writing password, for enabling/disabling mailbox and RF functionalities and for device initialization.
Key functions:
uint8_t nfcextend_password_present ( uint8_t *password_bytes )
– Presenting password to device.uint8_t nfcextend_init ( void )
– Initializing the device.uint8_t nfcextend_enable_mailbox ( uint8_t enable_mailbox )
– Enabling or disabling mailbox.
Examples description
The application is composed of three sections :
- System Initialization – Initializes GPIO pins, I2C and LOG modules.
- Application Initialization – Initializes I2C driver, presents password to the device and initializes the device.
- Application Task – Checks if RF placed a message to mailbox and if it did, checks message length and logs message bytes.
void application_init ( ) { nfcextend_i2c_driver_init( (nfcextend_obj_t)&_MIKROBUS1_GPIO, (nfcextend_obj_t)&_MIKROBUS1_I2C, NFCEXTEND_I2C_SLAVE_ADDRESS ); Delay_ms( 500 ); nfcextend_password_present( &default_password[ 0 ] ); Delay_ms( 100 ); init_status_flag = nfcextend_init( ); Delay_ms( 100 ); if ( init_status_flag == 1 ) { mikrobus_logWrite( "> App init fail", _LOG_LINE ); } else if ( init_status_flag == 0 ) { mikrobus_logWrite( "> App init done", _LOG_LINE ); } }
Additional Functions :
nfcextend_wait_for_int( void )
– waits for INT pin to go LOW and than HIGH for time period of 300ms
The full application code, and ready to use projects can be found on our LibStock page.
Other mikroE Libraries used in the example:
- I2C
- UART
- Conversions
Additional notes and informations
Depending on the development board you are using, you may need USB UART click, USB UART 2 click or RS232 click to connect to your PC, for development systems with no UART to USB interface available on the board. The terminal available in all MikroElektronika compilers, or any other terminal application of your choice, can be used to read the message.
mikroSDK
This Click board™ is supported with mikroSDK – MikroElektronika Software Development Kit. To ensure proper operation of mikroSDK compliant Click board™ demo applications, mikroSDK should be downloaded from the LibStock and installed for the compiler you are using.
For more information about mikroSDK, visit the official page.