Datasheet

FAQ
Some of the more common questions on the forums related to the PN532 NFC/RFID
Breakout (http://adafru.it/364) and NFC Shield (http://adafru.it/789).
Can I have multiple shields on one Arduino?
Nope, the I2C library can have only one address per bus and the address is not adjustable! So one shield per
Arduino please!
Can I read or write to Mifare tags with the PN532 and Adafruit Libraries?
Absolutely! The Adafruit libraries include functions to authenticate, read and write individual blocks to Mifare Classic
cards. Before you can read or write a block you need to authenticate it with the appropriate key, and once the block
is authenticated you can read and write to your hearts content)!
For example, the key functions in the I2C library (which was written to go along with the NFC shield since it defaults
to I2C) are:
This is all you need to start reading and writing data, and you can verify the data using one of many Android
applications that support working with Mifare cards (a search for NFC will turn up plenty).
What level of NDEF support is included in the libraries?
At the moment, all NDEF features are experimental and incomplete. Only very basic test code has been written to
format a card for NDEF messages in a way that any NFC-enabled Android phone should be able to understand it,
and it was written and an extremely simple proof of concept.
We would like to improve NDEF support for Mifare tags in the near future and some initial planning has gone into
this, but at the moment our suggestion is to stick to plain text and 'vanilla' Mifare Classic reads and writes. You can
read and write Mifare Classic and Mifare Ultralight blocks from Android, and you don't need to used the more
complicated NDEF standard to simply pass data back and forth via a Mifare Classic or Ultralight card.
Does the PN532 support peer to peer communication to talk with my smartphone?
Yes, the PN532 supports peer to peer communication, but the SW support for this isn't implemented in the Adafruit
libraries.
Peer to peer communication with Android is possible, for example, but the actual implementation is quite
complicated on the PN532 side. You need to go through a lot of SW layers to communicate with Android in a way
that it understands -- it would require developing a full NDEF stack for the messages, SNEP and LLCP stacks, etc. --
which is unfortunately well beyond the scope of what we can offer on a development board at this price point.
All of the HW requirements for this are met with the Adafruit shield and breakout board, but the stack
uint8_t mifareclassic_AuthenticateBlock (uint8_t * uid, uint8_t uidLen,
uint32_t blockNumber, uint8_t keyNumber,
uint8_t * keyData);
uint8_t mifareclassic_ReadDataBlock (uint8_t blockNumber, uint8_t * data);
uint8_t mifareclassic_WriteDataBlock (uint8_t blockNumber, uint8_t * data);
Note: Please use the limited NDEF code with care. Formatting cards for NDEF support is currently a one way
operation, and should only be performed on cards you can dedicate to NDEF use.
© Adafruit Industries https://learn.adafruit.com/adafruit-pn532-rfid-nfc Page 37 of 42