cancel
Showing results for 
Search instead for 
Did you mean: 

Specific card is not working well (st25R3916)

JS Park1
Associate II

Hello ~!,

I am bringing up a board using ST25R3916.

The main chip is arm9 family and based on freertos.

The basic operation has been confirmed, but there is a problem that certain NFCA cards are not recognized well.

It does not mean that it cannot be recognized at all, but it is difficult to recognize only at a specific distance (about 3-4 cm).

At first I thought it was an RF performance issue, but after wiring the power, IRQ, SPI pins, etc. to my base board and the X-NUCLEO-NFC06A1 board, the results are the same.

I've been working on the "ST25NFC_Embedded_Lib_ST25R3916_1.4.0,FreeRTOS_polling" source code.

There is no problem origial source code on Nucleo L476, but similar problem can be seen when the priority of the nfcIsrTaskRunner thread is set equal to StartDefaultTask.

------------------------------------------------------------------------------------------------

 /* definition and creation of nfcIsrTask */

 const osThreadAttr_t nfcIsrTask_attributes = {

  .name = "nfcIsrTask",

  .priority = (osPriority_t) osPriorityNormal, //osPriorityHigh, orginal

  .stack_size = 384

 };

 nfcIsrTaskHandle = osThreadNew(nfcIsrTaskRunner, NULL, &nfcIsrTask_attributes);

 ------------------------------------------------------------ ---------------------------------

In my custome board, simply adjusting the priority did not solve the problem, so I adjusted the porting points such as thread communication and timer similar to the sample code.

I would like to ask if you would like to get a hint for solving the problem.

Are there any other checkpoints?

1 ACCEPTED SOLUTION

Accepted Solutions
Brian TIDAL
ST Employee

Hi,

Can you provide as well more information about the tags being used (Manufacturer and model)?

Regarding the priority, the nfcIsrTaskRunner must have an higher priority than the StartDefaultTask.

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.

View solution in original post

3 REPLIES 3
Ulysses HERNIOSUS
ST Employee

Hi JS Park,

to me it sounds most promising if you do logic analyzer traces of SPI + IRQ and share it here.

Maybe it gives hints to the root cause.

Best Regards, Ulysses

Brian TIDAL
ST Employee

Hi,

Can you provide as well more information about the tags being used (Manufacturer and model)?

Regarding the priority, the nfcIsrTaskRunner must have an higher priority than the StartDefaultTask.

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.
JS Park1
Associate II

Hello,

I haven't been able to find the cause of the error yet. However, when I changed the interface to I2C, it worked normally.

I am testing by changing the interface to I2C.

Best Regards,

JS