I am using pass-through mode with NTAG I2C 2k version and communicating with a custom app on an android phone.
Pre-condition : FD_ON and FD_OFF are both set to 11b and passthrough mode is turned on by the uc host when the tag is detected (tag is externally powered). The direction is set to RF_TO_I2C.
1. The NFC side initiates the communication by writing 64bytes to the SRAM.
2. When the uc host sees SRAM_I2C_READY flag set, it does a read on the SRAM.
3. Next, the uc host writes 64 bytes to the SRAM
4. The uc Host reads the NS register and sees the value 0x29. => RF_LOCKED =1 and SRAM_RF_READY = 1.
5. When the FD_OFF event is received in the uc host, the Transfer direction is set to RF_TO_I2C.
6. The NFC app waits on the flag SRAM_RF_READY to become TRUE to do a read operation on the SRAM.
!!Quite often, the SRAM_RF_READY does not appear as set to TRUE.
The app has a timeout to wait for the SRAM_RF_READY to become TRUE. Quite often, it hits the timeout.
Strangely, even after the timeout, if the SRAM is read by the NFC app, it gets the data that was written by the I2C side.