I'm using the PN532 Shield with an Arduino Uno in I2C mode. After soldering on the headers the device worked with the readMifare example sketch. All was well until I decided to solder additional headers into the shield to make connections to an external breadboard.
After soldering these headers, the device now does not function properly. After digging around on the forums, it seems that the IRQ pin should normally be LOW and then pull HIGH when an RFID card is near the shield.
In my case, the IRQ pin is normally HIGH but pulls LOW momentarily whenever the sketch calls:
Code: Select all
success = nfc.readPassiveTargetID(PN532_MIFARE_ISO14443A, uid, &uidLength);
https://imgur.com/a/oKuHir4
Running the example sketch with the Adafruit_PN532 library in debug mode (with an additional print statement for receiving the ACK frame) shows the following on the serial monitor. Note that there were no RFID/NFC cards nearby when running this:
Code: Select all
Hello!
Hello!
Sending: 0x0 0x0 0xFF 0x2 0xFE 0xD4 0x2 0x2A 0x0
IRQ received
Reading: 0x0 0x0 0xFF 0x0 0xFF 0x0
ACK frame received
Reading: 0x0 0x0 0xFF 0x6 0xFA 0xD5 0x3 0x32 0x1 0x6 0x7 0xE8
Found chip PN532
Firmware ver. 1.6
Sending: 0x0 0x0 0xFF 0x5 0xFB 0xD4 0x14 0x1 0x14 0x1 0x2 0x0
IRQ received
Reading: 0x0 0x0 0xFF 0x0 0xFF 0x0
ACK frame received
Reading: 0x0 0x0 0xFF 0x2 0xFE 0xD5 0x15 0x16
Waiting for an ISO14443A Card ...
Sending: 0x0 0x0 0xFF 0x4 0xFC 0xD4 0x4A 0x1 0x0 0xE1 0x0
IRQ received
Reading: 0x0 0x0 0xFF 0x0 0xFF 0x0
ACK frame received
Waiting for IRQ (indicates card presence)
Reading: 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80
Sending: 0x0 0x0 0xFF 0x4 0xFC 0xD4 0x4A 0x1 0x0 0xE1 0x0
IRQ received
Reading: 0x0 0x0 0xFF 0x0 0xFF 0x0
ACK frame received
Waiting for IRQ (indicates card presence)
Reading: 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80
Sending: 0x0 0x0 0xFF 0x4 0xFC 0xD4 0x4A 0x1 0x0 0xE1 0x0
IRQ received
Reading: 0x0 0x0 0xFF 0x0 0xFF 0x0
ACK frame received
Waiting for IRQ (indicates card presence)
Reading: 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80
What would cause the shield to behave this way, and how can I fix it? Let me know if more info is needed.