ST UM3526 Performance NFC Reader Initiator IC Software Expansion User Guide

UM3526 Performance NFC Reader Initiator IC Software Expansion

Product Information

Specifications

  • Product Name: X-CUBE-NFC12 high performance NFC
    reader/initiator IC software expansion
  • Compatibility: STM32Cube ecosystem
  • Key Features:
    • Middleware for ST25R300 NFC reader/initiator
    • Sample application for detecting NFC tags
    • Support for various MCU families
    • Complete RF/NFC abstraction for major technologies
    • User-friendly license terms

Product Usage Instructions

Overview

The X-CUBE-NFC12 software package expands the STM32Cube
functionality by providing middleware for building applications
using the ST25R300 high performance NFC reader/initiator IC. It
allows for easy portability across different MCU families and
includes complete RF/NFC abstraction for major technologies.

Setup

  1. Connect the X-NUCLEO-NFC12A1 expansion board to a compatible
    NUCLEO development board.
  2. Download and install the X-CUBE-NFC12 software package from the
    STM32Cube ecosystem webpage.
  3. Follow the provided instructions for configuring the software
    package.

Usage

Once the setup is complete, use the sample application to detect
NFC tags of different types. The application configures the
ST25R300 in a polling loop for active and passive device detection.
It indicates detected technologies by switching corresponding LEDs
on.

Additional Features

  • Set the ST25R300 in inductive wake-up mode by pressing the user
    button.
  • Detect the presence of a reader by setting the ST25R300 in card
    emulation mode.
  • All activities are logged to the host system using the ST-LINK
    virtual COM port.

FAQ

Q: What RFID technologies are supported in the demo?

A: The supported RFID technologies in this demo include
ISO14443A/NFCA, ISO14443B/NFCB, Felica/NFCF, ISO15693/NFCV, and
Card emulation Type A and F.

