<?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 Writing to program-once registers in Kinetis Microcontrollers</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Writing-to-program-once-registers/m-p/338302#M16211</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I am trying to perform a simple write to the program-once area with no luck. I am suspecting that maybe I am not performing the mass erase operation correctly. Will the ARM Flash Programmer app form USBDM do the trick?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="Untitled.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/47629i29F597D3B642145F/image-size/large?v=v2&amp;amp;px=999" role="button" title="Untitled.png" alt="Untitled.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;Once the Mass Erase is complete and new firmware is loaded, I attempt to write teh program once registers. My procedure is pretty straighforward; write 0x41 to FCCOB_0, write 0x01 to FCCOB_1, 0x3 to FCCOB_4, and finally toggle the CCIF bit.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Is this enough to write 0x3 to the 2nd program-once record?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 13 Jan 2015 05:55:53 GMT</pubDate>
    <dc:creator>adrian11</dc:creator>
    <dc:date>2015-01-13T05:55:53Z</dc:date>
    <item>
      <title>Writing to program-once registers</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Writing-to-program-once-registers/m-p/338302#M16211</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I am trying to perform a simple write to the program-once area with no luck. I am suspecting that maybe I am not performing the mass erase operation correctly. Will the ARM Flash Programmer app form USBDM do the trick?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="Untitled.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/47629i29F597D3B642145F/image-size/large?v=v2&amp;amp;px=999" role="button" title="Untitled.png" alt="Untitled.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;Once the Mass Erase is complete and new firmware is loaded, I attempt to write teh program once registers. My procedure is pretty straighforward; write 0x41 to FCCOB_0, write 0x01 to FCCOB_1, 0x3 to FCCOB_4, and finally toggle the CCIF bit.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Is this enough to write 0x3 to the 2nd program-once record?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 13 Jan 2015 05:55:53 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Writing-to-program-once-registers/m-p/338302#M16211</guid>
      <dc:creator>adrian11</dc:creator>
      <dc:date>2015-01-13T05:55:53Z</dc:date>
    </item>
    <item>
      <title>Re: Writing to program-once registers</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Writing-to-program-once-registers/m-p/338303#M16212</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi adrian,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The sequence you provided appears to be for read-once not write-once.&lt;/P&gt;&lt;P&gt;It is necessary to do the full sequence (FCCOB0,1,4,5,6,7, etc.) I believe as a 4-byte record is programmed. (described in 27.4.10.8 of KL16 manual)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In any case I can't see that the mass-erase option etc has much bearing on the results since the write-once region is not erasable.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;bye&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 13 Jan 2015 13:36:33 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Writing-to-program-once-registers/m-p/338303#M16212</guid>
      <dc:creator>pgo</dc:creator>
      <dc:date>2015-01-13T13:36:33Z</dc:date>
    </item>
    <item>
      <title>Re: Writing to program-once registers</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Writing-to-program-once-registers/m-p/338304#M16213</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The programming sequence is&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;FTFL_FCCOB0 = 0x43&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;FTFL_FCCOB1 = length (0..7 for devices with long word programming / 0..15 for devices with phrase programming)&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;FTFL_FCCOB7_4 = first long word to be programmed (long word pointer can be used)&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;FTFL_FCCOBB_8 = second long word to be programmed - for devices with phrase programming (long word pointer can be used)&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Mark&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.utasker.com/kinetis.html" title="http://www.utasker.com/kinetis.html"&gt;µTasker Kinetis support&lt;/A&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 13 Jan 2015 14:15:44 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Writing-to-program-once-registers/m-p/338304#M16213</guid>
      <dc:creator>mjbcswitzerland</dc:creator>
      <dc:date>2015-01-13T14:15:44Z</dc:date>
    </item>
    <item>
      <title>Re: Writing to program-once registers</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Writing-to-program-once-registers/m-p/338305#M16214</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I was under the impression that the program-once register area can be cleared only with a mass-erase operation. Is that incorrect?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 13 Jan 2015 17:06:29 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Writing-to-program-once-registers/m-p/338305#M16214</guid>
      <dc:creator>adrian11</dc:creator>
      <dc:date>2015-01-13T17:06:29Z</dc:date>
    </item>
    <item>
      <title>Re: Writing to program-once registers</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Writing-to-program-once-registers/m-p/338306#M16215</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Adrian&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Once something has been programmed in the "program-once" area it can NEVER be deleted or changed again.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Mark&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 13 Jan 2015 17:37:36 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Writing-to-program-once-registers/m-p/338306#M16215</guid>
      <dc:creator>mjbcswitzerland</dc:creator>
      <dc:date>2015-01-13T17:37:36Z</dc:date>
    </item>
    <item>
      <title>Re: Writing to program-once registers</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Writing-to-program-once-registers/m-p/338307#M16216</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks for making it clear. I appreciate it. :smileyhappy: &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 13 Jan 2015 17:40:48 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Writing-to-program-once-registers/m-p/338307#M16216</guid>
      <dc:creator>adrian11</dc:creator>
      <dc:date>2015-01-13T17:40:48Z</dc:date>
    </item>
    <item>
      <title>Re: Writing to program-once registers</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Writing-to-program-once-registers/m-p/338308#M16217</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Well, one more thing. If you look at the following doc, you'll see mentions that mass erase clears all of he blocks:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;"&lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;All blocks of flash are erased regardless of protection settings. This includes program flash, data flash, the program&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;flash IFR swap indicator address, data flash IFR space (including EEE partition information), EEPROM backup&lt;/P&gt;&lt;P&gt;memory (E-flash), and FlexRAM."&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Are program-once (block 0) registers an exception?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;(section 4.2) &lt;A href="http://cache.freescale.com/files/microcontrollers/doc/app_note/AN4835.pdf" title="http://cache.freescale.com/files/microcontrollers/doc/app_note/AN4835.pdf"&gt;http://cache.freescale.com/files/microcontrollers/doc/app_note/AN4835.pdf&lt;/A&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 14 Jan 2015 01:33:58 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Writing-to-program-once-registers/m-p/338308#M16217</guid>
      <dc:creator>adrian11</dc:creator>
      <dc:date>2015-01-14T01:33:58Z</dc:date>
    </item>
    <item>
      <title>Re: Writing to program-once registers</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Writing-to-program-once-registers/m-p/338309#M16218</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;That document doesn't mention the program once area.&lt;/P&gt;&lt;P&gt;If you are unsure simply program something to it and try to erase it with a mass erase and you will see that it is impossible.&lt;/P&gt;&lt;P&gt;If it were erased it would not be called "program-once" but "program-and-delete-like-all-other-flash-area" and it would also be quite pointless in having.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In every user's manual you will also find that it is stated that it can't be erased, which makes the operation clear and unambiguous:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_0.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/47157i829B978567CEE7C1/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_0.png" alt="pastedImage_0.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Mark&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 14 Jan 2015 01:46:43 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Writing-to-program-once-registers/m-p/338309#M16218</guid>
      <dc:creator>mjbcswitzerland</dc:creator>
      <dc:date>2015-01-14T01:46:43Z</dc:date>
    </item>
    <item>
      <title>Re: Writing to program-once registers</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Writing-to-program-once-registers/m-p/338310#M16219</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi adrian a&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Program-once&amp;nbsp; memory is really a special memory.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; If you do the program, this area can't be erased, you just can read it with read once command.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Jingjing&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 14 Jan 2015 03:12:37 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Writing-to-program-once-registers/m-p/338310#M16219</guid>
      <dc:creator>kerryzhou</dc:creator>
      <dc:date>2015-01-14T03:12:37Z</dc:date>
    </item>
  </channel>
</rss>

