<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: flash read/write cycles in 8-bit Microcontrollers</title>
    <link>https://community.nxp.com/t5/8-bit-Microcontrollers/flash-read-write-cycles/m-p/138252#M4928</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;Write a byte, it counts for a write to THAT location. Now, if you only use one byte, and change it 15 types, yep, that's 15 write cycles.&lt;BR /&gt;&lt;BR /&gt;However, if put a 'definable header' there, and when you don't want to use a byte, just zero the header, then move to the next block...&lt;BR /&gt;&lt;BR /&gt;You can write till you fill up the entire free flash area and it still only counts as 1 write cycle. Then when you run out of space, you can erase the whole area, and start again, this time as the SECOND write cycle.&lt;BR /&gt;&lt;BR /&gt;But... I don't use the flash on my 08 project. Is it erasable in less than the full part size? If so, then this works. If you have to erase the whole part, then how are going to do that even with the scheme suggested in your original question?&lt;BR /&gt;&lt;BR /&gt;Mike&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 05 Jun 2006 23:56:04 GMT</pubDate>
    <dc:creator>mke_et</dc:creator>
    <dc:date>2006-06-05T23:56:04Z</dc:date>
    <item>
      <title>flash read/write cycles</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/flash-read-write-cycles/m-p/138251#M4927</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; I am currently working with a HC08JK3, for a small project that needs to use some of the Flash memory for data variables. I read in the manual that the Flash has 10k erase/program cycles. I question is, every time I write the Flash, even if I write only one byte, it counts as a program cycle.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; As far as I knew, the only important thing to consider about the Flash memory were the erase cycles, because the critical operation was to "raise" the bits from 0 to 1. Can someone help me ? &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Greetings&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Sebastián&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 05 Jun 2006 23:22:47 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/flash-read-write-cycles/m-p/138251#M4927</guid>
      <dc:creator>Guilly</dc:creator>
      <dc:date>2006-06-05T23:22:47Z</dc:date>
    </item>
    <item>
      <title>Re: flash read/write cycles</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/flash-read-write-cycles/m-p/138252#M4928</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;Write a byte, it counts for a write to THAT location. Now, if you only use one byte, and change it 15 types, yep, that's 15 write cycles.&lt;BR /&gt;&lt;BR /&gt;However, if put a 'definable header' there, and when you don't want to use a byte, just zero the header, then move to the next block...&lt;BR /&gt;&lt;BR /&gt;You can write till you fill up the entire free flash area and it still only counts as 1 write cycle. Then when you run out of space, you can erase the whole area, and start again, this time as the SECOND write cycle.&lt;BR /&gt;&lt;BR /&gt;But... I don't use the flash on my 08 project. Is it erasable in less than the full part size? If so, then this works. If you have to erase the whole part, then how are going to do that even with the scheme suggested in your original question?&lt;BR /&gt;&lt;BR /&gt;Mike&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 05 Jun 2006 23:56:04 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/flash-read-write-cycles/m-p/138252#M4928</guid>
      <dc:creator>mke_et</dc:creator>
      <dc:date>2006-06-05T23:56:04Z</dc:date>
    </item>
    <item>
      <title>Re: flash read/write cycles</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/flash-read-write-cycles/m-p/138253#M4929</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BR /&gt;&lt;BLOCKQUOTE&gt;&lt;HR /&gt;mke_et wrote:&lt;BR /&gt;Write a byte, it counts for a write to THAT location. Now, if you only use one byte, and change it 15 types, yep, that's 15 write cycles.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;So, you are telling me that the program count is for every byte position??? It seems logical to me, at least it matchs with I learned before...&lt;BR /&gt;I can erase a full page (i.e. 64 bytes), and write every single byte, so if I use a full page for storing a single byte variable, I should "multiply" the life of the Flash to 640K cycles if I write the variable in the next free spot of the page, and erase it only when I reached the end of the row...&lt;BR /&gt;&lt;BR /&gt; Greetings&lt;BR /&gt; Sebastián&lt;/BLOCKQUOTE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 06 Jun 2006 01:19:24 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/flash-read-write-cycles/m-p/138253#M4929</guid>
      <dc:creator>Guilly</dc:creator>
      <dc:date>2006-06-06T01:19:24Z</dc:date>
    </item>
    <item>
      <title>Re: flash read/write cycles</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/flash-read-write-cycles/m-p/138254#M4930</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Sebastián -&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Yes, your understanding is correct. You can program each of the 64 bytes in the page once before you erase and that counts as 1 program/erase cycle. As you say, this gives you effectively 640K times that you could write one variable to flash over the lifetime of the part.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;- Rocky&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 06 Jun 2006 02:49:24 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/flash-read-write-cycles/m-p/138254#M4930</guid>
      <dc:creator>RockyRoad</dc:creator>
      <dc:date>2006-06-06T02:49:24Z</dc:date>
    </item>
    <item>
      <title>Re: flash read/write cycles</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/flash-read-write-cycles/m-p/138255#M4931</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;Hello Sebastian,&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;Have a look at AN2346 "EEPROM Emulation Using Flash ...".&amp;nbsp; This&amp;nbsp;details a system for giving multiple writes for each page erase.&amp;nbsp; The MCU is the 908QT/QY, but the firmware should readily adapt to the 908JK3.&amp;nbsp; The firmware is&amp;nbsp;written in assembler (rather than C).&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;Regards,&lt;BR /&gt;Mac&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;P&gt;Message Edited by bigmac on &lt;SPAN class="date_text"&gt;06-06-2006&lt;/SPAN&gt; &lt;SPAN class="time_text"&gt;01:16 PM&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 06 Jun 2006 10:13:53 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/flash-read-write-cycles/m-p/138255#M4931</guid>
      <dc:creator>bigmac</dc:creator>
      <dc:date>2006-06-06T10:13:53Z</dc:date>
    </item>
    <item>
      <title>Re: flash read/write cycles</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/flash-read-write-cycles/m-p/138256#M4932</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;Just remember that you now have 2 values that cant be data. Obviously FF and 00 for a byte. FF means unused/erased, and 00 means invalidated. That is, if you want to do it without a 'header'. &lt;BR /&gt;&lt;BR /&gt;Personally, I use a 'header', and find it, then use variables that are indexed off the header location. That way I can keep a whole structure of variables in Flash.&lt;P&gt;Message Edited by mke_et on &lt;SPAN class="date_text"&gt;06-06-2006&lt;/SPAN&gt; &lt;SPAN class="time_text"&gt;10:57 AM&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 06 Jun 2006 21:56:03 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/flash-read-write-cycles/m-p/138256#M4932</guid>
      <dc:creator>mke_et</dc:creator>
      <dc:date>2006-06-06T21:56:03Z</dc:date>
    </item>
  </channel>
</rss>

