cancel
Showing results for 
Search instead for 
Did you mean: 

How often should rfalNfcWorker() be called?

smithderek2000
Associate III

Hello,

I'm working on a bare metal implementation, reading ISO 14443A UUID and about 8 of the custom bytes. It's working fine. My question is how often should rfalNfcWorker() be called? Should this be called once per 100mSec, once per 1mSec, or just called continually in the main application loop.

1 ACCEPTED SOLUTION

Accepted Solutions
Ulysses HERNIOSUS
ST Employee

Hi,

it depends..... on a number of factors, some which you have already given. What you need to factor in:

  • Your expectation on throughput, every single frame will need to be initiated by running rfalNfcWorker() It will then need also multiple calls to complete a transceive operation.
  • Frame length, the MCU needs to handle the FIFO for large frames
  • Operating mode: In Card mode the Reader gives the pace. As a reader one is basically free of stringent timing (except for FIFO/Frame length above).

With your requirements (only reader mode) and I presume ST25R3916 you could go high on the period of calling the worker. But the mentioned 100ms will for sure not satisfy your throughput requirements unless you are fine needing multiple secs for reading a tag.

For reasonable throughput I would recommend something in the low ms area, maybe going down to 500us.

BR, Ulysses

View solution in original post

1 REPLY 1
Ulysses HERNIOSUS
ST Employee

Hi,

it depends..... on a number of factors, some which you have already given. What you need to factor in:

  • Your expectation on throughput, every single frame will need to be initiated by running rfalNfcWorker() It will then need also multiple calls to complete a transceive operation.
  • Frame length, the MCU needs to handle the FIFO for large frames
  • Operating mode: In Card mode the Reader gives the pace. As a reader one is basically free of stringent timing (except for FIFO/Frame length above).

With your requirements (only reader mode) and I presume ST25R3916 you could go high on the period of calling the worker. But the mentioned 100ms will for sure not satisfy your throughput requirements unless you are fine needing multiple secs for reading a tag.

For reasonable throughput I would recommend something in the low ms area, maybe going down to 500us.

BR, Ulysses