<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://devzone.nordicsemi.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>NFC tag unresponsive after shutting down during concurrent read</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/126887/nfc-tag-unresponsive-after-shutting-down-during-concurrent-read</link><description>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</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Mon, 16 Feb 2026 11:41:07 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/126887/nfc-tag-unresponsive-after-shutting-down-during-concurrent-read" /><item><title>RE: NFC tag unresponsive after shutting down during concurrent read</title><link>https://devzone.nordicsemi.com/thread/561221?ContentTypeID=1</link><pubDate>Mon, 16 Feb 2026 11:41:07 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0eea4de7-230d-488c-bd4e-690d46aa203a</guid><dc:creator>K4RCAGI</dc:creator><description>&lt;p&gt;Hey Jonathan,&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I could reproduce the issue on the nRF52840-DK with the following example:&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;#include &amp;quot;Build.h&amp;quot;
#include &amp;quot;nrf_drv_clock.h&amp;quot;
#include &amp;quot;nrf_log.h&amp;quot;
#include &amp;quot;nrf_log_ctrl.h&amp;quot;
#include &amp;quot;nrf_log_default_backends.h&amp;quot;
#include &amp;quot;nrf_sdh.h&amp;quot;
#include &amp;quot;nrfx_rtc.h&amp;quot;
#include &amp;quot;hal/nrf_nfct.h&amp;quot;
#include &amp;quot;nfc_t2t_lib.h&amp;quot;
#include &amp;quot;nrf_delay.h&amp;quot;

//===================================================================
// Local Variables
//===================================================================

//===================================================================
//Local Function Prototypes
//===================================================================
/** @brief The processor enters a low-power state until one of a number of events occurs (e.g. interrupt).
 */
static void vEventHandler(void *pvContext, nfc_t2t_event_t tEvent, const uint8_t *pu8Data, size_t tDataLength);
static bool bFieldLostEvent = false;

void init();

//===================================================================
//Global Functions
//===================================================================

//===================================================================
// Local Functions
//===================================================================

// use the free rtc instance 2 (instance 0 -&amp;gt; softdevice, instance 1 -&amp;gt; libuarte)
static const nrfx_rtc_t rtcInstance = NRFX_RTC_INSTANCE(2);

uint32_t getRtc1Count(void)
{
    return nrfx_rtc_counter_get(&amp;amp;rtcInstance);
}
// nothing to do -&amp;gt; keep empty as it is a mandatory parameter for the rtc init
void irqHandler(nrfx_rtc_int_type_t tParam)
{
}

int main(void)
{
    init();
    uint8_t delay = 0U;

    // Enter main loop.
    for (;;)
    {
        while(NRF_LOG_PROCESS())
        {

        }
        if (bFieldLostEvent)
        {
            bFieldLostEvent = false;
            NRF_LOG_INFO(&amp;quot;delay: %d&amp;quot;, (int)delay);
            nrf_delay_ms(delay);

            (void)nfc_t2t_emulation_stop();

            const uint8_t payload[] = {0U, 1U, 2U, 3U, 4U, 5U, 6U, 7U, 8U, 9U};
            (void)nfc_t2t_payload_set(payload, 10U);
            (void)nfc_t2t_emulation_start();

            // (void)nfc_t2t_emulation_stop();
            // (void)nfc_t2t_emulation_start();
            delay = (delay + 1U) % 100U;
        }
    }
}

void init()
{
    nrfx_rtc_config_t rtc_config = NRFX_RTC_DEFAULT_CONFIG;
    //rtc_config.interrupt_priority = irq_prio_inc(p_config-&amp;gt;int_prio);

    rtc_config.prescaler = 0;
    ret_code_t tErrCode = nrfx_rtc_init(&amp;amp;rtcInstance, &amp;amp;rtc_config, irqHandler);
    APP_ERROR_CHECK(tErrCode);

    tErrCode = nrfx_rtc_cc_set(&amp;amp;rtcInstance, 0, INT16_MAX, false);
    nrfx_rtc_overflow_enable(&amp;amp;rtcInstance, true);
    APP_ERROR_CHECK(tErrCode);
    nrfx_rtc_enable(&amp;amp;rtcInstance);

    // initialize the nrf log module
    tErrCode = NRF_LOG_INIT(getRtc1Count);
    APP_ERROR_CHECK(tErrCode);
    NRF_LOG_DEFAULT_BACKENDS_INIT();

    // initialize the clock
    tErrCode = nrf_drv_clock_init();
    APP_ERROR_CHECK(tErrCode);

    // start LF clock needed by RTC (timer module).
    nrf_drv_clock_lfclk_request(NULL);
    while (nrf_drv_clock_lfclk_is_running() == false)
    {
        // wait
    };

    // start execution.
    NRF_LOG_INFO(&amp;quot;Start %s %02u.%02u.%02u&amp;quot;,
                 cProjectName,
                 MAJOR_SOFTWARE_VERSION,
                 MINOR_SOFTWARE_VERSION,
                 BUGFIX_SOFTWARE_VERSION);

    const uint32_t u32ErrorStatus = nfc_t2t_setup(vEventHandler, NULL);
    NRF_LOG_INFO(&amp;quot;T2T lib init error: %d&amp;quot;, u32ErrorStatus);

    const uint8_t payload[] = {0U, 1U, 2U, 3U, 4U, 5U, 6U, 7U, 8U, 9U};
    const uint32_t u32ErrorStatusPayload = nfc_t2t_payload_set(payload, 10U);
    NRF_LOG_INFO(&amp;quot;T2T lib payload set serror: %d&amp;quot;, u32ErrorStatusPayload);

    const uint32_t u32ErrorStatusStart = nfc_t2t_emulation_start();
    NRF_LOG_INFO(&amp;quot;T2T lib emulation start error: %d&amp;quot;, u32ErrorStatusStart);
}

