<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://devzone.nordicsemi.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Flash Endurance on nRF52</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/15798/flash-endurance-on-nrf52</link><description>Hi, after some research and reading several posts (especially this one ), I am still confused about the Flash endurance on the nRF52. 
 In the product specification for the nRF51288 (chapter 6: Absolute Maximum ratings), there is a foot note on the Flash</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Thu, 25 Aug 2016 09:52:07 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/15798/flash-endurance-on-nrf52" /><item><title>RE: Flash Endurance on nRF52</title><link>https://devzone.nordicsemi.com/thread/60284?ContentTypeID=1</link><pubDate>Thu, 25 Aug 2016 09:52:07 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8266fe69-d234-4229-9122-c97e0539ffea</guid><dc:creator>puz_md</dc:creator><description>&lt;p&gt;Hi vit, somehow my reply from yesterday disappeared... anyway, thanks for the explanation! Can anyone from Nordic Semiconductor confirm this behavior? Because it would mean that my scenario 2 (using flash bits to count events) will work without causing unexpected wear.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Flash Endurance on nRF52</title><link>https://devzone.nordicsemi.com/thread/60283?ContentTypeID=1</link><pubDate>Wed, 24 Aug 2016 14:17:22 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7dda4237-ae1b-4df6-a91b-97d2583d3766</guid><dc:creator>vit bernatik</dc:creator><description>&lt;p&gt;Our flash guy told me for different flash that if I write multiple times to erased place it can influence non written neighbor bits. So first you help the flash when you do not program 0 over 0 multiple times. Eg data are 111 you write 110 result is 110, now you can write 101 and result is 100. You shall not write 100 on second try. The result would be same but you would program 0 into last bit 2nd time. Now to the nWrite - if you program 010 multiple times it can happen that you end up with 000 instead of 010. It helps when you do not program 0 over 0, but I think even if you would program &amp;quot;1&amp;quot; million times you also might end up with 0...&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Flash Endurance on nRF52</title><link>https://devzone.nordicsemi.com/thread/60282?ContentTypeID=1</link><pubDate>Fri, 19 Aug 2016 14:41:27 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:dbda458b-dde5-4dbc-9ee3-fafc6eaefd1e</guid><dc:creator>Stefan Birnir Sverrisson</dc:creator><description>&lt;p&gt;nRF51 has a different flash, therefore the specs are different. I think this n_WRITE limitation was not present in nRF51 flash.&lt;/p&gt;
