cancel
Showing results for 
Search instead for 
Did you mean: 

ST25DV EEPROM Write Cycle limit

NeroDo
Associate II

Hi there,

 

I'm working on a project to dynamically write new URL record to the ST25DV dynamic tag. Record will keep getting update every few minutes. I would like to make sure that the chip can last for 5-10 years hence the question of write cycles limit

I have seen similar post and come across this documentation 
https://www.st.com/content/ccc/resource/technical/document/application_note/group0/c9/d8/96/0e/14/f5/4e/41/DM00436563/files/DM00436563.pdf/jcr:content/translations/en.DM00436563.pdf

This seem to indicate a 1mil write cycles at 25C and 600k at 85C. 

My question is: Is every URL NDEF record write count as a cycle ? I'm only writing to a single area of the memory. Does this mean that once the write cycles limit is reach. All area of the memory will not work ? 

 

Thank you for any info. 

This discussion is locked. Please start a new topic to ask your question.
1 ACCEPTED SOLUTION

Accepted Solutions

Hi NeroDo,

I am suspecting two writes on some blocks but I cannot guarantee it to you.

I think you need to instrument the function calls from ndef layer performing writes on T5T.  A short search digs up the following functions possibly being used:

  • rfalST25xVPollerM24LRWriteSingleBlock
  • rfalNfcvPollerWriteSingleBlock
  • rfalNfcvPollerExtendedWriteSingleBlock

Add some logging code to it to retreieve the blocks being written.

BR Ulysses

View solution in original post

6 REPLIES 6
JL. Lebon
ST Employee

Hello, 

The cycle limit is given per Byte. This means that each byte can be cycled 1M times at 25C.
So, when you write your new URL into the NDEF, only bytes that are modified are cycled. Bytes that are not changed are not cycling.

If cycling is a limit for what you intend to do, you may consider a different approach like updating the URL only when the tag is read? There is an application note explaining how to do this here https://www.st.com/resource/en/application_note/an5439-augmented-ndef-with-st25dvi2c-series-dynamic-nfc-tags-stmicroelectronics.pdf

Best regards.

NeroDo
Associate II

Thank you for your response. 

With the example code of writing NDEF URL record, I'm always writing to the first 256 bytes of the memory so that effectively do 1 cycle every time I update the record. Is that correct ? 

 

Also, my aim is to have the phone automatically launch the URL once NFC is tap. It works as intended so far with above method of writing. If I write to a new memory address every time, would the phone be able to pick up the URL ? Given  there's only 1 URL but in new memory location every time instead of always on the CC file in the first 256 bytes of the memory space

Hello, 

"I'm always writing to the first 256 bytes of the memory so that effectively do 1 cycle every time I update the record. Is that correct ? " -> yes correct.

"If I write to a new memory address every time, would the phone be able to pick up the URL ?" -> unfortunately, no. The NDEF file must always start at the first address following the CCFile. And inside the NDEF file, there is no way to indicated a specific address where the URL is stored. You could do several record inside the NDEF or several NDEF, but the smartphone will automatically only read the first record of the first NDEF.

Best regards.

Hello,

one caveat from writing the NDEF: I think one NDEF write to a tag which already contains an NDEF etc. will cause more than one write to some bytes.  First step of writing a new NDEF consists in invalidating the old one by clearing the NDEF length inside CC. Then it will basically write the payload and as last step validate the written NDEF by writing the length bytes to the length of the actual NDEF message.

I would expect two writes on some bytes, but I am not 100% there may be a third one that I missed now. You want to look trace the procedures in detail that my analysis is correct.

BR, Ulysses

NeroDo
Associate II

Hello,

 

Thank you for your response.

 

"one caveat from writing the NDEF: I think one NDEF write to a tag which already contains an NDEF etc. will cause more than one write to some bytes.  First step of writing a new NDEF consists in invalidating the old one by clearing the NDEF length inside CC. Then it will basically write the payload and as last step validate the written NDEF by writing the length bytes to the length of the actual NDEF message." ->Are you saying that potentially theres up to 3 write happen for some bytes every time NDEF record is update ? 

 

How would I confirm this ? through the source code of the library ? Sorry I'm a bit of a newbie on this topic 

 

 

Hi NeroDo,

I am suspecting two writes on some blocks but I cannot guarantee it to you.

I think you need to instrument the function calls from ndef layer performing writes on T5T.  A short search digs up the following functions possibly being used:

  • rfalST25xVPollerM24LRWriteSingleBlock
  • rfalNfcvPollerWriteSingleBlock
  • rfalNfcvPollerExtendedWriteSingleBlock

Add some logging code to it to retreieve the blocks being written.

BR Ulysses