
Page 9 of 27
ACR122U Application Programming iInterface
Version 1. 0 January 2008
\
ACR122 NFC Contactless Smart Card Reader
Basic Program Flow for Contactless Applications
Step 0. Start the application. The first thing is to connect the “ACR122U PCSC Interface”. The
ATR of the SAM (if a SAM is inserted) or a Pseudo-ATR “3B 00” (if no SAM is inserted) will
be returned. In other word, the SAM is always existed from the view of the application.
Step 1. The second thing to do is to change the operating parameters of the PN531. Set the
Retry Time to one.
Step 2. Poll a Contactless Tag by using “Direct Transmit” and “Get Response” APDUs (Tag
Polling).
Step 3. If no tag is found, go back to Step 2 until a Contactless Tag is found. #For ISO14443-4
tags polling, it may have to turn off the Antenna Field before starting another polling
process.
Step 4. Access the Contactless Tag by sending Pseudo APDUs. (Direct Transmit and Get
Response)
Step 5. If there is no any operation with the Contactless Tag, then go back to Step 2 to poll the
other Contactless Tag.
..
Step N. Disconnect the “ACR122U PCSC Interface”. Shut down the application.
Remarks:
1) Some Type A Tags may support both ISO14443-3 Type A and ISO14443-4 Type A
operating modes. For example, JCOP30 supports MIFARE 1K emulation (ISO14443-3) and
ISO14443-4. If the reader sends a RATS command to the tag, the ISO14443-4 mode will be
activated, or the tag remains in MIFARE 1K emulation mode (ISO14443-3). It is up to the
application to decide which operating mode to be activated. By default, the reader will
perform automatic ISO14443-4 activation if the tag supports ISO14443-4.
•To disable automatic ISO14443-4 activation: FF 00 00 00 03 D4 12 24
•To Enable automatic ISO14443-4 activation: FF 00 00 00 03 D4 12 34
2) The default Retry Time of the PN532 command “InListPassiveTarget” is infinity. That
means, after the polling command is sent out, the reader will wait until a valid tag is found.
If the application wants to get the immediate result of the polling command, please set the
Retry Time to one
•Set the Retry Time to one: FF 00 00 00 06 D4 32 05 00 00 00