[NCS 2.6.1] NFC T4T response timing

Hi,

I am trying to use nfc_t4t_lib and I have some issues because processing incoming data takes some time (around 100 ms) and therefore sending the response occurs late after receiving the command.

There is a similar post but in my case, I am not using BLE at the same time, thus it is not exactly the same: devzone.nordicsemi.com/.../nfc-t4t-response-timing-sdk-15-3

If I have a delay (> 4 ms) after NFC_T4T_EVENT_DATA_IND, 

  • nfc_t4t_response_pdu_send() returns success
  • But reader receives 6E00 status word, although this is absolutely not the data I have sent with nfc_t4t_response_pdu_send()
  • Moreover in the log, I observe the following error:

<err> nfc_platform: Tried to read data pointer: 4 bytes, read 0.
<err> nfc_platform: Reading nfc ring buffer failed, resetting ring buffer.

I was expecting the NFC T4T lib would send WTX to the reader until I call nfc_t4t_response_pdu_send() but it seems this is not the case. Am I missing something ?

Moreover, I was wondering: why NFC T4T library source code is not available ? Would it be possible to have access to it ?

Thanks and best regards,

Jean

Parents
  • I was expecting the NFC T4T lib would send WTX to the reader until I call nfc_t4t_response_pdu_send() but it seems this is not the case. Am I missing something ?

    You are not missing something. Will investigate internally. 


    Proposal for possible workaround:

    • set different FWI (Frame Wait Time) through nfc_t4t_parameter_set() to see if the possible race condition is resolved
    • change the NFC callback processing: modify the IRQ priority of the callback or change the processing flow to use a dedicated thread instead of Work Queue: CONFIG_NFC_OWN_THREAD, CONFIG_NFC_THREAD_PRIORITY and maybe some others to see if it can help


    Regards,
    Jonathan

Reply
  • I was expecting the NFC T4T lib would send WTX to the reader until I call nfc_t4t_response_pdu_send() but it seems this is not the case. Am I missing something ?

    You are not missing something. Will investigate internally. 


    Proposal for possible workaround:

    • set different FWI (Frame Wait Time) through nfc_t4t_parameter_set() to see if the possible race condition is resolved
    • change the NFC callback processing: modify the IRQ priority of the callback or change the processing flow to use a dedicated thread instead of Work Queue: CONFIG_NFC_OWN_THREAD, CONFIG_NFC_THREAD_PRIORITY and maybe some others to see if it can help


    Regards,
    Jonathan

Children
No Data
Related