Hi NXP technical team,
I am using custom PN5180 board base on your PN5180 schenematic but sometimes when I send REQA command (ISO14443A-3) without the card, the function phhalHw_Pn5180_WaitIrq run infinity (not using PN5180_IRQ pin).
I check it and i found this in pnhalHw_Pn5180_Wait.c :
do
{
/* Read the IRQ register and check if the interrupt has occured */
PH_CHECK_SUCCESS_FCT(statusTmp, phhalHw_Pn5180_Instr_ReadRegister(pDataParams, IRQ_STATUS, &dwRegister));
}while(!(dwRegister & dwIrqWaitFor));
I tried read TIMER1_STATUS register during the while statement but T1_VALUE field not change while T1_RUNNING field = 1.
What causes this problem?
Thanks.
Hi danielchen,
Thanks for your answer.
I also made a new one, and sometimes it still goes into the infinity loop. As your answer, the new one ends the loop when I put the tag in the range of its antenna, but the old one cannot.
Can I ask what the reason causes this problem? Can I fix it with either software or hardware or both?
I am temporarily fixing this problem using the MCU timer with the given timeout value, which is the same as the PN5180 Timer1 timeout value.
Thanks and best regards.
could you please let me know how can I reproduce this issue on my side with PN5180 EVK board? For the MCU timer, and timer on PN5180, maybe the difference is the accuracy.
You can set a bit in the ISR of Timer1, to check whether Timer1 is run.
I polling the tag by sending REQA command frequently in loop of main and sometime the system run into crashes.
I am using phpalI14443p3a_Sw_RequestA function for sending REQA command.
When the system is crashed, I still check the TIMER1_STATUS register, the T1_RUNNING field (bit 20) adrealy set to 1 but the T1_VALUE field not change.
I am worried the the cause of the error is our hardware. I think the issue due to passive electronic components error (do not meet reference).
If you put one tag in the range of the antenna the application should ends the loop and move on.