How does it work?
NFC 7 Click is based on the PN7160, a Near Field Communication (NFC) controller from NXP. This versatile NFC solution is designed to comply with NFC Forum and NCI 2.0 standards, offering robust integration for a wide range of NFC-enabled applications. This version of NFC 7 Click communicates with the host MCU exclusively through an I2C interface (PN7160A1HN/C100) and provides an optimized architecture for low-power consumption. The PN7160 features multiple power-saving modes, including a Hard Power-Down state, a firmware-activated Standby state, and a low-power polling loop for automatic device discovery to ensure efficient energy use across various operating scenarios. NFC 7 Click is particularly well-suited for portable and low-power applications where reliable NFC functionality is essential, including mobile devices, wearable technology, personal digital assistants, consumer electronics, and smart home gateways.
At its core, the PN7160 incorporates a new generation RF contactless front-end, supporting transmission modes compliant with NFCIP-1 and NFCIP-2, as well as ISO/IEC 14443, ISO/IEC 15693, MIFARE, and FeliCa standards. This advanced design significantly enhances performance by delivering higher sensitivity and active load modulation capabilities. These improvements allow NFC 7 Click to maintain reliable communication even with small antenna designs, such as the one integrated into this board.
The PN7160 introduces Enhanced Dynamic Load Modulation Amplitude (DLMA), which adapts the modulation amplitude dynamically based on external field strength. This feature extends communication distances in card emulation mode, ensuring independent phase adjustments for Type A, B, and F communication with 5° precision. Additionally, dynamic power control enables the board to operate at maximum power in reader mode without surpassing standard-defined limits, even at zero distance. In standalone card functionality, the PN7160 can operate autonomously once configured by the host MCU, allowing Passive Integrated Circuit Card (PICC) features to function without requiring the host to remain powered on. This makes NFC 7 Click an ideal solution for energy-efficient and always-on NFC applications.
As mentioned, NFC 7 Click uses a standard 2-wire I2C communication protocol, allowing the host MCU to control the PN7160 with clock frequencies up to 3.4MHz in High-Speed mode. In this I2C version of the board, the ADDR SEL jumpers must be populated to select the desired I2C address, ensuring proper communication with the host device. Additionally, the back of the board features a set of resistors that need to be populated depending on the board version; in this case, only the resistors in the I2C positions are populated, as required for I2C functionality.
Besides the interface pins, NFC 7 Click incorporates the VEN pin, which places the device into Hard Power-Down mode to conserve energy when not in use. It also uses the IRQ pin to handle interrupt requests, providing a mechanism for the host MCU to respond promptly to events such as tag detection, completed operations, or errors, enhancing the overall responsiveness and efficiency of NFC-based applications.
This Click board™ can operate with either 3.3V or 5V logic voltage levels selected via the VCC SEL jumper. This way, both 3.3V and 5V capable MCUs can use the communication lines properly. Also, this Click board™ comes equipped with a library containing easy-to-use functions and an example code that can be used as a reference for further development.
Specifications
Type
RFID/NFC
Applications
Ideal for mobile devices, wearables, personal digital assistants, consumer electronics, and smart home gateways
On-board modules
PN7160A1HN/C100 – Near Field Communication (NFC) controller from NXP
Key Features
Compliant with NFC Forum and NCI 2.0 standards, 2-wire I2C protocol with clock frequencies up to 3.4MHz, Hard Power-Down, firmware-activated Standby, and low-power polling loop for device discovery, high sensitivity and active load modulation, NFCIP-1, NFCIP-2, ISO/IEC 14443, ISO/IEC 15693, MIFARE, and FeliCa standards, and more
Interface
I2C
Feature
ClickID
Compatibility
mikroBUS™
Click board size
L (57.15 x 25.4 mm)
Input Voltage
3.3V or 5V
Pinout diagram
This table shows how the pinout on NFC 7 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 |
---|---|---|---|
LD1 | PWR | – | Power LED Indicator |
JP1 | VCC SEL | Left | Power Voltage Level Selection 3V3/5V: Left position 3V3, Right position 5V |
JP2-JP3 | ADDR SEL | Left | I2C Address Selection 0/1: Left position 0, Right position 1 |
NFC 7 Click electrical specifications
Description | Min | Typ | Max | Unit |
---|---|---|---|---|
Supply Voltage | 3.3 | – | 5 | V |
Subcarrier Frequency | – | 13.56 | – | MHz |
Software Support
We provide a library for the NFC 7 Click – I2C as well as a demo application (example), developed using MIKROE compilers. The demo can run on all the main MIKROE development boards.
Package can be downloaded/installed directly from NECTO Studio Package Manager (recommended), downloaded from our LibStock™ or found on MIKROE github account.
Library Description
This library contains API for NFC 7 Click – I2C driver.
Key functions
-
nfc7i2c_wait_discovery
This function waits until remote NFC device is discovered. -
nfc7i2c_presence_check
This function waits until the discovered target device is removed. -
nfc7i2c_stop_discovery
This function stops the RF discovery process.
Example Description
This example demonstrates the use of NFC 7 Click – I2C by handling the detection and processing of various NFC technologies and protocols, and ensuring the application can respond to different NFC card types (A,B,F,V).
void application_task ( void )
{
nfc7i2c_rf_intf_t rf_intf;
log_printf( &logger, " WAITING FOR DEVICE DISCOVERYrnn" );
if ( NFC7I2C_OK == nfc7i2c_wait_discovery ( &nfc7i2c, &rf_intf ) )
{
if ( ( NFC7I2C_NCI_RF_TECH_PASSIVE_POLL_NFC_A == rf_intf.mode_tech ) ||
( NFC7I2C_NCI_RF_TECH_PASSIVE_POLL_NFC_B == rf_intf.mode_tech ) ||
( NFC7I2C_NCI_RF_TECH_PASSIVE_POLL_NFC_F == rf_intf.mode_tech ) ||
( NFC7I2C_NCI_RF_TECH_PASSIVE_POLL_15693 == rf_intf.mode_tech ) )
{
for ( ; ; )
{
nfc7i2c_display_card_info ( rf_intf );
switch ( rf_intf.protocol )
{
case NFC7I2C_NCI_RF_PROT_T2T:
{
nfc7i2c_handle_iso14443_3a ( &nfc7i2c );
break;
}
case NFC7I2C_NCI_RF_PROT_ISODEP:
{
nfc7i2c_handle_iso14443_4 ( &nfc7i2c );
break;
}
case NFC7I2C_NCI_RF_PROT_T5T:
{
nfc7i2c_handle_iso15693 ( &nfc7i2c );
break;
}
case NFC7I2C_NCI_RF_PROT_MIFARE:
{
nfc7i2c_handle_mifare ( &nfc7i2c );
break;
}
default:
{
break;
}
}
if ( !rf_intf.more_tags )
{
break;
}
nfc7i2c_reader_act_next ( &nfc7i2c, &rf_intf );
}
nfc7i2c_presence_check ( &nfc7i2c, &rf_intf );
log_printf ( &logger, " - CARD REMOVEDrnn" );
nfc7i2c_stop_discovery ( &nfc7i2c );
while ( NFC7I2C_OK != nfc7i2c_start_discovery ( &nfc7i2c ) );
}
else
{
log_printf ( &logger, " - WRONG DISCOVERYrnn" );
}
}
}
The full application code, and ready to use projects can be installed directly from NECTO Studio Package Manager (recommended), downloaded from our LibStock™ or found on MIKROE github account.
Other MIKROE Libraries used in the example:
- MikroSDK.Board
- MikroSDK.Log
- Click.NFC7I2C
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. UART terminal is available in all MIKROE compilers.
mikroSDK
This Click board™ is supported with mikroSDK – MIKROE 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.