Hi,
I have detected a possible issue either in the SDK or the silicon related to the NFC tag. In my project we shut down the label and enable it based on certain conditions and our testers reported that in rare cases the NFC tag remains unresponsive and unreadable after it's enabled. We use the the nRF52840 chip, the old SDK 17.1.0 and nfc_t2t_lib NFC simulation lib on a custom board.
To reproduce the issue, I used a FEIG NFC reader to periodically read out the NFC tag as quickly as possible (every ~40ms) while I made the system busy with some interrupts. These were BLE or GPIO related interrupts that make the NFC shutdown mechanism delay a few ms. Usually the nfc_t2t_emulation_stop() function is called at the moment we receive a NFC_T2T_FIELD_LOST event in the callback, but these mentioned interrupts can delay the call chain. By the time the emulation is stopped and the NFC label is disabled, we already receive the low-level FIELD_DETECTED and SELECTED events (those two will generate the NFC_T2T_FIELD_DETECTED event on higher level) from the next NFC reading session. In these scenarios, the NFC tag remains disabled after nfc_t2t_emulation_start() is called later and we only receive FIELD_DETECTED events on low-level and nothing on the T2T level.
I can also see that when the emulation starts and the label is enabled, we detect 3-4 events at the same time (usually FIELD_DETECTED, FIELD_LOST, SELECTED and event 284) and only the FIELD_DETECTED afterwards. My hypothesis is that somehow the concurrent reading interacts poorly with the shutdown mechanism and some interrupts get cached or stuck and when I re-enable the label it's in an inconsistent state of some sort and isn't able to communicate with the reader anymore.
I used the RTT backend to log the events coming directly from the NFCT interrupt handler (nrfx_nfct_irq_handler()). Below you can see the moment the NFC label is enabled again and multiple events occur at the same time (probably occurred during shutdown) and then only field detected events.

This behavior also occurs if I just randomly shut down the T2T simulation while I'm reading the label as frequently as possible. If the shutdown happens at the right moment (e.g after field lost event or even after the first field detected event but before the selected event), then the NFC label remains operational after simulation start. My workaround implementation works exactly like that, just ensuring that if we want to shut down the NFC label and there is a concurrent read session, we wait until the session is over and the field lost event is received.
I'd like to get some thoughts on this issue, has it ever been reported? I checked these 2 cases, but mine seems different: