2022-11-21 06:05 AM
I use a ST25DV on my board, which communicates through I2C to a uC and through NFC with a smartphone, app developped with Flutter for Android and iOS. Everything works correctly, but sometimes, when I'm writing from Smartphone to ST25DV EEPROM and the tag is lost, the RF communications is disabled; my app (but also native ST25 app) is not able to detect tag, I must restart my device to see it back to work. During this condition, the I2C bus works correctly and also if I re-initialize the ST25DV, the RF remains blocked. Is there a way to understand why and/or a turnaround to solve the problem?
Solved! Go to Solution.
2022-11-24 02:22 AM
Hello,
Good that your production is only revB. Please replace your revA sample in the lab and test again with revB. Problem should not show again.
Concerning ST25DVKC, there is no HW modification to do when coming from ST25DVK. On SW side, some adaptation must be done but are very limited. There is an application note explaining in detail the difference between the K and KC version that should help: https://www.st.com/resource/en/application_note/an5633-migrating-from-st25dvxxk-to-st25dvxxkc-stmicroelectronics.pdf
Best regards.
2022-11-21 07:18 AM
Hi,
"I must restart my device to see it back to work." Which device do you need to restart? The smartphone?
BR, Ulysses
2022-11-21 07:20 AM
No, the device with ST25DV onboard
2022-11-21 07:56 AM
Hi,
I would start checking RF_MNGT.
BR, Ulysses
2022-11-21 07:58 AM
Hi Ulysses,
reading from I2C, RF_MNGT=0x00, it seems RF is enabled but it is not.
2022-11-22 12:11 AM
Hi,
what about the Dynamic Configuration, especially RF_MNGT_Dyn?
BR Ulysses
2022-11-22 06:56 AM
Hello,
Not sure I understand the following statements:
"I must restart my device to see it back to work. During this condition, the I2C bus works correctly and also if I re-initialize the ST25DV, the RF remains blocked."
In the first sentence, you say that if you restart the ST25DV, it works again, but in the second sentence you say that it remains blocked if you re-initialize it. So, what do you mean by re-initializing it ?
I can see 3 different reasons why the RF would be lost:
Best regards.
2022-11-22 06:59 AM
RF_MNGT_Dyn is equal to static version, 0x00
2022-11-22 07:21 AM
Hi Lebon,
When RF is blocked, the uC connected through I2C to the ST25DV can send an initialization sequence to test if RF is in sleep or disabled:
Each write is followed by a read to check if it is ok.
When I force the uC to send the init sequence, the RF remains blocked even if RF_MNGT and RF_MNGTDyn are eual to 0x00
If I power off my device (so the ST25DV also), RF restarts to work (I can read ST device with ST25DV app); if I re-power on my device, RF continues to work.
As a note I can say that in normal operation everything works correctly; I have the problem sometimes when the tag is lost during write in EEPROM procedure.
I don't use Energy Harvesting.
I2C bus has a low traffic.
2022-11-22 10:09 AM
Ok, thank you for the explanation of the initialization procedure.
Other questions to try to understand what's going one here:
Can you explain what your EEPROM write procedure does ? as it seems linked to this procedure.
It is 100% time reproductible when you use this write procedure ?
Can you please tell ne the exact version of St25Dv you are using ? (You can just give me the 3rd byte of the UID after the E002).
Best regards.