UM3526 Performance NFC Reader Initiator IC Software Imugboroosi
“
ọja Alaye
Awọn pato
- Product Name: X-CUBE-NFC12 high performance NFC
reader/initiator IC software expansion - Compatibility: STM32Cube ecosystem
- Awọn ẹya pataki:
- 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
Awọn ilana Lilo ọja
Pariview
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.
Ṣeto
- Connect the X-NUCLEO-NFC12A1 expansion board to a compatible
NUCLEO development board. - Download and install the X-CUBE-NFC12 software package from the
STM32Cube ecosystem weboju-iwe. - Follow the provided instructions for configuring the software
package.
Lilo
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
lori.
Afikun Awọn ẹya ara ẹrọ
- Set the ST25R300 in inductive wake-up mode by pressing the user
bọtini. - Detect the presence of a reader by setting the ST25R300 in card
mode emulation. - 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
Itọsọna olumulo
Getting started with the X-CUBE-NFC12 high performance NFC reader/initiator IC software expansion for STM32Cube
Ọrọ Iṣaaju
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.
Awọn ọna asopọ ti o jọmọ
Ṣabẹwo si eto ilolupo STM32Cube web oju-iwe lori www.st.com fun alaye siwaju sii
UM3526 – Rev 1 – Okudu 2025 Fun alaye siwaju sii, kan si ọfiisi tita STMicroelectronics agbegbe rẹ.
www.st.com
1
Acronyms ati abbreviations
Acronym NFC RFAL P2P MCU BSP HAL LED SPI
CMSIS
Table 1. Akojọ ti awọn acronyms Apejuwe
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 ati abbreviations
UM3526 – Ìṣí 1
ojú ìwé 2/15
UM3526
X-CUBE-NFC12 software expansion forSTM32Cube
2
X-CUBE-NFC12 imugboroja sọfitiwia fun STM32Cube
2.1
Pariview
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 ohun elo lati ri NFC tags ti o yatọ si orisi.
·
Sample implementations available for the X-NUCLEO-NFC12A1 expansion board plugged onto a
NUCLEO-G0B1RE or NUCLEO-L476RG or NUCLEO-C071RB development board.
·
Irọrun gbigbe kọja awọn idile MCU oriṣiriṣi, o ṣeun si STM32Cube.
·
Complete RF/NFC abstraction (RFAL) for all major technologies, including complete ISO-DEP and NFC-
DEP layers.
·
Ọfẹ, awọn ofin iwe-aṣẹ ore-olumulo.
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.
Awọn imọ-ẹrọ RFID ti o ni atilẹyin ninu demo yii jẹ:
·
ISO14443A/NFCA.
·
ISO14443B/NFCB.
·
Felica/NFCF.
·
ISO15693/NFCV.
·
Card emulation Type A and F.
2.2
Faaji
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
awọn ẹrọ miiran.
·
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
ti ikede.
·
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
ni wiwo.
Awọn ilana ti RFAL pese ni:
·
ISO-DEP (ISO14443-4 data link layer, T = CL).
·
NFC-DEP (ISO18092 data exchange protocol).
UM3526 – Ìṣí 1
ojú ìwé 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).
olusin 1. RFAL Àkọsílẹ aworan atọka
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.
·
Awọn Ilana: imuse ilana pẹlu gbogbo awọn fireemu, awọn akoko, mimu aṣiṣe, ati bẹbẹ lọ.
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 – Ìṣí 1
ojú ìwé 4/15
UM3526
X-CUBE-NFC12 software expansion forSTM32Cube
olusin 2. X-CUBE-NFC12 software faaji
2.3
Ilana folda
Figure 3. X-CUBE-NFC12 package folders structure
Awọn folda wọnyi wa ninu package sọfitiwia:
·
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 elo example, namely, NFC12A1_PollingTagWadi.
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 – Ìṣí 1
ojú ìwé 5/15
UM3526
X-CUBE-NFC12 software expansion forSTM32Cube
2.4
APIs
Alaye imọ-ẹrọ ni kikun nipa awọn API ti o wa fun olumulo ni a le rii ninu CHM ti o ṣajọ 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 ti o ti fipamọ ni awọn "doc" folda.
2.5
Sample elo
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.
Nigbati 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.
olusin 4. Foju COM ibudo enumeration
Lẹhin ti ṣayẹwo nọmba ibudo COM foju, ṣii ebute Windows kan (HyperTerminal tabi iru) pẹlu iṣeto ti o han ni isalẹ (aṣayan mu ṣiṣẹ: CR ti ko tọ lori LF, ti o ba wa).
UM3526 – Ìṣí 1
ojú ìwé 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 wiwa
UM3526 – Ìṣí 1
ojú ìwé 7/15
3
3.1
3.1.1
UM3526
Systemsetup guide
Itọsọna iṣeto eto
Apejuwe Hardware
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.
olusin 7. STM32 Nucleo ọkọ
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 – Ìṣí 1
ojú ìwé 8/15
olusin 8. X-NUCLEO-NFC12A1 imugboroosi ọkọ
UM3526
Systemsetup guide
3.2
Software apejuwe
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
awọn agbegbe:
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
Awọn paati hardware wọnyi ni a nilo:
·
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 – Ìṣí 1
ojú ìwé 9/15
3.4
3.4.1
3.5
3.5.1
UM3526
Systemsetup guide
Eto software
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.
Eto eto
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 – Ìṣí 1
ojú ìwé 10/15
Àtúnyẹwò itan
Ọjọ 11-Jun-2025
Table 3. Iwe itan àtúnyẹwò
Atunyẹwo 1
Itusilẹ akọkọ.
Awọn iyipada
UM3526
UM3526 – Ìṣí 1
ojú ìwé 11/15
UM3526
Awọn akoonu
Awọn akoonu
1 Acronyms and abbreviations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 X-CUBE-NFC12 software expansion for STM32Cube. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1 Ipariview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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
Itan atunṣe. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11 Akojọ ti awọn tabili. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13 Akojọ ti awọn isiro. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14
UM3526 – Ìṣí 1
ojú ìwé 12/15
UM3526
Akojọ ti awọn tabili
Akojọ ti awọn tabili
Table 1. Table 2. Table 3.
List of acronyms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 LED lit on tag detection. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Document revision history . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
UM3526 – Ìṣí 1
ojú ìwé 13/15
UM3526
Akojọ ti awọn isiro
Akojọ ti awọn isiro
olusin 1. olusin 2. olusin 3. olusin 4. olusin 5. olusin 6. olusin 7. olusin 8. olusin 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 – Ìṣí 1
ojú ìwé 14/15
UM3526
AKIYESI PATAKI KA Ṣọra STMicroelectronics NV ati awọn ẹka rẹ (“ST”) ni ẹtọ lati ṣe awọn ayipada, awọn atunṣe, awọn imudara, awọn atunṣe, ati awọn ilọsiwaju si awọn ọja ST ati/tabi si iwe yii nigbakugba laisi akiyesi. Awọn olura yẹ ki o gba alaye tuntun ti o wulo lori awọn ọja ST ṣaaju gbigbe awọn aṣẹ. Awọn ọja ST jẹ tita ni ibamu si awọn ofin ati ipo ST ti tita ni aye ni akoko ifọwọsi aṣẹ. Awọn olura nikan ni iduro fun yiyan, yiyan, ati lilo awọn ọja ST ati ST ko dawọle kankan fun iranlọwọ ohun elo tabi apẹrẹ awọn ọja awọn olura. Ko si iwe-aṣẹ, ṣalaye tabi mimọ, si eyikeyi ẹtọ ohun-ini ọgbọn ti a fun ni nipasẹ ST ninu rẹ. Tita awọn ọja ST pẹlu awọn ipese ti o yatọ si alaye ti a ṣeto sinu rẹ yoo sọ atilẹyin ọja eyikeyi di ofo fun iru ọja bẹẹ. ST ati aami ST jẹ aami-iṣowo ti ST. Fun afikun alaye nipa awọn aami-išowo ST, tọka si www.st.com/trademarks. Gbogbo ọja miiran tabi awọn orukọ iṣẹ jẹ ohun-ini ti awọn oniwun wọn. Alaye ti o wa ninu iwe yii bori ati rọpo alaye ti a ti pese tẹlẹ ni eyikeyi awọn ẹya iṣaaju ti iwe yii.
© 2025 STMicroelectronics Gbogbo ẹtọ wa ni ipamọ
UM3526 – Ìṣí 1
ojú ìwé 15/15
Awọn iwe aṣẹ / Awọn orisun
![]() |
ST UM3526 Performance NFC Reader Initiator IC Software Expansion [pdf] Itọsọna olumulo 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 |