<?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>UCIR: write protection?</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/26306/ucir-write-protection</link><description>Dear experts, 
 How is the UCIR protected against rewriting?
I would like to store some ID&amp;#39;s which I want to be sure they cannot be erased or over-written once programmed. I would like to use the UCIR as a kind of one time programmable meamory (OTP</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 02 Mar 2018 08:20:11 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/26306/ucir-write-protection" /><item><title>RE: UCIR: write protection?</title><link>https://devzone.nordicsemi.com/thread/122555?ContentTypeID=1</link><pubDate>Fri, 02 Mar 2018 08:20:11 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d459e2ef-e5e7-415e-b308-eedd2b892718</guid><dc:creator>bjorn-spockeli</dc:creator><description>&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/members/rabarton"&gt;rabarton&lt;/a&gt;:Correct, the ACL peripheral is only available on the nRF52840.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: UCIR: write protection?</title><link>https://devzone.nordicsemi.com/thread/121909?ContentTypeID=1</link><pubDate>Mon, 26 Feb 2018 06:00:25 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2ccc90bc-9995-41a6-83ab-6648ead6e966</guid><dc:creator>rabarton</dc:creator><description>&lt;p&gt;I don&amp;#39;t see an ACL on the NRF52832. I guess this type of write protection for the UICR isn&amp;#39;t available for the NRF52832?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: UCIR: write protection?</title><link>https://devzone.nordicsemi.com/thread/103537?ContentTypeID=1</link><pubDate>Thu, 26 Oct 2017 08:41:11 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8c145294-5005-447c-b12e-080faf504c79</guid><dc:creator>bjorn-spockeli</dc:creator><description>&lt;p&gt;Happy to help :) I would appreciate if you could mark the answer as correct/accepted by clicking the check mark in the grey circle to the left of the answer.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: UCIR: write protection?</title><link>https://devzone.nordicsemi.com/thread/103536?ContentTypeID=1</link><pubDate>Thu, 26 Oct 2017 08:38:50 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a2e62cd2-e6a3-480c-aa2e-87087f703556</guid><dc:creator>Reto</dc:creator><description>&lt;p&gt;I was not aware of the ACL functionality. With ACL I should be able to write-protect the complete flash page where UICR registers are stored.
Thanks  Bjørn&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: UCIR: write protection?</title><link>https://devzone.nordicsemi.com/thread/103535?ContentTypeID=1</link><pubDate>Thu, 26 Oct 2017 08:28:06 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e0323a7b-baa8-4887-a12c-423e3514938f</guid><dc:creator>bjorn-spockeli</dc:creator><description>&lt;p&gt;I think it should be possible to use the &lt;a href="http://infocenter.nordicsemi.com/topic/com.nordic.infocenter.nrf52840.ps/acl.html?cp=2_0_0_49#concept_gdr_qlx_vr"&gt;ACL&lt;/a&gt; peripheral to protect the UICR registers from being written to by the application.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: UCIR: write protection?</title><link>https://devzone.nordicsemi.com/thread/103538?ContentTypeID=1</link><pubDate>Thu, 26 Oct 2017 07:16:10 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6eb3db36-4be6-4cf1-a281-2e177f9da0ea</guid><dc:creator>Reto</dc:creator><description>&lt;p&gt;Thank you Bjørn!
I am familiar with the flash concept (flash memory can only be written to when erased before and all bits are set to &amp;#39;1&amp;#39;). However, your answer clarified it for my (what nWRITE=2 means).&lt;/p&gt;
&lt;p&gt;Short: the UCIR is a normal flash page, with the only difference that you have to erase it with ERASEUCIR or ERASEALL commands.
AND: there is no way to protect the UCIR from unwanted write access from my custom FW code. Correct? I can read and write it from my FW code, but NOT erase?&lt;/p&gt;
&lt;p&gt;Thanks!
Reto&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: UCIR: write protection?</title><link>https://devzone.nordicsemi.com/thread/103534?ContentTypeID=1</link><pubDate>Thu, 26 Oct 2017 06:57:34 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:17651590-a3c4-4394-a790-9511c36bf439</guid><dc:creator>bjorn-spockeli</dc:creator><description>&lt;p&gt;Hi Reto,&lt;/p&gt;
&lt;p&gt;the UICR registers are non-volatile memory, which means you can change bits from 1 to 0 in a register and you have to erase it, which sets it all back to 1s, again before you can clear the bits again.&lt;/p&gt;
&lt;p&gt;So a nWRITE of 2 means that after initially writing a value to a UICR register you will be able to change 1s to 0s once before you need to erase it in order to write to it again.&lt;/p&gt;
&lt;p&gt;As stated in the nRF52840 Product Specification, the only way to erase the UICR registers using ERASEUICR (which will erase all the UICR registers) or ERASEALL(erase the entire chip).&lt;/p&gt;
&lt;p&gt;Best regards&lt;/p&gt;
&lt;p&gt;Bjørn&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>