cancel
Showing results for 
Search instead for 
Did you mean: 

Can ST25RFAL002 rfalListenStart handle 10 bytes NFCID?

lMa.1
Associate

I'm using `rfalListenStart` in ST25RFAL002 with ST25R3916 to emulate an ISO 14443 Type A card with 10 bytes long UID. I've noticed that `rfalNfcDiscover` can work with 10 bytes long UID, but `rfalListenStart` cannot as the code goes:

    switch(confA->nfcidLen) {
 
    case RFAL_LM_NFCID_LEN_04:
 
      st25r3916ChangeRegisterBits(
 
        ST25R3916_REG_AUX, ST25R3916_REG_AUX_nfc_id_mask, ST25R3916_REG_AUX_nfc_id_4bytes);
 
      break;
 
 
 
    case RFAL_LM_NFCID_LEN_07:
 
      st25r3916ChangeRegisterBits(
 
        ST25R3916_REG_AUX, ST25R3916_REG_AUX_nfc_id_mask, ST25R3916_REG_AUX_nfc_id_7bytes);
 
      break;
 
 
 
    default:
 
      return ERR_PARAM;
 
    }

and the Auxiliary definition register in the datasheet shows only 4 bytes/7 bytes/RFU are available. I'm a little confused, is there some limitation on emulating 10 bytes long UID, or i'm misusing it? 😳 

1 ACCEPTED SOLUTION

Accepted Solutions
Ulysses HERNIOSUS
ST Employee

Hello,

ST25R3916 and ST25R3916B cannot emulate 10 byte UIDs with their built-in automatics. Theoretically software could do such using lower level frame interface but it will be quite a challenge to meet the required timings: As software would need to handle

  • Read the interrupt status
  • Read the FIFO
  • Inspect the bytes, prepare an answer.
  • Write the answer into FIFO
  • Trigger transmit command

And all that in less than ~86us.

There is no requirement for a listener to support a specific NFCID1 size. But as a poller one needs to be able to handle any NFCID1 size.

In reality I have never seen an NFCID1 of 10 bytes (except for NFCID1s created by test tools). What is your interest in 10 bytes UIDs?

Best Regards, Ulysses

View solution in original post

2 REPLIES 2
Ulysses HERNIOSUS
ST Employee

Hello,

ST25R3916 and ST25R3916B cannot emulate 10 byte UIDs with their built-in automatics. Theoretically software could do such using lower level frame interface but it will be quite a challenge to meet the required timings: As software would need to handle

  • Read the interrupt status
  • Read the FIFO
  • Inspect the bytes, prepare an answer.
  • Write the answer into FIFO
  • Trigger transmit command

And all that in less than ~86us.

There is no requirement for a listener to support a specific NFCID1 size. But as a poller one needs to be able to handle any NFCID1 size.

In reality I have never seen an NFCID1 of 10 bytes (except for NFCID1s created by test tools). What is your interest in 10 bytes UIDs?

Best Regards, Ulysses

Thanks for the explanation. I've encountered some car keys in real life using NFCID1 of 10 bytes, sorry I can't share more information with you.