static void vEventHandler(void *pvContext, nfc_t2t_event_t tEvent, const uint8_t *pu8Data, size_t tDataLength)
{
    (void)pvContext;   // unused
    (void)pu8Data;     // unused
    (void)tDataLength; // unused

    switch (tEvent)
    {
        case NFC_T2T_EVENT_FIELD_ON:
            NRF_LOG_INFO(&amp;quot;t2t event: NFC_FIELD_DETECTED&amp;quot;);
            break;

        case NFC_T2T_EVENT_FIELD_OFF:
            NRF_LOG_INFO(&amp;quot;t2t event: NFC_FIELD_REMOVED&amp;quot;);
            bFieldLostEvent = true;
            break;

        case NFC_T2T_EVENT_DATA_READ:
            NRF_LOG_INFO(&amp;quot;t2t event: NFC_TAG_READ&amp;quot;);
            break;

        case NFC_T2T_EVENT_STOPPED:
            NRF_LOG_INFO(&amp;quot;t2t event: NFC_T2T_EVENT_STOPPED&amp;quot;);
            break;

        default:
            NRF_LOG_INFO(&amp;quot;t2t event: DEFAULT&amp;quot;);
            break;
    }
}&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I added an artificial delay in the main loop before I turn off the NFC tag simulation and I only receive FIELD_DETECTED (not the high level T2T_FIELD_ON, but the low-level NFCT one) event after a few seconds, which makes my tag unresponsive.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;I also tried to stop and re-start the communication again (the lines commented out), but it didn&amp;#39;t help. The only thing that works for me is a processor reset.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Could you please try to reproduce it on your side as well? The key is to have an active NFC reader that reads the tag as fast as possible. In my case I only sent inventory commands (which generates FIELD_DETECTED and SELECTED events on&amp;nbsp;NFCT level) in an infinite loop as a separate application.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Attila&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: NFC tag unresponsive after shutting down during concurrent read</title><link>https://devzone.nordicsemi.com/thread/560891?ContentTypeID=1</link><pubDate>Wed, 11 Feb 2026 10:34:36 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f19a2a7c-f18d-44ca-aade-ce9aa2b31ce2</guid><dc:creator>JONATHAN LL</dc:creator><description>&lt;p&gt;Thanks, that would be much appreciated.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;I did find something that seems relevant or similar to the issue you describe here form another customer case that we also confirmed. The NFC gets stuck getting only a&amp;nbsp;&lt;span&gt;FIELDDETECTED event. Its possible to recover from this state by triggering SENSE or the DISABLE task, so calling nfc_t2t_emulation_stop/nfc_t2t_emulation_start.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Regards,&lt;br /&gt;Jonathan&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: NFC tag unresponsive after shutting down during concurrent read</title><link>https://devzone.nordicsemi.com/thread/560874?ContentTypeID=1</link><pubDate>Wed, 11 Feb 2026 09:07:35 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:25b09299-beda-4367-9ddb-ce6179fcf39b</guid><dc:creator>K4RCAGI</dc:creator><description>&lt;p&gt;Yes, I do have a dev kit. I&amp;#39;m gonna try to reproduce it on that as well. It might take me a few days though.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: NFC tag unresponsive after shutting down during concurrent read</title><link>https://devzone.nordicsemi.com/thread/560813?ContentTypeID=1</link><pubDate>Tue, 10 Feb 2026 14:45:31 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:edfd40d1-aff8-48e5-933d-aef6dca29f22</guid><dc:creator>JONATHAN LL</dc:creator><description>&lt;p&gt;Hi,&amp;nbsp;&lt;br /&gt;&lt;br /&gt;Do you have a nRF52840 DK? and have you tried reproducing it on the DK?&amp;nbsp;&lt;br /&gt;For us it is easier to benchmark these issues with the DK as a the reference hardware just to eliminate most other variables just in case.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
[quote user=""]I&amp;#39;d like to get some thoughts on this issue, has it ever been reported? I checked these 2 cases, but mine seems different:&amp;nbsp;[/quote]
&lt;p&gt;I will dig internally and see what I can find and get back to you.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Regards,&lt;br /&gt;Jonathan&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>