Hi!
We are integrating the PN7150 with an iMX6ULL, but are having problems with the presence detection for generic MIFARE cards. When holding a card in front of the reader (in poll mode), the NFC stack will repeatedly report that the tag is lost and then found again, at very irregular intervals.
From what I can see, it is caused by a NCI_MSG_CORE_GEN_ERR_STATUS-message being returned from the NFCC during the presence check, but I don't know what causes this "generic error".
For our application, we only need to read the ID of the card, so we have patched out ndef detection & MIFARE commands from nfcDemoApp, as it seemed to cause other problems, and eased debugging.
The only other changes we have made is to disable LPCD, and raising the poll frequency (see the attached diff).
Note that the presence check seems to work fine with ISO15693 cards.
We are using the latest Linux release for the iMX6ULL (kernel 5.4.47, release 2.2.0), and the latest commit from linux_libnfc-nci (2aff644). We have also tested the earliest version possible for libnfc-nci (R2.1), but the problem happens there as well.
I have attached a log of the startup of nfcDemoApp and what happens when holding a card steadily over the reader for a few seconds, then removing it.
I have also attached an oscilloscope picture that shows the field turning off and on intermittently during polling.
Do you know why we are getting very unstable presence detection?