Hi,
I am working with the nRF54L15 on sdk-nrf 3.2.3 and I am experiencing an unexpected behaviour with the NFC T4T stack regarding WTX frame timing.
Here is the observed sequence:
- t = 0 ms: the PICC receives a command from the PCD
- t = 4.8 ms: the PICC answers with a WTX request
- t = 6 ms: the PCD acknowledges the WTX request
- t = 15 ms: the response is ready and sent by calling nfc_t4t_response_pdu_send function
- t = 83 ms: the PICC sends a WTX request (~77 ms after receiving the first WTX ACK)
- t = 84.2 ms: the PCD acknowledges the WTX request
- t = 84.3 ms: the PICC finally sends the response
The response was ready at t = 15 ms, well before the FWT expiration at ~83 ms. I call nfc_t4t_response_pdu_send directly inside the NFC_T4T_EVENT_DATA_IND callback, and the function returns 0 (success). Despite this, the lib does not emit the response immediately — it still waits for the FWT to expire, sends a WTX, and only transmits the response after receiving the WTX acknowledge.
As far as I understand ISO 14443-4, the FWT is a maximum delay, not a mandatory one. The PICC is allowed to respond at any point before the FWT expires, and a WTX should only be necessary when more time is actually needed. There is no requirement to wait for the timer to fire.
My question is:
Is there a known reason why the nfc_t4t library does not interrupt the internal WTX timer and send the response frame immediately when nfc_t4t_response_pdu_send is called before the FWT expires? Any guidance or workaround would be greatly appreciated.
Thank you.