Skip to main content
Explorer II
September 14, 2023
Solved

Getting CRC_ERR on rflaNfcvPollerReadMulitpleBlocks

  • September 14, 2023
  • 1 reply
  • 1239 views

Hi everyone,

I've just migred my project from st25r95 to st25r2916 NFC chip. Finally I could reach a good point where seem to be all working again.

But I have one issue with rfalNfcvPollerReadMultipleBlocks() function.

Firstly, I want to describe you the sequence I do to execute the function I said above:

1. I do an Inventory to discover the tag UID

2. I use rfalNfcvPollerGetSystemInformation() to retrieve the information about the TAG

3. Finally, I use rfalNfcvPollerReadMultipleBlocks(RFAL_NFCV_REQ_FLAG_DEFAULT | RFAL_NFCV_REQ_FLAG_SELECT, NULL, 0, 2-1, &data[0], (2 * 4+ 1), 7);

NOTE:

  • number of blocks = 2
  • block size = 4
  • data is a buffer 
  • I am using a non-addressed mode, but in addressed mode the behavior is the same

With this configuration, I get CRC_ERR (0x15) as a return code.

I don't understand what it means. Could you kindly explain it to me, please? What could cause this error?

Thank you very much.

Enric Puigvert

    This topic has been closed for replies.
    Best answer by Ulysses HERNIOSUS

    Hi Enric,

    ST25R39xx devices are doing the NFC-V decoding in software. The driver needs two more byte to be able to store the CRC-16 and subsequently check it. I think just making the provided RX buffer 2 bytes larger should solve your issue.

    BR, Ulysses

    1 reply

    Technical Moderator
    September 14, 2023

    Hi Enric,

    ST25R39xx devices are doing the NFC-V decoding in software. The driver needs two more byte to be able to store the CRC-16 and subsequently check it. I think just making the provided RX buffer 2 bytes larger should solve your issue.

    BR, Ulysses

    Explorer II
    September 14, 2023

    Hi Ulysses,

    I've just tried your solution, and you were right! I was missing the 2 bytes from CRC.

    Thank you very much for your fast response :)

    Greetings,

    Enric Puigvert