This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

NFC-Nrf52 doesn't respond wake-up command if crc check is disabled for rx

I implement a card emulation and the card itself doesn't conform to 14443A-3 crc check. I need to disable crc check on card selected event

NRF_NFCT->RXD.FRAMECONFIG &= ~NFCT_RXD_FRAMECONFIG_CRCMODERX_Msk;

However if I do that, on anticollition procedure, it doesn't respond to wake-up command and causes very strange behaviors on the reader.

If I don't disable crc check it works well.

If I try to re-enable crc check on SLP_REQ on EVENTS_RXFRAMEEND but it doesn't help.

Do you know how to bypass crc check and it still respects to sleep/wakeup command?

Thanks in advance.

Parents
  • FormerMember
    0 FormerMember

    The following code snipped from wake_on_nfc with NRF_NFCT->RXD.FRAMECONFIG &= ~NFCT_RXD_FRAMECONFIG_CRCMODERX_Msk; added, works fine when I test it here:

    int main(void)
    {
        utils_setup();
    		NRF_NFCT->RXD.FRAMECONFIG &= ~NFCT_RXD_FRAMECONFIG_CRCMODERX_Msk;
        // Turn on LED to indicate that the device entered System ON mode.
        bsp_board_led_on(BSP_BOARD_LED_0);
    		
    while (true)
    {
        if (m_system_off_mode_on)
        {
            nrf_delay_ms(100);
            // Enter System OFF mode.
            NRF_POWER->SYSTEMOFF = 1;
        }
    }
    }
    

    Is that what you meant, disable CRC and then wake up the chip?

  • Thanks for the testing :)

    But i meant NFC peripheral wakeup and sleep commands. From the nrf52832 spec

    The SLP_REQ is automatically handled by the NFC peripheral. 
    

    if CRC bit is enabled NFC behavior is correct

    | Rdr | 50  00  57  cd     |  ok | SLP_REQ |
    | Rdr | 52                 |     | WUPA    | wakeup request
    | Tag | 04  00             |     |         | This is the correct response for wakeup request
    

    If CRC bit is disabled then

    | Rdr | 50  00  57  cd     |  ok | SLP_REQ |
    | Rdr | 52                 |     | WUPA    | wakeup request
    | Rdr | 26                 |     | REQA    | Tag doesn't respond, timeout and reader send Reqest command
    | Tag | 04  00             |     |         | Tag responds correctly
    
Reply
  • Thanks for the testing :)

    But i meant NFC peripheral wakeup and sleep commands. From the nrf52832 spec

    The SLP_REQ is automatically handled by the NFC peripheral. 
    

    if CRC bit is enabled NFC behavior is correct

    | Rdr | 50  00  57  cd     |  ok | SLP_REQ |
    | Rdr | 52                 |     | WUPA    | wakeup request
    | Tag | 04  00             |     |         | This is the correct response for wakeup request
    

    If CRC bit is disabled then

    | Rdr | 50  00  57  cd     |  ok | SLP_REQ |
    | Rdr | 52                 |     | WUPA    | wakeup request
    | Rdr | 26                 |     | REQA    | Tag doesn't respond, timeout and reader send Reqest command
    | Tag | 04  00             |     |         | Tag responds correctly
    
Children
No Data
Related