AnsweredAssumed Answered

PN7120 can't read tags - RAW Tag transceive failed

Question asked by Marko Lainovic on Aug 18, 2016
Latest reply on Oct 17, 2016 by Kan_Li

Hi all,

 

I am trying to utilize PN7120 NFC controller integrated on my company's device and it seems I can't make it to read/write tags properly.

I'll try to be thorough; to use this SoC, I have included pn54x drivers, inserted the device into the device tree and rebuilt the kernel with these changes. Upon system reboot, these are the messages I see, concerning the NFC:

 

pn54x_dev_init

pn54x_probe

pn544 0-0028: FIRM GPIO <OPTIONAL> error getting from OF node

pn544 0-0028: CLKREQ GPIO <OPTIONAL> error getting from OF node

0-0028 supply nxp,pn54x-pvdd not found, using dummy regulator

0-0028 supply nxp,pn54x-vbat not found, using dummy regulator

0-0028 supply nxp,pn54x-pmuvcc not found, using dummy regulator

0-0028 supply nxp,pn54x-sevdd not found, using dummy regulator

pn54x_probe: request irq_gpio 102

pn54x_probe: request ven_gpio 44

pn54x_probe : requesting IRQ 152

 

Afterwards, I've tried to build and use the demo app, which is shipped with libnfc-nci library. The module initialization (in code, this corresponds to function call nfcManager_doInitialize()) sometimes takes a long time to succeed, and sometimes it finishes in mere seconds. Once it succeeds, I try to use the demo app and these are the responses I get (doesn't matter if it's a poll or a write argument passed to the demo app, the answer is the same) :

 

Waiting for a Tag/Device...

  NFC Tag Found

       Type : 'Type A - Mifare Classic'

       NFCID1 :     '9C F9 7A FE '

       NDEF Content : NO

 

       RAW Tag transceive failed

  NFC Tag Lost

 

This answer is repeated indefinitely, under the assumption that the tag has been recognized. Sometimes, it won't read nothing at all.

I also get these various messages, via debug console, while I am running the demo app:

 

at91_i2c f0014000.i2c: controller timed out

pn54x_dev_read: i2c_master_recv returned -110

                                  .

                                  .

                                  .

pn54x_dev_release : closing 10,58

pn54x_dev_open : 10,58

pn54x_dev_ioctl, cmd=1074063617, arg=1

pn544_enable power on

pn54x_dev_ioctl, cmd=1074063617, arg=0

pn544_disable power off

pn54x_dev_ioctl, cmd=1074063617, arg=1

pn544_enable power on

                                  .

                                  .

                                  .

pn54x_dev_read: spurious interrupt detected   (many, many times)

                                  .

                                  .

                                  .

pn54x_dev_read: i2c_master_recv returned -121

 

These messages repeat over and over...

 

I have also tried to use the poll option on my phone (Nexus 5x) and it worked well, returning the NFC beam message, which leads me to believe that the hardware is functional and driver integration successful (see the response below).

 

Waiting for a Tag/Device...

 

  Device Found

 

       NDEF Message Received :

       Type : 'URI'

       URI : 'http://play.google.com/store/apps/details?id=com.wakdev.wdnfc&feature=beam

    

       106 bytes of NDEF data received :

       91 01 44 55 03 70 6C 61 79 2E 67 6F 6F 67 6C 65 2E 63 6F 6D 2F 73 74 6F 72 65 2F 61 70 70 73

       2F 64 65 74 61 69 6C 73 3F 69 64 3D 63 6F 6D 2E 77 61 6B 64 65 76 2E 77 64 6E 66 63 26 66

       65 61 74 75 72 65 3D 62 65 61 6D 54 0F 10 61 6E 64 72 6F 69 64 2E 63 6F 6D 3A 70 6B 67 63

       6F 6D 2E 77 61 6B 64 65 76 2E 77 64 6E 66 63

 

  Device Lost

 

Could you enlighten me what exactly does the message "RAW Tag transceive failed" mean and why can't I use the tags to read/write? I have several different tags and NFC cards which I've tried, none worked.

 

Any suggestions?
Thanks!

Outcomes