2025-07-29 2:27 AM
Hi everyone,
I'm currently working with the ST25R3916B and trying to detect two NFC (ISO15693) tags simultaneously in the RF field.
I'm using two ST25TV02KC tags and placing them close together above the antenna.
However, my current implementation only ever returns one UID, even though both tags are clearly within range.
I’m using RFAL and currently calling the following flow:
I tried increasing discConf_.devLimit = 5 and enabling only techs2Find = RFAL_NFC_POLL_TECH_V, but it had no effect.
My questions:
What is the correct RFAL call sequence (including delays, state machines, etc.) to reliably detect multiple NFC tags (ISO15693 tags) at the same time?
Are there specific settings or steps to enable anti-collision / multiple tag detection in RFAL?
Could the issue be related to timing, wrong protocol sequence, or RF field saturation?
Any proven example with multiple ISO15693 tags and ST25R3916B working?
I would really appreciate any help, sample code, or advice on properly detecting both tags simultaneously.
Thanks in advance!
Solved! Go to Solution.
2025-07-29 5:42 AM
Hi,
Use the default demo_polling.c file and increase the discParam.devLimit
parameter to 2 in the demoIni()
function. When two tags are detected, the demoNotif()
callback is triggered in the RFAL_NFC_STATE_POLL_SELECT
state, and the rfalNfcGetDevicesFound()
function returns the list of devices. The demo displays the message: "Multiple Tags detected: 2". The first device is then selected, and the demo displays its UID.
The elementary RFAL sequence is as follows:
rfalNfcvPollerInitialize()
rfalFieldOnAndStartGT()
rfalNfcvPollerCollisionResolution()
Refer to "NFC-V Collision Resolution" in the rfalNfcPollCollResolution()
function for an example of this sequence.
Rgds
BT
2025-07-29 5:42 AM
Hi,
Use the default demo_polling.c file and increase the discParam.devLimit
parameter to 2 in the demoIni()
function. When two tags are detected, the demoNotif()
callback is triggered in the RFAL_NFC_STATE_POLL_SELECT
state, and the rfalNfcGetDevicesFound()
function returns the list of devices. The demo displays the message: "Multiple Tags detected: 2". The first device is then selected, and the demo displays its UID.
The elementary RFAL sequence is as follows:
rfalNfcvPollerInitialize()
rfalFieldOnAndStartGT()
rfalNfcvPollerCollisionResolution()
Refer to "NFC-V Collision Resolution" in the rfalNfcPollCollResolution()
function for an example of this sequence.
Rgds
BT