<?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: LPC5500 Flash over-programming in LPC Microcontrollers</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC5500-Flash-over-programming/m-p/1659346#M52782</link>
    <description>&lt;P&gt;As for the Flash "word size", I found the following in the User Manual, section 5.6.2&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;P&gt;When a register (STARTA, STOPA, DATAWx…) is said to contain an address, this is a physical word address inside the flash memory (that is, address 1 represents the second 128-bit word inside the flash memory, not the second byte in the first word). When a page address is required/returned, the 5 least significant bits of the address are don’t-care (a flash page contains 32 user-accessible words).&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;So a Flash word is 16 bytes. I found other text in this chapter that confirms that.&lt;/P&gt;&lt;P&gt;Section 5.7 describes how to erase and write the Flash using direct access to Flash controller registers (instead of via the Flash API in the boot ROM). It sounds as though this enables writing of individual Flash words.&lt;/P&gt;&lt;P&gt;Now, I'm curious to know if individual Flash words could be written using the boot ROM Flash API, or if it's necessary to do writes using the Flash controller registers.&lt;/P&gt;</description>
    <pubDate>Tue, 30 May 2023 00:49:13 GMT</pubDate>
    <dc:creator>craigmcqueenir</dc:creator>
    <dc:date>2023-05-30T00:49:13Z</dc:date>
    <item>
      <title>LPC5500 Flash over-programming</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC5500-Flash-over-programming/m-p/1658796#M52765</link>
      <description>&lt;P&gt;I understand the LPC5500 processors have Flash with ECC, with a 512 byte page size for erase and programming.&lt;/P&gt;&lt;P&gt;In the LPC55S6x/LPC55S2x User Manual, section 5.7.13 ECC, I found it says&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;P&gt;Due to the presence of ECC, over-programming an already programmed word will likely result in inconsistent parity bits; for this reason, it is not allowed to program a memory word without erasing it first.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;I'm interested to know if over-programming is practical, if an application ensures that it programs the Flash being careful to consider Flash ECC "memory word" boundaries.&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;What is the size of a Flash "memory word"?&lt;/LI&gt;&lt;LI&gt;Will the Flash storage operate correctly if a Flash page is programmed multiple times, with the following algorithm:&lt;UL&gt;&lt;LI&gt;Read a Flash page (512 bytes) into RAM&lt;/LI&gt;&lt;LI&gt;Modify 0xFF bytes to some other data, ensuring that any such modified bytes are in a "memory word" that was previously all 0xFF.&lt;/LI&gt;&lt;LI&gt;Write the data back to the Flash page.&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/UL&gt;</description>
      <pubDate>Mon, 29 May 2023 01:50:31 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC5500-Flash-over-programming/m-p/1658796#M52765</guid>
      <dc:creator>craigmcqueenir</dc:creator>
      <dc:date>2023-05-29T01:50:31Z</dc:date>
    </item>
    <item>
      <title>Re: LPC5500 Flash over-programming</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC5500-Flash-over-programming/m-p/1659055#M52772</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/140851"&gt;@craigmcqueenir&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Before program , erasing must be first. So if you want to&amp;nbsp;over-programming, please erase first.&lt;/P&gt;
&lt;P&gt;Other options you can test on your side.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;BR&lt;/P&gt;
&lt;P&gt;Alice&lt;/P&gt;</description>
      <pubDate>Mon, 29 May 2023 09:10:34 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC5500-Flash-over-programming/m-p/1659055#M52772</guid>
      <dc:creator>Alice_Yang</dc:creator>
      <dc:date>2023-05-29T09:10:34Z</dc:date>
    </item>
    <item>
      <title>Re: LPC5500 Flash over-programming</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC5500-Flash-over-programming/m-p/1659330#M52780</link>
      <description>&lt;P&gt;This answer is more technically ambiguous than I hoped.&lt;/P&gt;</description>
      <pubDate>Mon, 29 May 2023 23:18:44 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC5500-Flash-over-programming/m-p/1659330#M52780</guid>
      <dc:creator>craigmcqueenir</dc:creator>
      <dc:date>2023-05-29T23:18:44Z</dc:date>
    </item>
    <item>
      <title>Re: LPC5500 Flash over-programming</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC5500-Flash-over-programming/m-p/1659346#M52782</link>
      <description>&lt;P&gt;As for the Flash "word size", I found the following in the User Manual, section 5.6.2&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;P&gt;When a register (STARTA, STOPA, DATAWx…) is said to contain an address, this is a physical word address inside the flash memory (that is, address 1 represents the second 128-bit word inside the flash memory, not the second byte in the first word). When a page address is required/returned, the 5 least significant bits of the address are don’t-care (a flash page contains 32 user-accessible words).&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;So a Flash word is 16 bytes. I found other text in this chapter that confirms that.&lt;/P&gt;&lt;P&gt;Section 5.7 describes how to erase and write the Flash using direct access to Flash controller registers (instead of via the Flash API in the boot ROM). It sounds as though this enables writing of individual Flash words.&lt;/P&gt;&lt;P&gt;Now, I'm curious to know if individual Flash words could be written using the boot ROM Flash API, or if it's necessary to do writes using the Flash controller registers.&lt;/P&gt;</description>
      <pubDate>Tue, 30 May 2023 00:49:13 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC5500-Flash-over-programming/m-p/1659346#M52782</guid>
      <dc:creator>craigmcqueenir</dc:creator>
      <dc:date>2023-05-30T00:49:13Z</dc:date>
    </item>
    <item>
      <title>Re: LPC5500 Flash over-programming</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC5500-Flash-over-programming/m-p/1659580#M52788</link>
      <description>&lt;P&gt;ECC protection is usually applied to the smallest programmable item size, which would be 32-bit in case of program Flash.&lt;BR /&gt;Though this is a guess - I am not affiliated with NXP, and thus have only access to publicly available information.&lt;/P&gt;</description>
      <pubDate>Tue, 30 May 2023 07:19:42 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC5500-Flash-over-programming/m-p/1659580#M52788</guid>
      <dc:creator>frank_m</dc:creator>
      <dc:date>2023-05-30T07:19:42Z</dc:date>
    </item>
    <item>
      <title>Re: LPC5500 Flash over-programming</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC5500-Flash-over-programming/m-p/1660418#M52801</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/140851"&gt;@craigmcqueenir&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;LPC556x/2x on-chip&amp;nbsp;&amp;nbsp;flash program memory with flash accelerator and &lt;STRONG&gt;512 byte&lt;/STRONG&gt;&lt;BR /&gt;page erase and write.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;BR&lt;/P&gt;
&lt;P&gt;Alice&lt;/P&gt;</description>
      <pubDate>Wed, 31 May 2023 05:38:22 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC5500-Flash-over-programming/m-p/1660418#M52801</guid>
      <dc:creator>Alice_Yang</dc:creator>
      <dc:date>2023-05-31T05:38:22Z</dc:date>
    </item>
  </channel>
</rss>

