Hardware - PN53X-Chip
Overview
There are three branches of the NFC Controllers based on the PN53x chipset. They are all manufactured by NXP.
- PN531 - ISO14443-A, MIFARE, FeliCa RF, UART, SPI, I²C, USB 2.0
- PN532 - ISO14443-A/B, MIFARE, FeliCa RF, UART, SPI, I²C, low-battery mode
- PN533 - ISO14443-A/B, MIFARE, FeliCa RF, UART, USB 2.0
We encourage manufacturers to contact us for new PN53x based products so we can test and support them.
Example
An example of assembled chip on the internal board of the ACR122 NFC Reader. The PN532 is marked with a red circle. The PN53x chip has a set of registers and a firmware that can parse a simple instruction set. It is possible to control the chip using one of these options.
The registers are quite similar to the predecessor chip PN51x. By changing the registers you are able to activate advanced options (bit-rate, modulation impedance, fault tolerance, etc.).
The instructions in stead are completely new. With help of these instructions it is very easy to let the chip do standard NFC functionality for you (polling, anti-collision, initiator-mode, target-mode, MIFARE-commands). This is very convenient for software developers. They don't need to know much about embedded hardware before they can start building applications using this chip.
Chip Instructions
The instruction set of the chip is proprietary. Luckily there are a lot documents available on the internet that are reveal these commands. With help of the available information it was possible to construct this library. libnfc provide most operations by just invoking the commands available in the PN53x instruction set. For some advanced features it changes a few register values. Currently only a small set of instructions are supported by libnfc, but it already provides a very powerful functionality. If you know more about this instruction set, or how to use it, we welcome you to share it in the developers community.
Some examples of this online documentation:
