NFC Reader ST25R3911B
The NFC Device ST25R3911B can be used to read and write NFC-A compatible tags (tags that support the ISO/IEC 14443 standard), creating an NFC polling device.
This driver is intended to be used with the NFC Reader ST25R3911B Nucleo expansion board (X-NUCLEO-NFC05A1).
The driver is used in the NFC: Tag reader sample.
NFC Reader hardware
The X-NUCLEO-NFC05A1 is an Arduino-compatible shield that can be used to communicate over NFC. It contains the NFC Reader chip ST25R3911B.
The ST25R3911B can both generate its own field to read and write NFC tags and behave like a tag itself. It is a slave device, and the external microcontroller initiates all communication.
Communication is performed by 4-wire Serial Peripheral Interface (SPI). The ST25R3911B sends an interrupt request (pin IRQ) to the microcontroller. For the documentation of the NFC chip, see the ST25R3911B chip documentation.
Functionality
The driver provides the following functionality:
Detecting ISO/IEC 14443 A tags and reading their UID
Performing automatic collision resolution
Data exchange with the tag (write/read) with manually set Frame Delay Time
With auto-generated CRC
With manually generated CRC
Putting the tag to sleep
The driver currently supports only NFC-A technology.
Architecture
The driver consists of four layers:
Layer responsible for SPI communication
Layer to manage ST25R3911B interrupts
Layer with common reader functionality that can be shared by all NFC technologies
NFC-A layer, which is responsible for NFC-A technology activities
The driver requires calling its specific function periodically.
API documentation
include/st25r3911b_nfca.h
lib/st25r3911b/