&lt;p&gt;I dont know what will happen if you exceed the 181 write cycles on a single block. If you violate it, it is at your own risk. I can imagine though that data in the block can no longer be guaranteed to be correct if you violate this limit.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Flash Endurance on nRF52</title><link>https://devzone.nordicsemi.com/thread/60281?ContentTypeID=1</link><pubDate>Fri, 19 Aug 2016 13:04:48 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:022358be-fd50-44fb-b8c1-99c8f5d13914</guid><dc:creator>puz_md</dc:creator><description>&lt;p&gt;Thanks for the update. So this means that both my scenarios / use cases fail to comply with the product specification.&lt;/p&gt;
&lt;p&gt;Is there any information what happens if I exceed the n_WRITE = 181 limitation? Will it damage the flash? Will it reduce the guaranteed erase cycles? Why is this limitation there at all, if wear is only caused by erasing a page?&lt;/p&gt;
&lt;p&gt;And how does things work with the nRF51? According to the product specification. there is no n_WRITE limitation on the nRF51. (At least I could not find any.)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Flash Endurance on nRF52</title><link>https://devzone.nordicsemi.com/thread/60280?ContentTypeID=1</link><pubDate>Thu, 18 Aug 2016 10:27:13 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:22acc086-c1fe-4713-97a7-488e4dbb47c8</guid><dc:creator>puz_md</dc:creator><description>&lt;p&gt;Hi Stefan,&lt;/p&gt;
&lt;p&gt;if wear only happens during erase operations, can you please explain me the meaning of the &lt;code&gt;n_WRITE&lt;/code&gt; parameter? Will it have any impact on my implementation?&lt;/p&gt;
&lt;p&gt;Especially concerning the two scenarios I mentioed, can you confirm that they will work reliably for at least 10.000 erase cycles?&lt;/p&gt;
&lt;p&gt;Is it true that in scenario (2), with one page, I can count 4096 bytes * 8 bit * 10000 erase cycles = 327,68 million events during system lifetime?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Flash Endurance on nRF52</title><link>https://devzone.nordicsemi.com/thread/60279?ContentTypeID=1</link><pubDate>Thu, 18 Aug 2016 08:56:00 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:22a5a05c-d61c-4d76-b126-8154f9943e37</guid><dc:creator>Stefan Birnir Sverrisson</dc:creator><description>&lt;p&gt;Hi&lt;/p&gt;
&lt;p&gt;For nRF52832 flash, you have 10.000 erase/write cycles, see the absolute maximum ratings in the ps&lt;/p&gt;
&lt;p&gt;It is actually the erase that causes the wear of the flash. Write does not cause the wear, but you can not write to a flash section if it already written unless you erase it first. That is why we mention write/erase cycles. When you erase a page, you will cause wear to every bit in that flash page. Then you can write words one by one to the flash page, but you will only cause another wear when you again erase the page.&lt;/p&gt;
&lt;p&gt;The Flash data storage library implements Basic wear leveling of the flash&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update 19.8.2016&lt;/strong&gt;
My understaning is this: Writing one word to a flash block counts as one write to that flash block. Writing two words to a flash block counts as two writes to that flash block. So if you write a whole 512 byte block, no matter if you write one word at once or the whole block at once, that will count as 128 writes to that flash block. In that case you are within the &lt;a href="http://infocenter.nordicsemi.com/topic/com.nordic.infocenter.nrf52832.ps.v1.1/nvmc.html?cp=2_2_0_10_7_0#unique_1134373523"&gt;n_WRITE = 181 write limit&lt;/a&gt;, so that should be fine.  There is however a &lt;a href="http://infocenter.nordicsemi.com/topic/com.nordic.infocenter.nrf52832.ps.v1.1/nvmc.html?cp=2_2_0_10_0#concept_ghg_zdz_vr"&gt;description in section 11.1&lt;/a&gt; that describes how to write less than one word to flash, actually writing multiple times to the same 4 byte address in flash, then you need to have the &lt;a href="http://infocenter.nordicsemi.com/topic/com.nordic.infocenter.nrf52832.ps.v1.1/nvmc.html?cp=2_2_0_10_7_0#unique_1134373523"&gt;n_WRITE = 181 limitation&lt;/a&gt; in mind.&lt;/p&gt;
&lt;p&gt;Flash wearing: If you erase a page, you are causing wearing on that page. If you erase all flash, then you are causing wearing on all flash pages in flash. If you erase the same page 10,000 times, that flash page is no longer guaranteed to work. The other flash pages are still guaranteed to work if they have been erased less than 10,000 times.&lt;/p&gt;
&lt;p&gt;So with perfect wear leveling, you can perform page erase 10,000 * 128 = 1,280,000 times, since there are 512/4=128 pages in &lt;a href="http://infocenter.nordicsemi.com/topic/com.nordic.infocenter.nrf52/dita/nrf52/compatibility_matrix/ic_revision_overview.html?cp=2_1_0"&gt;nRF52832 QFAA/CIAA&lt;/a&gt; flash memory. Similarly, with perfect wear leveling, you can write 10,000 erases/page * 128 pages * 8 blocks/page * 181 writes/block = 1,853,440,000 times to nRF52832 QFAA/CIAA flash memory.&lt;/p&gt;
&lt;p&gt;Note that flash page can most likely be erased much more than 10,000 times, but 10,000 times is the minimum.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>