Skip to main content
Visitor II
October 6, 2022
Solved

Specific card is not working well (st25R3916)

  • October 6, 2022
  • 3 replies
  • 992 views

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?

    This topic has been closed for replies.
    Best answer by Brian TIDAL

    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

    3 replies

    Technical Moderator
    October 6, 2022

    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

    Technical Moderator
    October 6, 2022

    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

    JS Park1Author
    Visitor II
    November 3, 2022

    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