<?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>Disengaging APPROTECT</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/67643/disengaging-approtect</link><description>Hi, 
 On nRF52840, we are able to engage APPROTECT by setting NRF_UICR-&amp;gt; APPROTECT to 0. However, writing 0xFF to NRF_UICR-&amp;gt; APPROTECT does not seem to disengage APPROTECT. 
 For example, after executing below code, APPROTECT still remains engaged: 
</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Tue, 27 Oct 2020 13:37:19 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/67643/disengaging-approtect" /><item><title>RE: Disengaging APPROTECT</title><link>https://devzone.nordicsemi.com/thread/277158?ContentTypeID=1</link><pubDate>Tue, 27 Oct 2020 13:37:19 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3a38f480-9130-4d2d-ac9c-2700f4535d61</guid><dc:creator>Richard Yoo</dc:creator><description>&lt;p&gt;That explains what we&amp;#39;re observing. Thank you!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Disengaging APPROTECT</title><link>https://devzone.nordicsemi.com/thread/277025?ContentTypeID=1</link><pubDate>Tue, 27 Oct 2020 07:34:17 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ba9916cb-95c3-437e-ab77-85f1966e248a</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;Unfortunately, on the 52840, the only way to disable APPROTECT is through a full chip erase. UICR is placed in FLASH memory, and on the nRF52832 you could always erase it with NVMC-&amp;gt;ERASEUICR and thus allow you to disable readback protection from the program code. However, on the nrf52840, this operation becomes unavailable once read-back protection is enabled.&lt;/p&gt;
&lt;p&gt;Excerpt from the NVMC chapter of the 52840 PS:&lt;/p&gt;
&lt;h2 style="padding-left:30px;"&gt;&lt;a href="https://infocenter.nordicsemi.com/topic/ps_nrf52840/nvmc.html#concept_protection"&gt;Access port protection behavior&lt;/a&gt;&lt;/h2&gt;
&lt;div style="padding-left:30px;"&gt;
&lt;p style="padding-left:30px;"&gt;When access port protection is enabled, parts of the NVMC functionality will be blocked in order to prevent intentional or unintentional erase of UICR.&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;table border="1" cellpadding="4" cellspacing="0" frame="border" rules="all" summary=""&gt;&lt;caption&gt;&lt;span&gt;&lt;span&gt;Table 1. &lt;/span&gt;NVMC Protection&lt;/span&gt;&lt;/caption&gt;&lt;colgroup span="1"&gt;&lt;col span="1"&gt;&lt;col span="1"&gt;&lt;col span="1"&gt;&lt;col span="1"&gt;&lt;col span="1"&gt;&lt;col span="1"&gt;&lt;col span="1"&gt;&lt;col span="1"&gt;&lt;/col&gt;&lt;/col&gt;&lt;/col&gt;&lt;/col&gt;&lt;/col&gt;&lt;/col&gt;&lt;/col&gt;&lt;/col&gt;&lt;/colgroup&gt;
&lt;thead style="text-align:left;"&gt;
&lt;tr&gt;
&lt;th style="vertical-align:top;" colspan="1" rowspan="1"&gt;&amp;nbsp;&lt;/th&gt;
&lt;th style="vertical-align:top;" colspan="1" rowspan="1"&gt;CTRL-AP ERASEALL&lt;/th&gt;
&lt;th style="vertical-align:top;" colspan="1" rowspan="1"&gt;NVMC ERASEPAGE&lt;/th&gt;
&lt;th style="vertical-align:top;" colspan="1" rowspan="1"&gt;NVMC ERASEPAGE PARTIAL&lt;/th&gt;
&lt;th style="vertical-align:top;" colspan="1" rowspan="1"&gt;NVMC ERASEALL&lt;/th&gt;
&lt;th style="vertical-align:top;" colspan="1" rowspan="1"&gt;NVMC ERASEUICR&lt;/th&gt;
&lt;th style="vertical-align:top;" colspan="1" rowspan="1"&gt;&lt;/th&gt;
&lt;th style="vertical-align:top;" colspan="1" rowspan="1"&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th style="vertical-align:top;" colspan="1" rowspan="1"&gt;APPROTECT&lt;/th&gt;
&lt;th style="vertical-align:top;" colspan="1" rowspan="1"&gt;&amp;nbsp;&lt;/th&gt;
&lt;th style="vertical-align:top;" colspan="1" rowspan="1"&gt;&amp;nbsp;&lt;/th&gt;
&lt;th style="vertical-align:top;" colspan="1" rowspan="1"&gt;&amp;nbsp;&lt;/th&gt;
&lt;th style="vertical-align:top;" colspan="1" rowspan="1"&gt;&amp;nbsp;&lt;/th&gt;
&lt;th style="vertical-align:top;" colspan="1" rowspan="1"&gt;&amp;nbsp;&lt;/th&gt;
&lt;th style="vertical-align:top;" colspan="1" rowspan="1"&gt;&amp;nbsp;&lt;/th&gt;
&lt;th style="vertical-align:top;" colspan="1" rowspan="1"&gt;&amp;nbsp;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="vertical-align:top;" colspan="1" headers="d730259e313 d730259e340" rowspan="1"&gt;Disabled&lt;/td&gt;
&lt;td style="vertical-align:top;" colspan="1" headers="d730259e315 d730259e343" rowspan="1"&gt;Allowed&lt;/td&gt;
&lt;td style="vertical-align:top;" colspan="1" headers="d730259e318 d730259e345" rowspan="1"&gt;Allowed&lt;/td&gt;
&lt;td style="vertical-align:top;" colspan="1" headers="d730259e321 d730259e347" rowspan="1"&gt;Allowed&lt;/td&gt;
&lt;td style="vertical-align:top;" colspan="1" headers="d730259e324 d730259e349" rowspan="1"&gt;Allowed&lt;/td&gt;
&lt;td style="vertical-align:top;" colspan="1" headers="d730259e328 d730259e352" rowspan="1"&gt;Allowed&lt;/td&gt;
&lt;td style="vertical-align:top;" colspan="1" headers="d730259e331 d730259e354" rowspan="1"&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style="vertical-align:top;" colspan="1" headers="d730259e334 d730259e356" rowspan="1"&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="vertical-align:top;" colspan="1" headers="d730259e313 d730259e340" rowspan="1"&gt;Enabled&lt;/td&gt;
&lt;td style="vertical-align:top;" colspan="1" headers="d730259e315 d730259e343" rowspan="1"&gt;Allowed&lt;/td&gt;
&lt;td style="vertical-align:top;" colspan="1" headers="d730259e318 d730259e345" rowspan="1"&gt;Allowed&lt;/td&gt;
&lt;td style="vertical-align:top;" colspan="1" headers="d730259e321 d730259e347" rowspan="1"&gt;Allowed&lt;/td&gt;
&lt;td style="vertical-align:top;" colspan="1" headers="d730259e324 d730259e349" rowspan="1"&gt;Allowed&lt;/td&gt;
&lt;td style="vertical-align:top;" colspan="1" headers="d730259e328 d730259e352" rowspan="1"&gt;Blocked&lt;/td&gt;
&lt;td style="vertical-align:top;" colspan="1" headers="d730259e331 d730259e354" rowspan="1"&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style="vertical-align:top;" colspan="1" headers="d730259e334 d730259e356" rowspan="1"&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Vidar&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>