cancel
Showing results for 
Search instead for 
Did you mean: 

How fast can we detect NFC card with ST25r3914 Reader IC .using RFAL stack

cGosa.1
Senior

Hello we have integrated ST NFC RFAL stack with RL78 IC and currently we are able to detect NFC card within 1-2seconds. Is there a way to reduce this time less than 1 second to detect NFC card ?

1 ACCEPTED SOLUTION

Accepted Solutions
Ulysses HERNIOSUS
ST Employee

Hi,

if those two didn't heavily improve, then: analyze the timing behavior, in a first step use a logic analyzer on SPI + IRQ and find where time is lost, could be SPI speed, CS setup and hold times, incorrect timers in platform, ......

If unsure after a first analysis to ensure correct SPI decoding and looking at timings you can also post a trace here.

BTW: How are you measuring this time to read a card? What are your start and stop signals for this measurement?

Regards, Ulysses

View solution in original post

14 REPLIES 14
Brian TIDAL
ST Employee

Hi,

can you share some details about your application:

  • is your application built on top of ST25 embedded NFC library or X-CUBE-NFC5 or STSW-ST25RFAL001?
  • Is your main loop based on demoCycle() provided in ST25 embedded NFC library or X-CUBE-NFC5?
    • if yes,
      • what is the value of discParam.totalDuration? Feel free to reduce the discParam.totalDuration to fit with your application needs
      • what is the value of discParam.wakeupEnabled?
  • which technologies (NFC-A, NFC-B, NFC-F, NFC-V, ST25TB) are needed in your application?

Rgds

BT

In order to give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.
cGosa.1
Senior

Hello,

We are using ST NFC reader IC ST25r3914. we have integrated ST RFAL stack with Renesas microcontroller RL78 over SPI.

We need Type -A and Type-V technology in application.

Brian TIDAL
ST Employee

Hi,

the RFAL provides several layers. The answer to your question is depending on top of which layer your application is build and which feature you are using (e.g. wake up).

Feel free to send me more precise answers to my question related to your main loop to help me to understand how you use the RFAL so that I can support you more efficiently. Meanwhile, I assume your application is built on top of the RFAL High Layer:

  • reduce the value of discParam.totalDuration parameter (it is probably 1000 ms if you have build your main loop based on demoCycle() provided in ST25 embedded NFC library or X-CUBE-NFC5). You can for example set this parameter to 200ms
  • in platform.h, disable unused features
    • set RFAL_FEATURE_NFCB to false
    • set RFAL_FEATURE_NFCF to false
    • set RFAL_FEATURE_ST25TB to false
    • if not using the wake up mode, set RFAL_FEATURE_WAKEUP_MODE to false

Also, see UM2890 - RF/NFC abstraction layer (RFAL) - User manual for comprehensive information about the RFAL.

Rgds

BT

In order to give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.
cGosa.1
Senior

In my application inside platform.h file RFAL_FEATURE_WAKEUP_MODE is already set to false.

I have called st25r3911Isr() inside interrupt ISR of our microcontroller.

I have called democycle() inside a scheduler function repeating every 100ms.

Also I am not able to find these discParam.totalDuration parameter inside stack files.

Brian TIDAL
ST Employee

Hi,

as explained, my previous answer is based on the assumption you use the RFAL High Layer. It is difficult to provide accurate answer without having more information about which layer of the RFAL is being used in your application. Feel free to send me your democycle code in private so that I can better support you.

Rgds

BT

In order to give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.
cGosa.1
Senior

Hi,

So we are using RFAL library for the STMicroelectronics X-NUCLEO-NFC05A1.

We have called democycle() in a routine function repeating every 100ms,

if(u1_NfcInitFd == FALSE)

{

   u1_NfcInitFd = demoIni(); 

 }

 else

{

   demoCycle();    

 }

Brian TIDAL
ST Employee

ok but what is inside demoCycle?

In order to give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.
cGosa.1
Senior

0693W00000aIt19QAC.png0693W00000aIsoLQAS.pngThis is inside democycle() function ,

Here in RFAL_NFCA_T4T switch case we detect our tag.

Hi,

as written by Brian before: Look into totalDuration which is a paramater to rfalNfcDiscover() and calling rfalNfcWorker() every 100ms will make NFC communication very slow. For NFC-A I expect multiple calls being needed before a tag is anti-collided. Go down to 1ms or even below.

Regards, Ulysses