STSW-ST25RFAL002 - card emulation mode stalled state
Hello,
using STSW-ST25RFAL002 to version 0x020200U (RFAL Current Version: v2.2.0) I encountered a problem in card emulation mode, practically the state machine remaine blocked on the RFAL_NFC_STATE_LISTEN_ACTIVATION state indefinitely rfal_nfc.c: 518 the rfalNfcListentivation() function always return ERR_BUSY.
This happened to me with several Android smartphones (with iPhone 2020 se no problem).
I solved it by adding this patch:
--- a/STSW-ST25RFAL002/source/rfal_nfc.c
+++ b/STSW-ST25RFAL002/source/rfal_nfc.c
@@ -516,6 +516,13 @@ void rfalNfcWorker( void )
/*******************************************************************************/
case RFAL_NFC_STATE_LISTEN_ACTIVATION:
+ if( platformTimerIsExpired( gNfcDev.discTmr ) ) /* Check if the total duration has been reached */
+ {
+ rfalListenStop();
+ gNfcDev.state = RFAL_NFC_STATE_START_DISCOVERY; /* Restart the discovery loop */
+ rfalNfcNfcNotify( gNfcDev.state ); /* Notify caller */
+ break;
+ }
case RFAL_NFC_STATE_LISTEN_SLEEP:
err = rfalNfcListenActivation();If you have a better way of solving the problem I will be happy to apply it, I am not happy to have to bring patch to the third party library.
Thanks so much,
D.