“`

UM3526
User manual
Getting started with the X-CUBE-NFC12 high performance NFC reader/initiator IC software expansion for STM32Cube
Introduction
The X-CUBE-NFC12 software expansion for STM32Cube provides complete middleware for STM32 to control payment, consumer and industrial applications using the ST25R300 high performance NFC front-end IC, supporting NFC initiator, target, reader, and card emulation modes. The expansion is built on top of STM32Cube software technology to ease portability across different STM32 microcontrollers. The software comes with sample implementations of the drivers running on the X-NUCLEO-NFC12A1 expansion board, plugged on top of a NUCLEO-G0B1RE or NUCLEO-L476RG or NUCLEO-C071RB development board.
Related links
Visit the STM32Cube ecosystem web page on www.st.com for further information

UM3526 – Rev 1 – June 2025 For further information, contact your local STMicroelectronics sales office.

www.st.com

1

Acronyms and abbreviations

Acronym NFC RFAL P2P MCU BSP HAL LED SPI
CMSIS

Table 1. List of acronyms Description
Near field communication RF abstract layer Peer-to-peer Microcontroller unit Board support package Hardware abstraction layer Light emitting diode Serial peripheral interface Arm® Cortex® microcontroller software interface standard

UM3526
Acronyms and abbreviations

UM3526 – Rev 1

page 2/15

UM3526
X-CUBE-NFC12 software expansion forSTM32Cube

2

X-CUBE-NFC12 software expansion for STM32Cube

2.1

Overview

The X-CUBE-NFC12 software package expands the STM32Cube functionality. The key features of the package are:

·

Complete middleware to build applications using the ST25R300 high performance NFC reader, initiator,

target, and card emulation front-end IC.

·

Sample application to detect NFC tags of different types.

·

Sample implementations available for the X-NUCLEO-NFC12A1 expansion board plugged onto a

NUCLEO-G0B1RE or NUCLEO-L476RG or NUCLEO-C071RB development board.

·

Easy portability across different MCU families, thanks to STM32Cube.

·

Complete RF/NFC abstraction (RFAL) for all major technologies, including complete ISO-DEP and NFC-

DEP layers.

·

Free, user-friendly license terms.

This software contains high performance NFC reader/initiator front-end IC drivers for the ST25R300 device, running on STM32. It is built on top of STM32Cube software technology to ease portability across different STM32 microcontrollers.

This firmware package includes component device drivers, a board support package, and a sample application demonstrating usage of the X-NUCLEO-NFC12A1 expansion board with STM32 Nucleo boards.

A sample application configures the ST25R300 in a polling loop for active and passive device detection. When a passive tag or active device is detected, the reader field signals the detected technology by switching a corresponding LED on. It is also possible to set the ST25R300 in an inductive wake-up mode by pressing the user button. During this polling loop, the sample application also sets the ST25R300 in card emulation mode to detect the presence of a reader.

The demo logs all activities to the host the system with ST-LINK virtual COM port.

The supported RFID technologies in this demo are:

·

ISO14443A/NFCA.

·

ISO14443B/NFCB.

·

Felica/NFCF.

·

ISO15693/NFCV.

·

Card emulation Type A and F.

2.2

Architecture

This fully compliant software expansion for STM32Cube lets you develop applications using the ST25R300 high performance NFC reader/initiator IC. It is based on the STM32CubeHAL hardware abstraction layer for the STM32 microcontroller, and it extends STM32Cube with a board support package (BSP) for the X-NUCLEONFC12A1 expansion board.

Application software can access and use the X-NUCLEO-NFC12A1 expansion board through the following layers:

·

STM32Cube HAL layer: the HAL driver layer provides a simple set of generic, multi-instance application

programming interfaces (APIs) to interact with the upper layers (application, libraries, and stacks). These

generic and extension APIs are directly built on a common architecture and allow overlying layers like

middleware to implement their functions without depending on specific microcontroller unit (MCU) hardware

information. This structure improves the library code reusability and guarantees easy portability across

other devices.

·

Board support package (BSP) layer: the BSP provides support for the peripherals on the STM32 Nucleo

board, apart from the MCU. This set of APIs provides a programming interface for certain board-specific

peripherals like the LED, the user button etc. This interface also helps you identify the specific board

version.

·

Middleware NRF abstraction layer (RFAL): the RFAL provides several functions for RF/NFC

communication. It possesses RF IC (existing ST25R300 device) under a common and easy to use

interface.

The protocols provided by RFAL are:

·

ISO-DEP (ISO14443-4 data link layer, T = CL).

·

NFC-DEP (ISO18092 data exchange protocol).

UM3526 – Rev 1

page 3/15

UM3526
X-CUBE-NFC12 software expansion forSTM32Cube

·

NFC-AISO14443A (T1T, T2T, T4TA).

·

NFC-BISO14443B (T4TB).

·

NFC-FFeliCa (T3T).

·

NFC-VISO15693 (T5T).

·

P2PISO18092 (NFCIP1, Passive-Active P2P).

·

ST25TB (ISO14443-2 Type B with Proprietary Protocol).

Internally, the RFAL is divided into three sub layers:

·

RF higher layer (RF HL).

·

RF hardware abstraction layer (RF HAL).

·

RF abstraction layer (RF AL).

Figure 1. RFAL block diagram

The modules in the RF HAL are chip-dependent. They implement the RF IC driver, configuration tables, and specific instructions for the HW to perform the physical RF functions.

The interface for the caller is a shared RF header file, which provides the same interface for upper layers (for all chips).

The RFAL can be broken down into two further sub layers:

·

Technologies: technology modules which implement all the specifics, framing, timings, etc.

·

Protocols: protocol implementation including all the framing, timings, error handling, etc.

On top of these, the application layer uses RFAL functions like NFC Forum Activities (NFCC), EMVCo®, DISCO/ NUCLEO demo, etc.

The RFAL NFC module provides an interface to perform the common activities as poller/listener device.

Access to the lowest functions of the ICs is granted by the RF module. The caller can make direct use of any of the RF technology or protocol layers without requiring any specific hardware configuration data.

UM3526 – Rev 1

page 4/15

UM3526
X-CUBE-NFC12 software expansion forSTM32Cube
Figure 2. X-CUBE-NFC12 software architecture

2.3

Folder structure

Figure 3. X-CUBE-NFC12 package folders structure

The following folders are included in the software package:

·

Documentation: it contains a compiled HTML file generated from the source code, which details the

software components and APIs.

·

Drivers: it contains HAL drivers, board-specific drivers for each supported board or hardware platform,

including the on-board components, and the CMSIS vendor-independent hardware abstraction layer for the

Cortex®-M processor series.

·

Middlewares: it contains RF abstraction layer (RFAL). RFAL provides several functions required to perform

RF/NFC communication.

The RFAL possesses RF IC (ST25R300) under a common and easy to use interface.

·

Projects: it contains one sample application example, namely, NFC12A1_PollingTagDetect.

They are provided for the NUCLEO-L476RG, NUCLEO-G0B1RE or NUCLEO-C071RB platform for three development environments: IAR Embedded Workbench® for Arm, Keil® Microcontroller Development Kit (MDKARM), and STM32CubeIDE.

UM3526 – Rev 1

page 5/15

UM3526
X-CUBE-NFC12 software expansion forSTM32Cube

2.4

APIs

Detailed technical information about the APIs available to the user can be found in a compiled CHM file located inside the “RFAL” folder of the software package where all the functions and parameters are fully described.

Detailed technical information about the NDEF APIs is available in the .chm file stored in the “doc” folder.

2.5

Sample application

A sample application using the X-NUCLEO-NFC12A1 expansion board with the NUCLEO-L476RG, NUCLEOG0B1RE or NUCLEO-C071RB development board is provided in the “Projects” directory. Ready-to-build projects are available for multiple IDEs.

In this application, NFC tags of different types are detected by the ST25R300 high performance NFC reader/ initiator front-end IC (for further details, refer to the CHM documentation file generated from the source code).

After system initialization and clock configuration, LED1, LED2, LED3, LED4, LED5, and LED6 blink three times. Then LED6 glows to indicate the reader field has been activated.

When a tag is detected in proximity, an LED is switched on as listed below.

NFC tag type NFC TYPE A NFC TYPE B NFC TYPE V NFC TYPE F

Table 2. LED lit on tag detection LED lit on tag detection LED2/Type A LED3/Type B LED4/Type V LED5/Type F

If a reader approaches the X-NUCLEO-NFC12A1 expansion board, the software enters into card emulation mode and, depending on the command type sent, it switches the respective NFC TYPE LED on. By default, the X-NUCLEO-NFC12A1 does not write any data to the tag, but this possibility can be enabled by a preprocessor defined in the file demo.h. Card emulation and poller mode can also be enabled/disabled with the same procedure. The ST virtual communication port interface is also included in the package. Once the board is powered on, the board is initialized and enumerated as ST-LST-LINK virtual COM port.
Figure 4. Virtual COM port enumeration

After checking the virtual COM port number, open a Windows terminal (HyperTerminal or similar) with the configuration shown below (enable option: Implicit CR on LF, if available).

UM3526 – Rev 1

page 6/15

UM3526
X-CUBE-NFC12 software expansion forSTM32Cube Figure 5. UART serial communication configuration
The terminal window returns several messages similar to those shown below to confirm a successful connection. Figure 6. X-NUCLEO-NFC12A1 expansion board successful initialization and tag detection

UM3526 – Rev 1

page 7/15

3
3.1
3.1.1

UM3526
Systemsetup guide
System setup guide
Hardware description
STM32 Nucleo STM32 Nucleo development boards provide an affordable and flexible way for users to test solutions and build prototypes with any STM32 microcontroller line. The Arduino connectivity support and ST morpho connectors make it easy to expand the functionality of the STM32 Nucleo open development platform with a wide range of specialized expansion boards to choose from. The STM32 Nucleo board does not require separate probes as it integrates the ST-LINK/V2-1 debugger/ programmer. The STM32 Nucleo board comes with the comprehensive STM32 software HAL library together with various packaged software examples for different IDEs (IAR EWARM, Keil MDK-ARM, STM32CubeIDE, mbed and GCC/ LLVM). All STM32 Nucleo users have free access to the mbed online resources (compiler, C/C++ SDK and developer community) at www.mbed.org to easily build complete applications.
Figure 7. STM32 Nucleo board

3.1.2

X-NUCLEO-NFC12A1 expansion board The X-NUCLEO-NFC12A1 NFC card reader expansion board is based on the ST25R300 device.
The expansion board is configured to support ISO14443A/B, ISO15693, FeliCaTM communication.
The ST25R300 manages frame coding and decoding in reader mode for standard applications, such as NFC, proximity and vicinity HF RFID standards. It supports ISO/IEC 14443 Type A and B, ISO/IEC 15693 (single subcarrier only) and ISO/IEC 18092 communication protocols, as well as the detection, reading and writing of NFC Forum Type 1, 2, 3, 4 and 5 tags.
It also supports all common protocols such as Kovio, CTS, and B’.
The ST25R300 has noise suppression receiver (NSR), which allows for reception in a noisy environment.

UM3526 – Rev 1

page 8/15

Figure 8. X-NUCLEO-NFC12A1 expansion board

UM3526
Systemsetup guide

3.2

Software description

The following software components are needed in order to setup the suitable development environment for creating applications for the STM32 Nucleo equipped with the NFC expansion board:

·

X-CUBE-NFC12: it’s an expansion software for STM32Cube, dedicated to NFC applications development.

The X-CUBE- NFC12 firmware and related documentation is available on www.st.com.

·

Development tool chain and Compiler: the STM32Cube expansion software supports the three following

environments:

­ IAR Embedded Workbench for ARM® (EWARM) toolchain + ST-LINK.

­ Keil® Microcontroller Development Kit (MDK-ARM) toolchain + ST-LINK.

­ STM32CubeIDE + ST-LINK.

3.3

Hardware setup

The following hardware components are required:

·

One STM32 Nucleo development platform (suggested order code: NUCLEO-L476RG, NUCLEO-G0B1RE,

or NUCLEO-C071RB).

·

One ST25R300 high performance NFC reader/initiator IC expansion board (order code: X-NUCLEO-

NFC12A1).

·

One USB type A to Mini-B USB cable to connect the STM32 Nucleo to the PC.

UM3526 – Rev 1

page 9/15

3.4
3.4.1
3.5
3.5.1

UM3526
Systemsetup guide
Software setup
Development tool-chains and compilers Select one of the integrated development environments (IDE) supported by the STM32Cube expansion software and read the system requirements and setup information provided by the IDE provider.
System setup
STM32 Nucleo and X-NUCLEO-NFC12A1 expansion board setup The STM32 Nucleo board integrates the ST-LINK/V2-1 debugger/programmer. You can download the ST-LINK/ V2-1 USB driver at STSW-LINK009. The X-NUCLEO-NFC12A1 expansion board is easily plugged onto the STM32 Nucleo development board through the ArduinoTM UNO R3 extension connector. It interfaces with the STM32 microcontroller on STM32 Nucleo board through the SPI transport layer. The default hardware configuration is set up for SPI communication.
Figure 9. X-NUCLEO-NFC12A1 expansion board plus NUCLEO-L476RG development

UM3526 – Rev 1

page 10/15

Revision history
Date 11-Jun-2025

Table 3. Document revision history

Revision 1

Initial release.

Changes

UM3526

UM3526 – Rev 1

page 11/15

UM3526
Contents
Contents
1 Acronyms and abbreviations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 X-CUBE-NFC12 software expansion for STM32Cube. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.2 Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.3 Folder structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.4 APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.5 Sample application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3 System setup guide. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8 3.1 Hardware description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.1.1 STM32 Nucleo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3.1.2 X-NUCLEO-NFC12A1 expansion board . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3.2 Software description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 3.3 Hardware setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 3.4 Software setup. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.4.1 Development tool-chains and compilers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.5 System setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.5.1 STM32 Nucleo and X-NUCLEO-NFC12A1 expansion board setup. . . . . . . . . . . . . . . . . . 10
Revision history . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11 List of tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13 List of figures. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14

UM3526 – Rev 1

page 12/15

UM3526
List of tables

List of tables

Table 1. Table 2. Table 3.

List of acronyms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 LED lit on tag detection. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Document revision history . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

UM3526 – Rev 1

page 13/15

UM3526
List of figures

List of figures

Figure 1. Figure 2. Figure 3. Figure 4. Figure 5. Figure 6. Figure 7. Figure 8. Figure 9.

RFAL block diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 X-CUBE-NFC12 software architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 X-CUBE-NFC12 package folders structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Virtual COM port enumeration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 UART serial communication configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 X-NUCLEO-NFC12A1 expansion board successful initialization and tag detection . . . . . . . . . . . . . . . . . . . . . 7 STM32 Nucleo board . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 X-NUCLEO-NFC12A1 expansion board. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 X-NUCLEO-NFC12A1 expansion board plus NUCLEO-L476RG development . . . . . . . . . . . . . . . . . . . . . . . 10

UM3526 – Rev 1

page 14/15

UM3526
IMPORTANT NOTICE ­ READ CAREFULLY STMicroelectronics NV and its subsidiaries (“ST”) reserve the right to make changes, corrections, enhancements, modifications, and improvements to ST products and/or to this document at any time without notice. Purchasers should obtain the latest relevant information on ST products before placing orders. ST products are sold pursuant to ST’s terms and conditions of sale in place at the time of order acknowledgment. Purchasers are solely responsible for the choice, selection, and use of ST products and ST assumes no liability for application assistance or the design of purchasers’ products. No license, express or implied, to any intellectual property right is granted by ST herein. Resale of ST products with provisions different from the information set forth herein shall void any warranty granted by ST for such product. ST and the ST logo are trademarks of ST. For additional information about ST trademarks, refer to www.st.com/trademarks. All other product or service names are the property of their respective owners. Information in this document supersedes and replaces information previously supplied in any prior versions of this document.
© 2025 STMicroelectronics ­ All rights reserved

UM3526 – Rev 1

page 15/15

Documents / Resources

ST UM3526 Performance NFC Reader Initiator IC Software Expansion [pdf] User Guide
NUCLEO-G0B1RE, NUCLEO-L476RG, NUCLEO-C071RB, UM3526 Performance NFC Reader Initiator IC Software Expansion, UM3526, Performance NFC Reader Initiator IC Software Expansion, Reader Initiator IC Software Expansion, IC Software Expansion, Software Expansion

References

Leave a comment

Your email address will not be published. Required fields are marked *