The PN532 is a highly integrated transmission module for contactless communication at
13.56 MHz including microcontroller functionality based on a 80C51 core with 40 Kbytes
of ROM and 1 Kbyte of RAM.
The PN532 combines a modulation and demodulation concept completely integrated for
different kinds of contactless communication methods and protocols at 13.56 MHz
(particularly Near Field Communication NFC), with an easy-to-use firmware for the
different supported modes and the required host interfaces.
The PN532 includes a switch to power an external SAM connected to S2C interface. It is
controlled by the embedded firmware.
AN10609_3
PN532 C106 application note
HOST
CONTROLLER
Interface with host controller : SPI or I2C or HSU.
Possibly one or two additional lines (H_REQ, IRQ).
This document intends to allow the customer getting quickly started with the PN532. It
summarizes commands needed to use the PN532 as a reader, as a card, or in a NFC
peer-to-peer communication. It gives an overview on possible interfaces with the host
controller.
Detailed description of the PN532 firmware can be found in the PN532 User manual (cf.
References table below).
Full description of the PN532 IC can be found in the PN532 Datasheet.
This document underlines differences between PN532C104 (p revious version not
produced anymore) and PN532C106.
The PN532C106 main differences compared with PN532C104:
“Low battery” mode is the start up mode of PN532C106. It is described page 21.
AN10609_3
PN532 C106 application note
- Possible host interface: HSU, I2C or SPI mode 0 (no more SPI mode 1, 2, 3)
- “Low battery” mode
References
Ref.number Document name
1 PN532 C106 user manual UM0701-02
2 PN532 Product Datasheet 115430.pdf
3 NFC Transmission Module Antenna and RF
7 NFCIP-1 specification ISO/IEC 18092 or ECMA340 specification
Glossary
NFC Near Field Communication
HSU High Speed UART
SMX Philips SmartMX (Memory Extension)
PCR Power, Clock and Reset controller
SAM Secure Access Module
MINT Multiple Interfaces
PMU Power Management Unit
DEP Data Exchange Protocol (see reference 7)
The PN532 is based on an 8051 core, with 40 Kbytes of ROM and 1Kbyte of RAM. The
chip contains a contactless UART, a contactless front end, a “PCR” block that controls
clocks and power.
It can be connected to the host controller in I2C, SPI or HSU (High Speed UART). One or
two more lines (IRQ and H_REQ) can be added. The interface is selectable using I0 and
I1 pins.
A SAM companion chip can be attached using S2C interface.
A part of the IC can be powered directly from a mobile battery (VBAT between 2.7V and
5.4V). The Pad power supply (PVDD) must be between 1.6V and 3.6V.
The SAM power supply SVDD is provided by the PN532.
At start up, the normal mode must be selected by connecting P35 and IRQ as defined
below. The two other modes (RF field on and Emu Joiner) are special modes useful only
for tests purposes.
No external resistors are required on P35 and IRQ pins.
Interface Selection Pin
P35 IRQ
Normal mode 1 1
Normal mode 1 0
EmuJoiner 0 1
RF field On 0 0
(pin #19) (pin #25)
DVDD/VBAT PVDD
DVDD/VBAT GND
GND PVDD
GND GND
AN10609_3
PN532 C106 application note
Three interfaces are available: I2C, SPI and HSU (high speed UART). The interface is
selectable by hardware (pin I0 and I1).
Interface Selection Pin
I0 I1
(pin #16) (pin #17)
HSU 0 0
GND GND
I2C 1 0
DVDD GND
SPI 0 1
GND DVDD
The embedded software manages the communication with the host controller (I2C, SPI,
or HSU interface, protocol on the host link) and the communication on the RF side.
P31 is not used to choose between handshake or standard mode: PN532C106
implements only handshake mode, whatever P31 configuration (It can be let not
connected).
2.2.1.2 SPI
Only SPI mode 0 is implemented in PN532C106. Consequently, P30 (pin 24) and P33
(pin 33) states don’t configure anymore the SPI mode. They can be let not connected
To stay in LowVbat mode, NSS must be kept in high state even when PVDD is not
present (NSS low is a wake up condition).
2.3 Host link protocol
No changes compared to PN532C104. Refer to [1] and [8]
The protocol used on host link is fully described in the PN532 User manual (cf.
References table on page 4)
AN10609_3
PN532 C106 application note
2.3.1 Standard frame
A basic exchange consists in a command frame sent by the host controller to the PN532,
an ACK frame sent by the PN532 as soon as the command is correctly received, and a
response frame, read by the host controller (polling mechanism or use of IRQ).
Fig 3. Normal exchange between host controller and the PN532
The information frame has an extended definition allowing exchanging more data
between the host controller and the the PN532 (theoretically up to 64kB).
In the firmware implementation of the the PN532, the maximum length of the packet data
is limited to 264 bytes (265 bytes with TFI included).
The structure of this frame is the following:
AN10609_3
PN532 C106 application note
0000FFTFILCSPD0 PD1……...DCSPDn00
FFLEN
FFLEN
M
L
Normal Packet Length Checksum : Fixed to FF value
Normal Packet Length: Fixed to FF value
Postamble
Packet Data Checksum
Packet Data
Specific TFI
Packet Length Checksum
Packet Length
Start of Packet Code
Preamble
Fig 6. Extended Information frame
The normal LEN and LCS fields are fixed to the 0xFF value, which is normally
considered as an erroneous frame, due to the fact that the checksum does not fit.
The real length is then coded in the two following bytes LEN
(MSByte) and LEN
ML
(LSByte) with:
LENGTH = LEN
x 256 + LEN
ML
coding the number of bytes in the data field (TFI and
PD0 to PDn)
¾LCS1 Packet Length Checksum LCS byte that satisfies the relation:
Lower byte of [LEN
+ LEN + LCS] = 0x00,
ML
¾DATALENGTH-1 bytes of Packet Data Information
The first byte PD0 is the Command Code.
The host controller, for sending frame whose length is less than 255 bytes, can also use
this type of frame.
But, the the PN532 always uses the suitable type of frame, depending on the length
(Normal Information Frame for frame <= 255 bytes and Extended Information Frame for
frame > 255 bytes).
Using Low Vbat functionality and SPI interface requires the following work around.
1. In case LowVbat functionality is not required
Always keep PVDD (and Vbat) present. Proceed as described in paragraph 2.5.2
2. In case LowVbat functionality is required
The interface pins will be used to achieve LowVbat mode. Therefore they must be connected to the host
controller.
Before switching off the host controller, change I0 to 1 and I1 to 0 (this put the PN532 in I2C
configuration)
Host sends a reset pulse (minimum 20ns, see datasheet p209) to PN532 via RSTPD_N
Wait a time off (2ms, see datasheet p209)
The PN532 will go in LowVbat mode and stays in this mode (25µA)
AN10609_3
PN532 C106 application note
Î An external reader can communicate with the SMX as a card
To wake up the PN532 (to exit LowVbat mode) and recover SPI communication
Host controller change I0 to 0 and I1 to 1 (restore SPI configuration)
Host controller sends a reset pulse (minimum 20ns) to PN532 via RSTPD_N
Wait a time off (2 ms)
Host controller sets NSS wake-up (high to low, CSN)
Î SPI communication can be performed (e.g. send command SAMConfiguration ’14 01’ to
switch to standard mode).
When changing I0 and I1, the internal configuration of pins 27, 28, 29, 30 (interface lines) is changed. See
table in paragraph 2.4.4 Default pin configuration.
Warning: It is also possible to switch to I0 and I1 to 0 (HSU). The advantage is that only I1 need to be
toggle. But in this mode, pin 28 MOSI/TX is strongly push pulled to high by PN532, which can prevent the
communication between the host controller and other chips on the SPI bus.
The PN532 is slave. A Status byte (Bit 0 of Status byte) indicates if the PN532 is ready to give a response
or not. First byte sent on MOSI by the host controller indicates which operation will be performed:
xxxx xx10 : Read (by the host) Status byte
xxxx xx01 : Write data (transmission from the host to the PN532)
xxxx xx11 : Read data (transmission from the PN532 to the host)
After having sent a command, the host controller must wait for bit 0 of Status byte equals 1 before reading
the data from the PN532.
Bytes are transmitted LSB first.
NSS must be toggle as shown in the user manual (reference 1) or in the next figures.
2.4.2.4 SPI waveforms
SPI waveforms for GetFirmware version command (example with SPI freq. 500 kHz).
Consequently, the default pin configuration is as described in the PN532 datasheet. (The
default pin configuration is not changed by the PN532C106 firmware).
Pin Configuration Additional information
I0 Input Connect directly to DVDD or to GND (no need of
I1
PVDD Power pin Externally supplied regulated voltage, 1.6V to 3.6V
RSTPD_N Input NFC reset signal. (Low state = reset)
P30 / UART_RX Quasi bi directional No need of external resistor.
P31 / UART_TX
P32_INT0
P33_INT1
P34 / SIC_CLK
P35
external resistor)
RSTPD_N must never exceed min(3.6 V, VBAT)
When connected to the P5CN072, to be used in Virtual
Card mode, P34 / SIC_CLK shall be connected to
P5CN072 I02
P70_IRQ Quasi bi directional No need of external resistor.
In the Application Note P70_IRQ will be written as IRQ
when used as interrupt line.
In I2C mode: Quasi bi directional No need of external resistor. MISO / P71
MOSI / SDA /
HSU_TX
NSS / P50_SCL /
HSU_RX
In SPI: Push pull No need of external resistor
In HSU: Quasi bi directional No need of external resistor
In I2C mode: Quasi bi directional No need of external resistor. SCK / P72
In SPI: Input No need of external resistor.
In HSU: Quasi bi directional No need of external resistor
In I2C mode: Open drain Use pull up, 1k/V. E.g. for PVDD = 3.3V, 3.3 k pull-up.
In SPI: Input No need of external resistor
In HSU: Push pull No need of external resistor
In I2C mode: Open drain Use pull up, 1k/V. E.g. for PVDD = 3.3V, 3.3 k pull-up.
In SPI: Input
Use resistor bridge or LDO and pull up to be able
•to keep NSS high even when PVDD =
0 (to stay in LowV
2.5.1 LowVbat mode (PN532C106 start up default mode)
PN532C106 starts in “Low Vbat” mode.
In this mode, the PN532C106 is in virtual card mode when an external field is
present, and in power down mode otherwise. In this mode, an external reader can
communicate with the SMX (connected to PN532C106 via its S2C interface).
¾ No interrupt (IRQ) will be returned by PN532C106 to its host controller.
¾ The host controller cannot wake up PN532 using HREQ/P32 line (pin 32).
2.5.2 To go out Low Vbat mode (i.e. to wake up PN532C106 after start up)
To go out “Low Vbat” mode, there are three conditions
• PVDD must be present.
• More over, to wake up the PN532C106, the host controller must
• In I2C
Send PN532 I2C address (48h). The PN532 will stretch low the SCL line during
1 ms (can be less depending on the quartz). The host controller shall wait for the
end of the stretching.
• In SPI
Set NSS low during 1 ms (can be less depending on the quartz)
• In HSU
Send a preamble 55 55 00 00 00 00 00 FF then Len LCS ….
• The ho st controller must send one of the following commands (using the wake up
conditions described just above)
− Either it wants to stay in virtual card mode. Then it shall send a command to
enable the interrupt generation (IRQ) by PN532C106. (The IRQ warns the host
controller that a transaction occurred between an external reader and the SMX).
The command to send is “SAM Configuration” with parameter Mode = virtual (02h)
and parameter IRQ use = yes (either put value 01h or omit the parameter).
So the command is ‘14 02 00’ (or ‘14 02 00 01’)
− Or it wants to go to normal mode. Then it shall send “SAM Configuration” with
parameter Mode = normal (01h). So the command is ‘14 01’
Once woken up, any command can be send like in PN532C104 (with handshake
mode)
NB: As soon as PVDD is present, the host controller must send a command to
enable the interrupt generation (IRQ) by PN532C106. (The IRQ warns the host
controller that a transaction occurred between an external reader and the
SMX). The command to send is “SAM Configuration” with parameter Mode = virtual
(02h) and parameter IRQ use = yes (either put value 01h or omit the parameter)
14 02 00 (or 14 02 00 01)
Instructions described in this paragraph are represented on the following diagram:
Power-Off
VBAT present (>2.5V)
PVDD has no impact
LowVbat mode
= Card Emulation with
No HREQ functionality
Send 14 01
(with no HREQ during command)
Send 14 02 00
(with no HREQ during command)
Card Emulation mode
Normal mode
with HREQ and IRQ informations
See Remark.
Battery Voltage too low for Mobile Call
Send 14 02 00 00
(with HREQ and IRQ informations)
Remark: In that modes, in order to fullfill the application requirements, any commands of t he User
Manual can be sent using HREQ and IRQ informations. These scenarios are not described in the
diagram.
The PN532 can be access using directly the firmware API described in reference 1 and
in the following pages (interface B in the figure 17). Or an upper software layer can be
used (NXP can provide this layer called Hardware Abstraction Layer (HAL) – HAL is the
interface A in the figure 17).
Note: PN51x, PNxxx, RCxxx represents other NXP NFC products. PN53x represents
PN531 or the PN532 product.
Fig 15. Possible softw are/hardware interface
The next paragraph described the “interface B”, i.e. the firmware commands.
The PN532 The PN532 Command
Command as Initiator as Target Code
InAutoPollX
Target
TgInitAsTarget X
TgSetGeneralBytes X
TgGetData X
TgSetData X
TgSetMetaData X
TgGetInitiatorCommand X
TgResponseToInitiator X
0x60
0x8C
0x92
0x86
0x8E
0x94
0x88
0x90
TgGetTargetStatus X
3.2.2 Errors codes
Error cause Error code
Time Out, the target has not answered 0x01
A CRC error has been detected by the contactless UART 0x02
A Parity error has been detected by the contactless UART 0x03
During a MIFARE anticollision/select operation, an erroneous
Bit Count has been detected
Framing error during MIFARE operation 0x05
An abnormal bit-collision has been detected during bit wise
anticollision at 106 kbps
Communication buffer size insufficient 0x07
RF Buffer overflow has been detected by the contactless
UART (bit BufferOvfl of the register CL_ERROR)
0x8A
0x04
0x06
0x09
In active communication mode, the RF field has not been
switched on in time by the counterpart (as defined in NFCIP-1
standard)
RF Protocol error (cf. reference [4], description of the
CL_ERROR register)
Temperature error: the internal temperature sensor has
detected overheating, and therefore has automatically
switched off the antenna drivers
Internal buffer overflow 0x0E
Invalid parameter (range, format, …) 0x10
DEP Protocol: The the PN532 configured in target mode does
not support the command received from the initiator (the
command received is not one of the following: ATR_REQ,
WUP_REQ, PSL_REQ, DEP_REQ, DSL_REQ, RLS_REQ,
ref. [1]).
DEP Protocol / Mifare / ISO/IEC 14443-4: The data format
does not match to the specification.
Depending on the RF protocol used, it can be:
• Bad length of RF received frame,
• Incorrect value of PCB or PFB,
• Invalid or unexpected RF received frame,
• NAD or DID incoherence.
0x0D
0x12
0x13
Mifare: Authentication error 0x14
ISO/IEC 14443-3: UID Check byte is wrong 0x23
DEP Protocol: Invalid device state, the system is in a state
which does not allow the operation
Operation not allowed in this configuration (host controller
interface)
This command is not acceptable due to the current context of
the the PN532 (Initiator vs. Target, unknown target number,
Target not in the good state, …)
The the PN532 configured as target has been released by its
initiator
The PN5321 and ISO/IEC 14443-3B only: the ID of the card
does not match, meaning that the expected card has been
exchanged with another one.
The PN5321 and ISO/IEC 14443-3B only: the card previously
activated has disappeared.
Mismatch between the NFCID3 initiator and the NFCID3
target in DEP 212/424 kbps passive.
This paragraph summarizes the PN532 functionalities and sho w s which commands are
associated to them.
The PN532 firmware implements functions to easily behave:
- As a NFC initiator or a NFC target (according to NFCIP-1 specification).
In this mode, RF communication is according to NFCIP-1 specification. Two NFC
devices can communicate together (peer to peer communication). One device is the
initiator: it starts the exchange and chooses the mode. The other device is the target.
Passive mode or active mode can be used. In active mode, each device generates
RF field when it transmits data (and switches RF field off at the end of the
transmission). In passive mode, only the initiator generates RF field. The target
answers in a load modulation scheme.
HOST
CONTROLLER
e.g. Mobile phone
RF com m unication
Fig 16. Peer to peer communication (NFC initiator and NFC target)
PN532PN532
CONTROLLER
- As a Mifare reader (Mifare protocol).
In this mode, RF communication is according to Mifare specification. the PN532
behaves as a Mifare reader. It can communicate with Mifare cards.
HOST
CONTROLLER
e.g. Mobile phone
PN532
RF communication
HOST
e.g. PDA
Fig 17. The PN532 as a Mifare reader
The PN532 has been tested with Mifare 1k, 4k, Ultralight, and DesFire cards.
- As a T=CL reader (ISO/IEC 14443-4 protocol)
In this mode, RF communication is according to ISO/IEC 14443-4 specification. the
PN532 behaves as an ISO/IEC 14443-4 reader. It can communicate with ISO/IEC
14443-4 cards (only ISO compliant cards are supported).
(The PN532 has been tested with CD97BX, CD light, Desfire, P5CN072 (SMX) as
ISO/IEC 14443-4 (with JCOP OS))
- As a Jewel card reader
The PN532 can communicate with Innovision Jewel cards. It has been tested with
IRT5001 card.
- As a FeliCa reader (FeliCa protocol)
In this mode, RF communication is according to FeliCa specification. the PN532 has
been tested with FeliCa RCS_860 and RCS_854
AN10609_3
- As a ISO/IEC 1443-A card
The PN532 is able to answer to an ISO/IEC 1443-4A reader. It contains a predefined
ATS (only historical bytes are configurable). In this mode, ATS will be sent
automatically to the reader which has sent a RATS. the PN532 handles automatically
waiting time extension (S(WTX)). The command from the reader is transmitted to the
host controller. The host controller builds the response and transmits it to the PN532.
the PN532 handles the encapsulation in ISO/IEC 1443-4 frame. Maximum up to 256
data bytes can be transmitted between the reader and the the PN532 (“short
APDU”).
- As a virtual card (in combination with a secure smart card)
In this mode, the PN532 is combined with a secure smart card. An external reader
sees the set the PN532+secure smart card as a contactless card.
HOST
CONTROLLER
PN532SMX
S2C interface
Connection with secure
smart card
RF communication
Mifare Reader
Fig 18. Virtual card mode
RFConfiguration command
This command, described in reference 1, allows changing some registers settings than
can influence the RF communication. The default values are described in reference 1.
The tuning depends on the environment, on the antenna and on the communication
mode.
Very few commands are needed to set up RF communication between the PN532 and
another device (reader, card, or other NFC device). The PN532 executes different RF
processes, depending on the type of communication, but from the host con troller to
the PN532, same commands are used (whatever the baudrate, the mode etc):
Paragraphs below explain which functions to use to communicate in each mode.
The Mifare commands supported by the PN532 firmware are listed in reference 1 and in
the following paragraphs.
For other commands, see 3.3.1.2
Typical sequence (example):
- Scanning for targets (cards) in the field,
- Possibly authenticate with the card,
- Read out the card memory (or any other Mifare commands, such as write),
- Halt the card, select another one, and perform any Mifare command with it
This typical sequence can be performed with the following commands:
- InListPassivTarget, to initialise one (several) cards (maximum two cards at the
same time)
- InDataExchange, to send Mifare commands
- InSelect, InDeselect, and InRelease to select, and release the card (this is
optional, see paragraph
3.3.7.3 on page 56).
Warning:
In case the card initialized indicates it supports ISO/IEC 14443-4 protocol (bit 5 of SAK,
cf. ISO/IEC 14443-3 specification), InListPassiveTarget command of the PN532 performs
automatically ISO/IEC 14443-4 activation (i.e. RATS sending). To disable automatic
RATS sending, SetParameter command must be used (cf. REFERENCE 1).
Table 1. SetParameter command usage to enable or disable automatic RATS sending (ISO/IEC 14443-4 mode)
Action Command
Disable automatic
sending of RATS
command
RATS will not be performed automatically by next InListPassiveTarget.command, even if the card indicates it supports ISO 14443-4
RATS will be performed automatically by next InListPassiveTarget.command, if the card indicates it supports ISO 14443-4
Mifare commands are briefly described hereafter. Refer to Mifare card
documentation to have a more detailed description of the Mifare command set
The Mifare specific command byte Cmd may take one of the possible values:
60h / 61h Authentication A / Authentication B (Mifare Standard)
Performs authentication sequence.
30h 16 bytes reading
Read one data block (16 bytes) at the selected address of the card.
A0h 16 bytes writing (Mifare Standard)
Write one data block (16 bytes) to the selected address of the card.
A2 h 4 bytes writing (Mifare Ultralight)
Write one data block (16 bytes) to the selected address of the card.
C1 h Increment
Increment the value block at the selected address of the card. The data structure of
the value block must be written in advance with a standard write command.
Data structure
Byte 0 3 4 7 8
11
Value Value
complement
C0 h Decrement
Decrement the value block at the selected address of the card. The data structure of
the value block must be written in advance with a standard write command.
B0h Transfer:
This function writes the prior calculated at the selected address of the card. It must
be called directly after Increment, Decrement or Restore.
C2h Restore
This function restores the value block at the selected address of the card.
SENS_RES and SEL_RES coding is described in ISO/IEC 18092 specification.
Timeout and number of retries
Activation phase (InListPassiveTarget command)
By default, the PN532 is configured to retry to detect a card as long as there is no
card detected. It can be changed using RFConfiguration command, item 5
(MaxRtyPassiveActivation parameter, c.f. UM0502-05).
If there is no card in the field, a timeout occurs after 5 ms. Either the PN532 retries to
find a card, if MaxRtyPassiveActivation > 1, or it sends a response to its host
controller, indicating that zero target has been found.
Communication phase (InDataExchange command)
By default, the timeout is set to 51.2 ms. It can be changed using RFConfiguration
command item 2 (UM0501-02 page 80).
Deactivation phase (InDeselect/InRelease command)
InDeselect or InRelease commands perform a HALTA request. The return status is
always “No error” (00h), even if the card did not respond (within 5 ms).
Note: It is not needed to use InDeselect (and InSelect) command to handle two
cards. Indeed, when using InDataExchange command, the PN532 automatically
wakes up the card corresponding to the desired TgNb, and automatically put in
HALT state the other one.
3.3.1.2 Other Mifare commands
PN532 InDataExchange command supports Mifare commands listed in the user manual
(reference 1). Commands not mentioned will return an error. However, it is possible to
send other commands (e.g. Mifare Plus new commands), using InCommunicateT hru
command.
// test InCommunicateThru for sending commands to Mifare Plus card
3.3.2 How to use the PN532 as a T=CL reader (ISO/IEC 14443-4)?
A typical sequence can be:
- Scan for targets (cards) in the field, (initialisation and activation of the card)
- Perform any T=CL command
- Deselect the card
This typical sequence can be performed with the following commands:
- InListPassivTarget, to initialise one (several) cards (maximum two cards at the
same time).
In case of Type A card, the RATS is sent automatically by this command. CID
parameter is set to 0 and FSDI is set to 5 (Î FSD = 64 bytes).
In case of Type B card, the default method used is the timeslot one. It can be
changed by indicated in the parameter of this command that the probabilistic
polling method must be used.
- InDataExchange, to send ISO/IEC 14443-4 commands
- InSelect, InDeselect, and InRelease to select, and release the card (this is
Table 3. The PN532 as a ISO/IEC 1443-4 reader. Type A card activation
Action Command
Scan for 1 target
in the field and
initialize it
Bit 5 of SEL_RES indicates the target is ISO/IEC 14443-4 compliant.
In that case the PN532 automatically sends the RATS(2). ATS is indicated in the response.
4A Command code: InListPassivTargets 4B
01 Number of cards to initialize (if present
01
00 Baud rate = 106 kbits/sec. Type A. 04 07
Table 4. The PN532 as a ISO/IEC 1443-4 reader. Type B card activation (timeslot method)
Action Command
Scan for 1 target
in the field and
initialize it
Type B card is activated. The default method used is the timeslot approach.
4A
01
03
00
4
Command explanation Response Response explanation
Command code: InListPassivTargets
Number of cards to initialize (if present
in the field) = 1
Baud rate = 106 kbits/sec Type B.
AFI
No other parameter : default timeslot
method will be used.
3.3.2.1 Timeout and number of retries
Activation phase (InListPassiveTarget command)
By default, the PN532 is configured to retry to detect a card as long as there is no
card detected. It can be changed using RFConfiguration command, item 5
(MaxRtyPassiveActivation parameter). The command is described in reference 1.
If there is no card in the field, a timeout occurs after 5 ms. Either the PN532 retries to
find a card, if MaxRtyPassiveActivation > 1, or it sends a response to its host
controller, indicating that zero target has been found.
Communication phase (InDataExchange command)
It depends on value returned by the card (FWT), as specified in ISO/IEC 14443-3
and -4. The waiting time extension mechanism is fully embedded inside the PN532.
The error handling and the chaining are also fully managed by the PN532.
Deactivation phase (InDeselect/InRelease command)
InDeselect or InRelease commands perform a S(Deselect) request.
AN10609_3
Note: It is not needed to use InDeselect (and InSelect) command to handle two
cards. Indeed, when using InDataExchange command, the PN532 automatically
wakes up the card corresponding to the desired TgNb, and automatically put in
HALT state the other one.
1 target detected
Target number 1
SENS_RES of target 1
SEL_RES
NFCID1 length = 8 bytes
NFCID1 of target 1
ATS
(1)
(1)
of target 1
Get application ID
Select application
Bit 5 of SEL_RES indicates the target is ISO/IEC 14443-4 compliant.
In that case the PN532 automatically sends the RATS . ATS is indicated in the response.
40
01
6A
DESfire commands, for example GetApplicationID command, can be sent with InDataExchange command .
01
5A 06 00 00
Command code: InDataExchange 41 Response command code
The cmd is intended to target number 1 00 Status = 0 (OK, no error)
DESfire command: GetApplicationID 00 01 00 00 02 00
Command code: InDataExchange 40 41 Response command code
The cmd is intended to target number 1 00 Status = 0 (OK, no error)
SelectApplication 06 00 00 00 Response of the card
This typical sequence can be performed with the following commands:
- InListPassivTarget, to initialise one (several) cards (maximum two cards at the
same time)
- InDataExchange, to transfer data/command bytes to the card (The PN532 does
not embed FeliCa protocol: it has to be included in the data bytes).
- InSelect, InDeselect, and InRelease to select, and release the card.
Table 7. The PN532 as a FeliCa reader
Action Command
Scan for 1 target
in the field and
initialize it
4A
01
01
00 FF FF
00 00
1
Command explanation Response Response explanation
Command code: InListPassivTargets Response command code
Number of cards to initialize (if present
in the field) = 1
Baud rate = 212 kbits/sec.
Payload field of polling request
3.3.4.1 Timeout and number of retries
Activation phase (InListPassiveTarget command)
By default, the PN532 is configured to retry to detect a card as long as there is no
card detected. It can be changed using RFConfiguration command, item 5
(MaxRtyPassiveActivation parameter). The command is described in reference 1
If there is no card in the field, a timeout occurs after 2.42 ms +(TSN+1)*1.21 ms.
TSN is the Time Slot Number field of the command.
Either the PN532 retries to find a card, if MaxRtyPassiveActivation > 1, or it sends a
response to its host controller, indicating that zero target has been found.
Communication phase (InDataExchange command)
By default, the timeout is set to 51.2 ms. It can be changed using RFConfiguration
command item 2. The command is described in reference 1.
Deactivation phase (InDeselect/InRelease command)
AN10609_3
InDeselect or InRelease commands perform no request. The return status is always
“No error” (00h),
3.3.5 How to use the PN532 as a Jewel cards reader ?
A typical sequence can be:
- Scan for targets (cards) in the field.
- Exchange data with the card.
This typical sequence can be performed with the following commands:
- InListPassivTarget, to initialise one (several) cards (maximum two cards at the
same time)
- InDataExchange, to transfer data/command bytes to the card
- InSelect, InDeselect, and InRelease to select, and release the card.
Table 8. The PN532 as a Jewel card reader
Action Command
Scan for 1 target
in the field and
initialize it
4A Command code: InListPassivTargets 4B Response command code
01 Number of cards to initialize (if present
04 Baud rate = 106 kbits/sec, type =
1
Command explanation Response Response explanation
in the field) = 1
Innovison Jewel
01 1 target detected
01 Target number 1
04 00 ATQA_RES
92 2E 58 32 Jewel ID
Exchange data
with the card
Jewel card has been initialised.
40
01
00
Command code: InDataExchange
The cmd is intended to target number 1
Command code
The PN532 transfers the data.
41 Response command code
00 Status = 0 (OK, no error)
01..FF Response of the card (exemple : 255
bytes, 01 to FF. Not all bytes are shown
here)
InDataExchange command is used to send the Jewel commands, described in Jewel
documentation.
Jewel command
Command description
code
0x00 Read all bytes
0x01 Read a single byte
0x1A Write-no-Erase a single byte
0x1C Write-no-Erase 8 bytes
0x53 Write-with-Erase a single byte
0x55 Write-with-Erase 8 bytes
3.3.6 How to use the PN532 as a reader for several types of cards (or targets)?
In case different types of cards can be used to communicate with the PN532 as reader,
InAutopoll command, described in reference 1, allows polling for several types of cards.
The host controller can poll for Mifare cards, FeliCa cards, Jewel cards, ISO/IEC 14443-4
cards, NFC targets.
A maximum of two cards, or one card and one NFC target, can be handled by the PN532
(except in case of FeliCa card, where only one card can be detected with InAutopoll
command).
The latest card/target detected remains in active mode, whereas the first one is put in
HALT/SLEEP state.
The host controller can specify up to 15 different modes to be polled (combining the type
such as Mifare, FeliCa, ISO/IEC 14443-4, Jewel, the baudrate (106, 212 or 424 kbps),
and possible the mode (active or passive) for NFC target).
The host controller also specifies the number of polling to be performed (1 to 254 or
infinite), and the polling period (i.e. the time duration of one polling, per unit of 150 ms).
After InAutoPoll command has been used, the card or the target is ready to communicate
with InDataExchange command.
Command code: InDataExchange 41 Response command code
The cmd is intended to target number 1 00 Status = 0 (OK, no error)
Data 99 88 77 Data (Response of the target)
handled.
Command code: InDeselect 44 45 Response command code
The cmd is intended to target number 1 00 Status = 0 (OK, no error)
DSL_REQ is sent with InDeselect command.
Command code: InSelect 54 55 Response command code
The cmd is intended to target number 1 00 Status = 0 (OK, no error)
WUP_REQ is sent with InSelect command.
Command code: InRelease 53 Response command code
The cmd is intended to target number 1 00 Status = 0 (OK, no error)
RLS_REQ is sent with InRelease command.
(1)
Command code and command parameters. Mandatory protocol encapsulation is not represented.
Would passive mode have been chosen by the initiator, the PN532 would have performed initialisation
(POL_REQ at 212/424 kbits/sec or SENS_REQ, SDD, SEL_REQ at 106 kbits/sec), plus activation
(ATR_REQ) and possible parameter selection (PSL_REQ).
Table 10. The PN532 as NFC initiator (“reader”) example 2
Action Command
Scan for 1 target
in the field and
initialize it
01
02
00 FF FF
00 00
1
Command explanation Response Response explanation
Command code: InListPassivTargets 4A
Number of cards to initialize (if present
in the field) = 1
Baud rate = 212 kbits/sec.
Payload field of polling request
Command code: InPSL4F Response command code
The cmd is intended to target number 1 Status = 0 (OK, no error)
New baud rate = 106 kbits/sec
The baud rate has been changed.
Command code: InDataExchange 41 Response command code
The cmd is intended to target number 1 00 Status = 0 (OK, no error)
Data 99 88 77 Data (Response of the target)
AA 99 88 77 66 55
44 33 22 11 00 00
00 09 01
00
Response command code
Status = 0 (OK, no error)
The PN532 transfers the data according to NFCIP-1 transport protocol. Error handling, chaining, time out extension are automatically
When using InJumpForDEP command, the PN532 performs autom atically PSL_REQ
if the target indicates a Length Reduction value corresponding to a buffer greater
than 64 bytes. But the actual LR used remains 64 bytes since the PN532 does not
support more. Moreover, the baudrate is not changed automatically.
However, as defined in NFCIP-1 specification, further PSL_REQ sending is not
allowed. Consequently, if the user wants to change the baudrate (in reception and in
transmission), he has to use InJumpForPSL command, followed by InPSL
command.
About InDeselect command
During Data Exchange Protocol (as defined in NFCIP-1), the host controller can use
this command to resynchronise target packet numbers (PNI).
Example:
The initiator sends InDataExchange command, an error is returned. Maybe the PNI
of the response is incorrect. The initiator sends InDeselect command followed by
InDataExchange. The PNI are re-synchronised.
AN10609_3
Timeout and number of retries
•Initialization phase in passive mode (InListPassiveTarget, InJumpForDEP
in passive, InJumpForPSL in passive)
By default, the PN532 is configured to retry to detect a card as long as there is no
target detected. It can be changed using RFConfiguration command, item 5
(MaxRtyPassiveActivation parameter).
The timeout depends on the baudrate. At 106 kbps, paragraph
424 kbps, paragraph
Either the PN532 retries to find a card, if MaxRtyPassiveActivation > 1, or it sends a
response to its host controller, indicating that zero target has been found.
•Activation phase in passive mode (InATR)
The default timeout is set to 102.4 ms. It can be changed using RFConfiguration
command item 2.
By default, the PN532 is configured to retry an infinite number of times in case no
targets are responding. It can be changed using RFConfiguration command, item 5
(MaxRtyATR parameter).
•Activation phase in active mode (InJumpForDEP in active, InJumpForPSL
in active)
The default timeout is set to 102.4 ms. It can be changed using RFConfiguration
command item 2.
3.3.7.2 How to use the PN532 as a target in a NFC peer-to-peer communication?
In this mode, the PN532 is configured as target, meaning it keeps waiting for an initiator
command.
The PN532 has no memory to emulate a card. After activation, all data received
must be transferred to the host controller. The host controller gets the data,
analyse them, and provide the response to the PN532. the PN532 transfers the
response from the host to the initiator. Initialisation/activation is handled
automatically by the PN532.
Typical exchange:
- Be ready to respond to an initiator, what ever the mode and the baud rate (be
able to send SENS_RES, NFCID1, SEL_RES or POL_RES and/or ATR_RES)
- Get data from the initiator and transfer them to the host controller
- Transfer response from the host to the initiator
AN10609_3
This typical sequence will be (most of the time) performed with the following commands:
- TgInitAsTarget, to configure the PN532 as a target,
- TgGetData, to wait for data coming from the initiator,
The target was waiting for any initialisation command. In this example, it has been initialised at 424 kbit/s in passiv mode. POL_Res and
ATR_RES have been automatically sent by the PN532
Wait for data to be
transferred to the
host controller
What are default timeout values of the PN532 as a target?
WT = 09h (ATR_RES parameter) Î RWT = 154ms approx.
RTOX = 07h (Timeout extension request parameter) Î RWT
How to fill TgInitAsTarget parameters?
Mode (1 byte)
Mode = 00h: any command (after initialisation if passive mode) is accepted.
Mode = 02h: only ATR_REQ (after initialisation if passive mode) is accepted, i.e. only
NFC transport protocol communication will done.
Mode = 04h: only RATS (after initialisation if passive mode) is accepted, i.e. only
ISO/IEC 1443-4 transport protocol communication will done.
The three mode can be combined.
Mifare params (6 bytes)
AN10609_3
= 1078ms approx.
INT
SENS_RES: (2 bytes) bit 7 and bit 6 must be set to 0 (NFCID1 size = single)
NFCID1t: 3 bytes configurable (NFCID1 is 4 bytes, the first byte is fixed to 08 according
to ISO/IEC 18092 specification).
SEL_RES: bit 6 must be set to 1 to indicate that NFC transport protocol is supported.
Typical value SEL_RES = 40h.
FeliCa™ params (18 bytes)
NFCID2t: 8 bytes. First two bytes must be set to 01h FEh.
PAD: 8 bytes
System code: 2 bytes. Typical value = FFh FFh.
NFCID3t (10 bytes)
Gt length (1 byte)
Length of general bytes (used in NFC transport protocol). It must be between 0x00 and
0x2F.
Gt (maximum 47 bytes)
General bytes.
Optional field.
The target uses these bytes to build the ATR_RES, as defined in NFCIP-1 specification.
The host controller can provide the target with these bytes:
• Either at start up of target mode, i.e. in TgInitAsTarget parameters.
• Or after having received the ATR_REQ. In that case, the bytes are transmitted
from the host controller to the PN532 using TgSetGeneralBytes command. It is
useful to use this command if the general bytes values of the ATR_RES are set
depending the received ATR_REQ.
In that case, it is required to use first SetParameters command to disable
automatic sending of ATR_RES upon reception of ATR_REQ. The ATR_RES
will be sent by TgSetGeneralBytes command.
Host
Controller
SetTAMAParameters
(fAutomaticATR_RES = 0)
SetTAMAParameters (OK)
ACK
TgInitTAMATarget(…)
ACK
PN532
target
NFC
Initiator
Q
E
R
_
R
T
A
TgInitTAMATarget
(Active, BR, ATR_REQ)
TgSetGeneralBytes(Gt)
ACK
TgSetGeneralBytes (OK)
A
T
R
_
R
E
S
i
s
n
o
t
s
e
n
t
AT
R
_
R
E
S
Fig 19. TgSetGeneralBytes
Tk length (1 byte)
Length of Historical bytes (used in ISO/IEC 14443 protocol)
Tk (maximum 48 bytes)
Optional field.
Tk contains the historical bytes to be used in the ATS when the PN532 is in ISO/IEC
The PN532 can handle 2 cards “at the same time”, or 1 card and 1 NFC target.
The PN532 memorizes the ID of the target/card and some information about it. It
attributes a logical number to each card/target detected. The host controller can
communicate with them using InDataExchange command and the appropriate logical
number. The host controller does not need to take care of putting card/target 1 into
SLEEP state before communicating with card/target 2: InDataExchange command
does it automatically.
However, the PN532 provides two commands corresponding to relevant RF requests
(depending on the mode, the baudrate, and the protocol)
InDeselect performs DSL_REQ or SLP_REQ or S(deselect) REQ (depending on the
target)
InSelect performs ALL_REQ or WUPA or POL_REQ or ATR_REQ (depending target)
- from initiator to target:
Large amount of data are sent by the initiator with InDataExchange function, in packets
of 252 bytes of data. The initiator must send InDataExchange command as many times
as necessary to transfer the complete amount of data.
The target must perform TgGetData and TgSetData functions as many times as
necessary to retrieve all packets sent by the initiator.
Metachaining mechanism
- From initiator to target:
One bit called MI (more information), in InDataExchange first parameter, indicates to the
target if data received are part of a large block. In that case, the target can directly
continue the exchange with TgGetData (no TgSetData needed).
AN10609_3
- From target to initiator:
The target can provide the initiator with large amount of data using TgSetMetaData
function. The initiator has sent a InDataExchange function. The response to the initiator
is sent via TgSetMetaData function instead of TgSetData function. In that case, one bit
indicates to the initiator that some data are still available at target side. The initiator shall
go on with a InDataExchange function (with no data sent from the intiator to the target).
Last packet of data will be transferred with TgSetData function.
Refer to the PN532 User manual (reference 1) for detailed explanation.
The baudrate on the RF interface is 106 or 212 or 424 kbps (bit rate as defined in
NFCIP1 specification).
The time to transfer a certain amount of useful data (i.e. excluding NFC protocol bytes
and host link protocol bytes), between two host controllers, each connected to the
PN532, depends on several parameters:
- The RF baudrate
- The amount of data:
o The PN532 length reduction
bytes max. The time to transfer the data depends on the number of
packets necessary.
o The number of packets on host link influences the transfer time as well.
the PN532 host protocol limits the size of useful data transmitted at once
to 252 bytes using standard frame or 264 using extended frame.
- The CPU frequency
1
is 0: packets size on RF interface is 64
AN10609_3
- The link used between the host controller and the NFC device (SPI or HSU or
I2C), and the speed chosen for the link (serial baudrate, I2C or SPI frequency)
- The target host controller speed: the initiator host controller can continue
transmitting data only after the target indicates it effectively received them. The
slowest the target, the longest the transmission time.
- The communication mode (active or passive) doesn’t influence the
performances.
Depending on these parameters, the transmission speed of useful data is up to 60 kbps.
By default, the ISO/IEC 1443-4 card emulation is enabled. (It can be disabled or enabled
using SetParameters command, described in reference 1).
In this mode, the PN532 sends automatically a predefined ATS (when it receives a
RATS). The historical bytes of the ATS can be personalized using TgInitTarget
command.
The C-APDU coming from the reader will be transmitted to the the PN532 host controller,
and the R-APDU from the host controller will be transmitted to the reader via the the
PN532. The the PN532 automatically handles waiting time extension (S(WTX)), so that
there is no potential problem of timeout whatever the time needed to elaborate the RAPDU.
Only short APDU are supported.
The commands to use to emulate a IS01443-4A card are:
- TgInitAsTarget, to configure the PN532 as a target
o One byte can configure the PN532 to act as a ISO/IEC 14443-4A card
only, i.e. not to respond to other readers than ISO/IEC 1443-4A readers
o The RF request from the reader will be automatically answered by the
PN532, including the ATS.
- TgGetData, to wait for data coming from the initiator,
o The S(WTX) are automatically sent and managed by the PN532
o Up to 255 data bytes can be received (short APDU). The complete frame
received is up to 261 data bytes (CLA, INS, P1, P2, P3, 255 data bytes,
Le)
- TgSetData, to respond to the initiator.
o Up to 256 data bytes can be sent to the reader (total frame can be up to
3.3.9 How to use Smart connectivity (combination of the PN532 and SMX)?
The term SmartConnect (Smart Connectivity) describes the usage of a Smart Card IC
in connection to the NFC IC.
Combining the PN532 and SMX (P5CN072) allows dealing with application that requires
security such as payment applications.
The frame delay time (FDT) can be adjusted in the PN532, thanks to bit 5 of register
address 0x630D. (DELAY_MF_SO bit of Manual Rcv register. See reference 2). The
embedded software sets DELAY_MF_SO to 1 (when command SA MConfiguration is
sent). To put it back to 0, a WriteRegister command can be used, after
SAMconfiguration.
In this document, the PN532 is used in combination with a smart card (SMX). S2C
interface is used.
The SMX power is supplied by the PN532 (SVDD). In case an external power supply is
used, it has to be between 2.7V and 3.3V.
Commands needed to use the PN532 + SMX are:
- SAMConfiguration, to chose between normal, wired or virtual mode,
- SetParameters, to possibly disable automatic RATS sending (T=CL mode).
In virtual card mode, the PN532 (+SMX P5CN072) is seen as a contact less secure
smart card. Only one command, SAMConfiguration, is needed to put the
PN532+P5CN072 (SMX) in this mode.
Optionally, the PN532 can be put into power down (the wake up sources are
configurable. Usually, it will be waken up by an external RF field or by INT0).
Once configured in virtual card mode, the PN532 only acts a bridge between SMX and
the external reader.
HOST
CONTROLLER
PN532SMX
Mifare or T=CL
Reader
S2C interface
Connection with secure
smart card
RF communication
Depending on the first command, after initialisation, sent by the reader, the PN532+SMX
will act as a Mifare card or as a T=CL card.
The PN532 is configured in virtual card mode. SMX is seen by an external reader as a contactless card.
1
(1)
Command explanation Response Response explanation
Command code:
Virtual card mode
No timeout
Command code and command parameters. Mandatory protocol encapsulation is not represented.
SAMConfiguration
15 14
02
00
Response command code
If handshake mode is used, the host controller will be informed by IRQ pin when a
transaction occurred between SMX and an external reader. The host controller shall then
send a GetGeneralStatus command, to get information about what happened.
It can then use wired card mode to communicate with SMX to check the result of the
transaction (for example, which application has been accessed).
In wired card mode, the host controller can access the SMX. Typically, after a transaction
occurred between SMX and an external reader, the PN532 access SMX to check what
happened.
SMX can communicate either in Mifare or in ISO/IEC 14443-4 protocol.
The PN532 used as reader sends automatically RATS if T=CL support is indicated in
SEL_RES of the card (bit 5). Consequently, to communicate with SMX using in Mifare
protocol, automatic sending of RATS by the PN532 must be disable, as shown in
15
on page 65.
Table
Table 14. The PN532 +SMX as wired ISO/IEC 1443-4 card
Action Command
Set the PN532 in
wired card mode
03
1
Command explanation Response Response explanation
Command code:
Wired card mode
SAMConfiguration
15 14
Response command code
The PN532 is configured in wired card mode. SMX is accessed by the PN532 as a contactless card.
Initialize the SMX
The PN532 communicates with the SMX as with a card. If SMX indicates T=CL compliance, the PN532 automatically sends RATS command.
4A
01
00
Command code: InListPassivTargets 4B Response command code
Number of cards to initialize = 1 01 1 target detected
Baud rate = 106 kbits/sec. 01 Target number 1
In this mode, both the PN532 (as a ISO/IEC 18092 passive 106kbps target) and
P5CN072 (ISO/IEC 14443-4A card at 106 kbps) will be visible from an external reader.
2 commands are needed:
- SAMConfiguration
- TgInitAsTarget
Table 16. The PN532 +SMX as wired ISO/IEC 1443-4 card
Action Command
Set the PN532 in
Dual card mode
1
Command explanation Response Response explanation
Command code:
Dual card mode
SAMConfiguration
15 14
04
Response command code
Configure the
PN532 as a target
SMX (P5CN072) and the PN532 can respond to a reader only after TgInitAsTarget command has been sent.
0x00 Read all bytes
0x01 Read a single byte
0x1A Write-no-Erase a single byte
0x1C Write-no-Erase 8 bytes
0x53 Write-with-Erase a single byte
0x55 Write-with-Erase 8 bytes
0X10 Read Segment
Command description
AN10609_3
3.4.2 Frame Delay time
Default The frame delay time (FDT) value changed between PN532C104 and
PN532C106
DELAY_MF_SO hardware default value is 0. But in PN532C104, the embedded
software sets DELAY_MF_SO to 1 (when command SAMConfiguration is sent).
In PN532C106, the embedded software doesn’t change DELAY_MF_SO (so its value
is 0)
Address of the register: bit 5 of register address 0x630D. (DELAY_MF_SO bit of
Manual Rcv register. See reference 2). To change the value a WriteRegister
command can be used, after SAMconfiguration.
3.4.2.1 Virtual card mode with no IRQ
When PN532C106 is configured by the host controller with SAMConfiguration command
in virtual card mode without IRQ (Command “14 02 00 00” : i.e. no IRQ will be generated
by PN532), the H_REQ line cannot be used by the host controller to wake up the PN532.
(The chip behaves like in Low Vbat mode, as described in paragraph 2.4)
3.4.3 InAutopoll
It is possible to poll for two FeliCa cards in the field with PN532C106 (not possible with
PN532C104).
• It is not possible to use an external clock with the PN532
• FeliCA SIC is not working properly in Wired mode
connection between SIGIN and the digital PLL in that mode.
•Metachaining in case of bad RF condition (RF error handling)
It is recommended not to use Metachaining functionality without a frame integrity
check mechanism implemented at the host side, because the PN532 can lose
some bytes, in case RF conditions are bad (this happens only in case of RF
communication problems)
DEP Metachaining on the target side:
When the tox-req is not seen over the air by the initiator on the last packet in a
metachained frame, the last packet erases the previous one in the response of
the command TgGetData.
DEP Metachaining on the initiator side:
The repetition of a frame, in case of non-receiving ACK, does not concatenate
the remaining bytes of a previous InDataExchange command
as there is a missing
The host controller (of both target and initiator) must implement a frame
integrity check mechanism, or shall use chaining mechanism only.
•Echo Back Test in 106 kbps on the target side:
The Diagnose command (NumTst = 0x05) is not functional the first time it is
launched.
Workaround: The host controller shall send the comm and TgInitAsTarget before
launching the Diagnose command (NumTst = 0x05) in 106 kbps
•ISO/IEC 14443-4A PICC emulation: R(ACK) resent after R(NACK) reception
(RF error handling)
Just after reset, in a chained frame, the R(ACK) is resent when a R(NACK) has
been received. In a second chained frame, the R(ACK) (with wrong block
number) is resent with some other data (the last TgSetData length) when a
R(NACK) has been received.
The host should reset the the PN532 acting as PICC by sending a soft reset
(writing 0x01 in the ControlRegister at address 0x6203)
•PN532 as Initator and PN512 as Target
DEP Metachaining on Initiator side: The number of remaining byte is not reset
If the last frame sent on the RF side is a concatenation of the last frame and the
remaining bytes of the previous frame on the host side, the number x of
remaining bytes is not reset. As a consequence, the last x bytes of the next RF
frame are sent twice
The host shall reset the number of remaining bytes when Metachaining is
finished (writing 0x00 at address 0x01E4)
Peer to peer exchange: the target is taken away from the initiator and is put
quickly back
when a PN531 configured as target is taken away from a PN532 configured as
initiator during a peer to peer exchange in Active mode, it may happen that the
PN531 does not respond an Attention response to an Attention request.
Instead, it begins a DEP exchange with MI bit set. So far, where the data within
the DEP exchange frame come from needs further investigation.
In addition, the PN532, receiving an INF pdu as response to an Attention
request, does not stop the exchange. Instead, it sends an ACK to the target; so,
the target continue its DEP exchange.
5.2 Initialization sequence to use the Normal modes (R/W, P2P…)
These are the cases using the SAM config command 14 01…
1. Command 14 01 sent to the PN532: The PN532 stretches the SCL line until woken
up.
IRQ is asserted when ACK and answer frames are ready.
(current consumption goes from around 25µA to around 20mA)
2. Now, the PN532 is in normal mode (same as default mode for C104).
The picture shows an example of command 02 (GetFirmwareVersion) sent to the
PN532: H_REQ is used, but is optional (Fig. 39 and 40 of user manual).
IRQ is asserted when ACK and answer frames are ready.
5.3 Initialization sequence to use the Card Emulation Mode with IRQ
information available
This the case using the SAM config command: 14 02 00.
1. Command 14 02 00 is sent to the PN532: The PN532 stretches the SCL line until
woken up.
IRQ is asserted when ACK and answer frames are ready.
(current consumption is around 25µA)
2. Now, the PN532 is in card emulation mode.
The picture shows an example of command 02 (GetFirmwareVersion) sent to the
PN532: H_REQ is used, but is optional (Fig. 41 and 42 of user manual).
IRQ is asserted when ACK and answer frames are ready.
(current consumption is around 25µA)
3. An external R/W does a contactless transaction, the PN532 informs the host
controller of this transaction.
The picture shows that once the RF transaction completion is detected, the PN532
asserts the IRQ line to inform the host controller.
(current consumption is around 25µA if out of external RF field, around 20mA if located in an external RF field)
Draft — The document is a draft version only. The content is still under
internal review and subject to formal approval, which may result in
modifications or additions. NXP Semiconductors does not give any
representations or warranties as to the accuracy or completeness of
information included herein and shall have no liability for the consequences
of use of such information.
6.2 Disclaimers
General — Information in this document is believed to be accurate and
reliable. However, NXP Semiconductors does not give any representations
or warranties, expressed or implied, as to the accuracy or completeness of
such information and shall have no liability for the consequences of use of
such information.
Right to make changes — NXP Semiconductors reserves the right to make
changes to information published in this document, including without
limitation specifications and product descriptions, at any time and without
notice. This document supersedes and replaces all information supplied prior
to the publication hereof.
Suitability for use — NXP Semiconductors products are not designed,
authorized or warranted to be suitable for use in medical, military, aircraft,
space or life support equipment, nor in applications where failure or
malfunction of a NXP Semiconductors product can reasonably be expected
to result in personal injury, death or severe property or environmental
damage. NXP Semiconductors accepts no liability for inclusion and/or use of
NXP Semiconductors products in such equipment or applications and
therefore such i nclusion and/or use is for the customer’s own risk.
Applications — Applications that are described herein for any of these
products are for illustrative purposes only. NXP Semiconductors makes no
representation or warranty that such applications will be suitable for the
specified use without further testing or modification.
6.3 Licenses
Purchase of NXP <xxx> components
<License statement text>
6.4 Patents
Notice is herewith given that the subject device uses one or more of the
following patents and that each of these patents may have corresponding
patents in other jurisdictions.
<Patent ID> — owned by <Company name>
6.5 Trademarks
Notice: All referenced brands, product names, service names and
trademarks are property of their respective owners.