AnsweredAssumed Answered

ST25R3911B Issue with rlafNfcaPollerSelect

Question asked by Marius Celliers on Jan 24, 2018
Latest reply on Jan 29, 2018 by Ulysses HERNIOSUS

Hi I am currently trying to send and receive APDU commands to an NFC PICC. I am using the X-NUCLEO-NFC05A1 (ST25R3911B) and the STM32F401RE Nucleo Board. For software I am using X-CUBE-NFC5  RFAL middleware and STM32CubeF4 HAL.

 

The Card is a ISO14443A Type 4 ( ISO-DEP)

I can read the UID and Type of the Card, but as soon as I try to select the first card (rfalNfcaPollerSelect), the function responds with timeout error ( 0x04).

 

I have gone through the RFAL.chm file multiple times and cant seem to find a resolution to my problem. Am I missing some initialization or setting?

 

Partial Code ( based on example from X-CUBE-NFC5 )

 

void loop()

{

       rfalWorker();

      //code for inductive wakeup then run scanA() //(code not shown to save space) 

      scanA();

}

 

void scanA()

{

      rfalNfcaSensRes          sensRes;

 

      rfalNfcaPollerInitialize();

      rfalFieldOnAndStartGT();

      unit16_t err = rfalNfcaPollerTechnologyDetection( RFAL_COMPLIANCE_MODE_NFC_11, &sensRes );

      if (err == 0) //tagfound

      {

       rfalNfcaListenDevice nfcaDevList[1];

       uint8_t             devCnt;

       err= rfalNfcaPollerFullCollisionResolution( RFAL_COMPLIANCE_MODE_NFC_11, 1, nfcaDevList, &devCnt);

 

      if (nfcaDevList[0].type == RFAL_NFCA_T4T){

                    activateIsoDep(nfcaDevList[0]);}

}

 

void activateIsoDep(rfalNfcaListenDevice lisnDev)

{

      rfalIsoDepDevice isoDepDevice;

      rfalNfcaSelRes    selRes;

     

      uint8_t err = rfalNfcaPollerSelect(lisnDev.nfcId1,lisnDev.nfcId1Len,&selRes);  

 

      //Here I get err = 0x04 (TIMEOUT)

      //.....

      //       next code for rfalIsoDepPollAHandleActivation

      //      .............................

}

Outcomes