cancel
Showing results for 
Search instead for 
Did you mean: 

ST25R3920B appears RFAL ERR INTERNAL in the field on process

zhangxixun
Associate

Hello,

In the process of using ST25R3920B as a card reader, if the value of RFO is modulated to 0, there will be an RFAL ERR INTERNAL error, and the card reader will not be able to read NFC cards. Changing the value of RFO to 0x03 can not detect the existence of the card.

What is the reason for this RFAL ERR INTERNAL error? How can I adjust the value of RFO to make the card reader return to normal and read the card again?

zhangxixun_1-1753081735453.png

 

zhangxixun_0-1753081702068.png

 

4 REPLIES 4
Brian TIDAL
ST Employee

Hello,

  • Which firmware package is used: X-CUBE-NFC6 or the ST25 embedded library?
  • Which MCU platform is in use?
  • Is the ST25 interrupt enabled, and is the st25r3916Isr() handler properly called when the interrupt is signaled?
  • Can you enable the ST25R_SELFTEST and ST25R_SELFTEST_TIMER compilation switches to verify that your port is correct?

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.
Ulysses HERNIOSUS
ST Employee

Hi,

 

the reason is further down in the code: 

    if( (ST25R3916_IRQ_MASK_CAC & irqs) != 0U )        /* Collision occurred */
    {
        err = RFAL_ERR_RF_COLLISION;
    }
    else if( (ST25R3916_IRQ_MASK_APON & irqs) != 0U )
    {
        /* After APON wait for CAT interrupt, indication field was switched on minimum guard time has been fulfilled */
        irqs = st25r3916WaitForInterruptsTimed( ( ST25R3916_IRQ_MASK_CAT ), ST25R3916_TOUT_CA );

        if( (ST25R3916_IRQ_MASK_CAT & irqs) != 0U )                             /* No Collision detected, Field On */
        {
            err = RFAL_ERR_NONE;
        }
    }

 

Neither CAC nor APON interrupt are coming -> Is your interrupt handling in MCU working properly? Did you enable ST25R_SELFTEST and successfully run through the initialization?

I am not following your description of RFO value. Which value, where? RFO is in the first place the antenna output pin of ST25R3916B/20B.

Regards, Ulysses

zhangxixun
Associate

 firmware package is x-cube-nfc6.

RFO refers to the driving impedance RFO.When I set the RFO impedance value to 0, the card reader can't read the card. And the IRQ pin of the 3920B chip is abnormal and keeps pulling high.

When the antenna is not connected, the card is not close, and the IRQ pin of 3920B is always pulled high.

 

Hi,

Make sure the ST25 interrupt is enabled on the MCU, and that st25r3916Isr() handler is properly called when the interrupt is signaled.

ST25R_SELFTEST will helps you to check that the ST25 interrupt is properly handled.

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.