2025-07-21 12:09 AM
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?
2025-07-21 12:22 AM
Hello,
st25r3916Isr()
handler properly called when the interrupt is signaled?Rgds
BT
2025-07-21 12:28 AM
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
2025-07-21 2:23 AM
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.
2025-07-21 2:32 AM
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