We use PN5180 in our project and meet the issue in that moment PN5180 doesn't raise IRQ signal as normally(measure by oscilloscope and debug printing). So, the current software thread just loops there for the waiting. By troubleshooting, software is waiting at
phhalHw_Pn5180_DataParams_t * pDataParams,
uint32_t * dwIrqReg
statusTmp = phOsal_Event_WaitAny(E_PH_OSAL_EVT_RF | E_PH_OSAL_EVT_ABORT, PH_MAX_DELAY, &tReceivedEvents);
Then try to control PN5180 by using another software thread sends command(e.g. Polling card typeA, get firmware version PN5180). IRQ pin will be raised(PN5180 still works properly) and we can see that the software thread can pass over the waiting, works properly again.
The issue is very easy to reproduce by putting two boards close together (each includes: MCU, PN5180, antennas). Sometimes, it also happens when waking up PN5180 from standby state.
- Are there any report from the community so far about the issue No IRQ from PN5180 sometime?
- Do you have any suggestion/advice to avoid the issue?
- For the current implementation of NxpNfcRdLib, it may loop there forever( PH_MAX_DELAY) to wait for the IRQ from PN5180. And, it may not ensure completely that the IRQ of PN5180 always works properly. So, how do you think about this case?
Thank you in advance!
Yes, I add a timer(1.5s) there and found that our readers will be able to over the loop then work properly. So we might conclude that the noise RF between devices(each contains: MCU, PN5180, antennas). Do you have any suggests for us? (both from hardware design and software flow control)
The AN11740 Antenna design guide may help you. You can download the AN from here:
No report about no irq from pn5180 so far.
You may add a timer function in the loop so can break out from the loop when time over.