Hi,
I'm using NFC library + PN5180 and chip based on freeRTOS.
I need to poll/read ICODE tags as fast as possibile. I tried to modify BasicDiscoveryLoop example to do this and force technology to PHAC_DISCLOOP_POS_BIT_MASK_V only and I got about 100ms per one loop/read tag.
But in my case I need to read 8 antennas connected via multiplexer in 250ms so 100ms is too much.
Is there any tips for this library to optimize it for fast poll time?
Thanks,
Marcin.
Hi Marcin,
Was your application focus on ICODE tag? If yes, maybe starting from the demo of NfcrdlibEx5_ISO15693 is better.
Have a great day,
Kan
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Sadly this not helped. The main problem is that this function:
status = phacDiscLoop_Run(pDiscLoop, PHAC_DISCLOOP_ENTRY_POINT_POLL);
Takes almost 170ms - it is way to much for this application. I just need to get information if tag is present or not and then read it. Maybe I should use phpalSli15693_xxx functions in this case ?
Hi Marcin,
How long do you need for this application? I will check with the expert if it is possible.
Have a great day,
Kan
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hi,
In a mean while I made some progres and got about 12ms per antenna. I do this by disabling all other bitmap configs and left only one:
wPasPollConfig |= PHAC_DISCLOOP_POS_BIT_MASK_V;
status = phacDiscLoop_SetConfig(pDiscLoop, PHAC_DISCLOOP_CONFIG_PAS_POLL_TECH_CFG, wPasPollConfig);
CHECK_STATUS(status);
status = phacDiscLoop_SetConfig(pDiscLoop, PHAC_DISCLOOP_CONFIG_ACT_POLL_TECH_CFG, 0);
CHECK_STATUS(status);
status = phacDiscLoop_SetConfig(pDiscLoop, PHAC_DISCLOOP_CONFIG_PAS_LIS_TECH_CFG, 0);
CHECK_STATUS(status);
status = phacDiscLoop_SetConfig(pDiscLoop, PHAC_DISCLOOP_CONFIG_ACT_LIS_TECH_CFG, 0);
CHECK_STATUS(status);
And now seems to work, but let me know if I miss something, or maybe something can be improved more.
Thanks,
Marcin.
Hi Marcin,
It is hard to tell, do you mind to provide the whole source file? Thanks for your patience!
Have a great day,
Kan
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hi Kan,
For we got good results, but still one the prototype (not exactly the same design like final product). We will test this on first target device when receive it and will let you know if need any support.
Thanks,
Marcin.
Yes, only ICODE tak, I will test it and let you know if this is better/faster.
Thanks,
Marcin.