<?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: Entering ISP mode from user code with LPC11U68JBD48 in LPC Microcontrollers</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/Entering-ISP-mode-from-user-code-with-LPC11U68JBD48/m-p/880625#M35206</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;One more to add.&amp;nbsp;Even if&amp;nbsp;I comment out the line, &lt;SPAN style="font-size: small;"&gt;LPC_IOCON-&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0; font-size: small;"&gt;PIO0&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt;[3] &amp;amp;= (1 &amp;lt;&amp;lt; 0), if I add another delay in the while loop as follows, it doesn't seem to work. &lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #7f0055; font-size: small;"&gt;&lt;STRONG&gt;while&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt;(1) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;　&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #7f0055; font-size: small;"&gt;&lt;STRONG&gt;for&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; (&lt;/SPAN&gt;&lt;SPAN style="color: #7f0055; font-size: small;"&gt;&lt;STRONG&gt;int&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; j = 0; j &amp;lt; 10000000; j++)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; LPC_GPIO-&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0; font-size: small;"&gt;SET&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt;[0] |= PIO0_17_D5_LED; &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small;"&gt;/*Pin high initially so LEDs are On*/&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt;&amp;nbsp;&lt;SPAN style="font-size: small;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #7f0055; font-size: small;"&gt;&lt;STRONG&gt;for&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; (&lt;/SPAN&gt;&lt;SPAN style="color: #7f0055; font-size: small;"&gt;&lt;STRONG&gt;int&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; j = 0; j &amp;lt; 1000000; j++)&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;　&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; LPC_GPIO-&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0; font-size: small;"&gt;CLR&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt;[0] |= PIO0_17_D5_LED; &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small;"&gt;/*Pin low so LEDs are off*/&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3f7f5f; font-size: small;"&gt;&lt;SPAN style="font-size: small;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #7f0055; font-size: small;"&gt;&lt;STRONG&gt;for&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; (&lt;/SPAN&gt;&lt;SPAN style="color: #7f0055; font-size: small;"&gt;&lt;STRONG&gt;int&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; j = 0; j &amp;lt; 1000000; j++)&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;　&lt;/P&gt;&lt;P&gt;　&lt;/P&gt;&lt;P&gt;　&lt;/P&gt;&lt;P&gt;Chip_IAP_ReinvokeISP();&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Also, I have tried it by adding __disable_irq(); at the beginning of while loop, but it still doesn't work.&lt;/P&gt;&lt;P&gt;I&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 25 Feb 2019 16:11:55 GMT</pubDate>
    <dc:creator>davidyun</dc:creator>
    <dc:date>2019-02-25T16:11:55Z</dc:date>
    <item>
      <title>Entering ISP mode from user code with LPC11U68JBD48</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Entering-ISP-mode-from-user-code-with-LPC11U68JBD48/m-p/880622#M35203</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I'm using LPC11U68JBD48 microprocessor. I have a switch which toggles PIO0_1 pin. I can go into the ISP mode by pressing the switch and by applying power to the board (Resetting board).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Now I have my application code running and I would like to create a means to invoke the ISP USB MSD over my application so the toggle switch is not necessary. What I would like to do is that when I get a command from PC application by USB protocol, I would like my application (LP11U68) go into the SPI mode.&lt;BR /&gt;Is it possible with LPC11U68JBD48 microprocessor?&lt;/P&gt;&lt;P&gt;I'm using Chip_IAP_ReinvokeISP() function to make my application to go into the ISP USB mode.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;What I have noticed so far:&lt;/P&gt;&lt;P&gt;1. If I call Chip_IAP_ReinvokeISP() very early in main function, it DOES go into the ISP mode, but if I put any delay (say 1 second), it doesn't go into the ISP mode.&lt;/P&gt;&lt;P&gt;2. When I set GPIO initialisation as below and call Chip_IAP_ReinvokeISP(), it does not go into the ISP mode.&lt;/P&gt;&lt;P&gt;LPC_IOCON-&amp;gt;PIO0[1] &amp;amp;= 0; &lt;BR /&gt; LPC_IOCON-&amp;gt;PIO0[1] |= (0x02&amp;lt;&amp;lt;3); /*internal pull up resistor*/&lt;BR /&gt; &lt;BR /&gt; LPC_IOCON-&amp;gt;PIO0[3] |= (1 &amp;lt;&amp;lt; 0); /*set up of PIO0_3 register to USB_VBUS*/&lt;BR /&gt; LPC_IOCON-&amp;gt;PIO0[3] |= (0 &amp;lt;&amp;lt; 3); /*and inactive pull-up/pull-down resistors*/&lt;BR /&gt; &lt;BR /&gt;3. I have tried everything above with LPC11U68 development board which has LPC11U68JBD100 and LPC4322JET100(Link 2), everything seems to be working fine.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Any help would be appreciated.&lt;/P&gt;&lt;P&gt;Thanks&lt;BR /&gt;David&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 21 Feb 2019 16:17:29 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Entering-ISP-mode-from-user-code-with-LPC11U68JBD48/m-p/880622#M35203</guid>
      <dc:creator>davidyun</dc:creator>
      <dc:date>2019-02-21T16:17:29Z</dc:date>
    </item>
    <item>
      <title>Re: Entering ISP mode from user code with LPC11U68JBD48</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Entering-ISP-mode-from-user-code-with-LPC11U68JBD48/m-p/880623#M35204</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi David,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I attempted setting the LPC11U68 to ISP mode using the LPCOpen example called "periph_flashiap" and it worked. For that, I took the mentioned project and modified it in order for it to have a delay of approximately 1s and proceed to call the Chip_IAP_ReinvokeISP() function; after the function is called, I used a terminal (Tera Term or Flash Magic) to check if ISP was correctly set.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It is important to mention that I did not follow the GPIO initialization that you described (I didn't modify those pins at all). Here I attach the code I implemented (using the LPCOpen project I previously mentioned):&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="language-c line-numbers"&gt;&lt;CODE&gt;&lt;SPAN class="keyword token"&gt;int&lt;/SPAN&gt; &lt;SPAN class="token function"&gt;main&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="keyword token"&gt;void&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
&lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;
 &lt;SPAN class="comment token"&gt;/**Delay variables*/&lt;/SPAN&gt;
 uint32_t i &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
 uint32_t j &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

 &lt;SPAN class="comment token"&gt;/* Generic Initialization */&lt;/SPAN&gt;
 &lt;SPAN class="token function"&gt;SystemCoreClockUpdate&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
 &lt;SPAN class="token function"&gt;Board_Init&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

 &lt;SPAN class="comment token"&gt;/* Enable SysTick Timer */&lt;/SPAN&gt;
 &lt;SPAN class="token function"&gt;SysTick_Config&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;SystemCoreClock &lt;SPAN class="operator token"&gt;/&lt;/SPAN&gt; TICKRATE_HZ&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

 &lt;SPAN class="comment token"&gt;/* Disable interrupt mode so it doesn't fire during FLASH updates */&lt;/SPAN&gt;
 &lt;SPAN class="token function"&gt;__disable_irq&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;


 &lt;SPAN class="comment token"&gt;/** Delay*/&lt;/SPAN&gt;
 &lt;SPAN class="keyword token"&gt;for&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;i &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;100000&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;&amp;gt;&lt;/SPAN&gt; i&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt; i&lt;SPAN class="operator token"&gt;++&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
  &lt;SPAN class="keyword token"&gt;for&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;j &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;100&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;&amp;gt;&lt;/SPAN&gt; j&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt; j&lt;SPAN class="operator token"&gt;++&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;



 &lt;SPAN class="comment token"&gt;/* Enter ISP mode */&lt;/SPAN&gt;
 &lt;SPAN class="token function"&gt;Chip_IAP_ReinvokeISP&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

 &lt;SPAN class="keyword token"&gt;while&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;1&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;
  &lt;SPAN class="token function"&gt;__WFI&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
 &lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;

 &lt;SPAN class="keyword token"&gt;return&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I hope this information can help you.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ricardo Delsordo&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 22 Feb 2019 17:01:20 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Entering-ISP-mode-from-user-code-with-LPC11U68JBD48/m-p/880623#M35204</guid>
      <dc:creator>nxf51211</dc:creator>
      <dc:date>2019-02-22T17:01:20Z</dc:date>
    </item>
    <item>
      <title>Re: Entering ISP mode from user code with LPC11U68JBD48</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Entering-ISP-mode-from-user-code-with-LPC11U68JBD48/m-p/880624#M35205</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks Ricardo for your reply.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Your code above doesn't seem to be working for both LPC11U68 development board&amp;nbsp;and my board in which&amp;nbsp;there is&amp;nbsp;a LPC11U68 chip. I checked whether it appeared as a Mass Storage Class (MSC) device or not.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;See an example picture below which&amp;nbsp;shows&amp;nbsp;I&amp;nbsp;could go into the ISP mode by pressing the switch(PIO0_1 pin) and by applying power to the board (Resetting the board). The idea is that my PC application would access CRP DISABLD (E:) drive and replace it with a newer firmware. This way, we could update the firmware in the field. Our product won't have any button, that's why I would like to go into the ISP mode at the runtime when I get a command&amp;nbsp;from the PC application.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="Mass storage class.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/79185i8B0AA0EB87217A9B/image-size/large?v=v2&amp;amp;px=999" role="button" title="Mass storage class.png" alt="Mass storage class.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Do you have any other suggestion for the field firmware update?&lt;/P&gt;&lt;P&gt;Can you update the firmware by using Tera Term or Flash Magic?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When I ran your code, it appeared as follows instead of the picture above.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="Mass storage class - not working.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/79274iB8C54234A0166CEA/image-size/large?v=v2&amp;amp;px=999" role="button" title="Mass storage class - not working.png" alt="Mass storage class - not working.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My code below seems to be working if I comment out the line, &lt;SPAN style="font-size: small;"&gt;LPC_IOCON-&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0; font-size: small;"&gt;PIO0&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt;[3] &amp;amp;= (1 &amp;lt;&amp;lt; 0);.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt;However, with LPC11U68 development board it seems to be working no matter that I comment out that line or not.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #7f0055; font-size: small; "&gt;&lt;STRONG&gt;#include&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #2a00ff; font-size: small; "&gt;&amp;lt;board.h&amp;gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #7f0055; font-size: small; "&gt;&lt;STRONG&gt;#define&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; POWER_CON_SYSOSC (1&amp;lt;&amp;lt;5) &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small; "&gt;/*register value to enable the power to system oscillator*/&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #7f0055; font-size: small; "&gt;&lt;STRONG&gt;#define&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; BYPASS 1 &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small; "&gt;/*register value to set Bypass system oscillator*/&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #7f0055; font-size: small; "&gt;&lt;STRONG&gt;#define&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; FREQRANGE (1&amp;lt;&amp;lt;1) &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small; "&gt;/*register value to &lt;SPAN style="text-decoration: underline;"&gt;determin&lt;/SPAN&gt; frequency range for low-power oscillator*/&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #7f0055; font-size: small; "&gt;&lt;STRONG&gt;#define&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; PLL_CTRL_CONFIG 0x23 &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small; "&gt;/*register value to configure the PLL*/&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #7f0055; font-size: small; "&gt;&lt;STRONG&gt;#define&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; PLL_ON ~(1&amp;lt;&amp;lt;7) &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small; "&gt;/*register value to enable the PLL*/&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #7f0055; font-size: small; "&gt;&lt;STRONG&gt;#define&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; PLL_LOCK 0x01 &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small; "&gt;/*register value to lock the PLL*/&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #7f0055; font-size: small; "&gt;&lt;STRONG&gt;#define&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; CLK_SEL_PLLOUT 3 &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small; "&gt;/*register value to set the main system clock to the output of the &lt;SPAN style="text-decoration: underline;"&gt;pll&lt;/SPAN&gt;*/&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #7f0055; font-size: small; "&gt;&lt;STRONG&gt;#define&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; GPIO_CLK_EN (1&amp;lt;&amp;lt;6) &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small; "&gt;/*register value to enable the clock signal to GPIO block*/&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #7f0055; font-size: small; "&gt;&lt;STRONG&gt;#define&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; IOCON_CLK_EN (1&amp;lt;&amp;lt;16) &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small; "&gt;/*register value to enable the clock signal to IOCON block*/&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #7f0055; font-size: small; "&gt;&lt;STRONG&gt;#define&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; TIMERS_CLK_EN (0xF&amp;lt;&amp;lt;7) &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small; "&gt;/*register value to enable the clock signal to all timers*/&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #7f0055; font-size: small; "&gt;&lt;STRONG&gt;#define&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; UART_CLK_EN (1&amp;lt;&amp;lt;12) &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small; "&gt;/*register value to enable the clock signal to UART block*/&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #7f0055; font-size: small; "&gt;&lt;STRONG&gt;#define&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; PINT_CLK_EN (1&amp;lt;&amp;lt;19) &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small; "&gt;/*register value to enable the clock signal to pin interrupt block*/&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #7f0055; font-size: small; "&gt;&lt;STRONG&gt;#define&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; SSP0_CLK_EN (1&amp;lt;&amp;lt;11) &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small; "&gt;/*register value to enable the clock signal to SSP0 block*/&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #7f0055; font-size: small; "&gt;&lt;STRONG&gt;#define&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; SSP1_CLK_EN (1&amp;lt;&amp;lt;18) &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small; "&gt;/*register value to enable the clock signal to SSP1 block*/&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #7f0055; font-size: small; "&gt;&lt;STRONG&gt;#define&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; ADC_CLK_EN (1&amp;lt;&amp;lt;13) &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small; "&gt;/*register value to enable the clock signal to ADC block*/&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #7f0055; font-size: small; "&gt;&lt;STRONG&gt;#define&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; USB_CLK_EN (1&amp;lt;&amp;lt;14) &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small; "&gt;/*register value to enable the clock signal to USB block*/&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #7f0055; font-size: small; "&gt;&lt;STRONG&gt;#define&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; PIO0_17_D5_LED (1&amp;lt;&amp;lt;17) &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small; "&gt;/*register value for the control bit for PIO0_17 pin*/&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #7f0055; font-size: small; "&gt;&lt;STRONG&gt;#define&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; CLR_PIN_CONFIG 0x00000000 &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small; "&gt;/*value to clear a pin's IOCON register*/&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #7f0055; font-size: small; "&gt;&lt;STRONG&gt;#define&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; PULL_UP_EN (0x02&amp;lt;&amp;lt;3) &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small; "&gt;/*register value used to set a GPIO pin to have an internal pull up resistor*/&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #7f0055; font-size: small; "&gt;&lt;STRONG&gt;#define&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; USB_VBUS (1&amp;lt;&amp;lt;0) &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small; "&gt;/*register value to configure pin as USB VBUS*/&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #7f0055; font-size: small; "&gt;&lt;STRONG&gt;#define&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; PULL_UP_PULL_DOWN_INACTIVE ~(3&amp;lt;&amp;lt;3) &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small; "&gt;/*register value to configure pin so that the internal pull-up/pull-down resistors are not active*/&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt;　&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #7f0055; font-size: small;"&gt;&lt;STRONG&gt;int&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; &lt;STRONG&gt;main&lt;/STRONG&gt;(&lt;/SPAN&gt;&lt;SPAN style="color: #7f0055; font-size: small;"&gt;&lt;STRONG&gt;void&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt;) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;// System clock settings&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; LPC_SYSCTL-&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0; font-size: small;"&gt;PDRUNCFG&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; &amp;amp;= ~(POWER_CON_SYSOSC); &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small;"&gt;///Power-up System &lt;SPAN style="text-decoration: underline;"&gt;Osc&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; LPC_SYSCTL-&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0; font-size: small;"&gt;PDRUNCFG&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; &amp;amp;= ~(1&amp;lt;&amp;lt;4); &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small;"&gt;/*ADC powered*/&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; LPC_SYSCTL-&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0; font-size: small;"&gt;SYSOSCCTRL&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; &amp;amp;= ~(BYPASS); &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small;"&gt;/*system oscillator control register: Oscillator is not bypassed, frequency range is 1 - 20 MHz*/&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; LPC_SYSCTL-&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0; font-size: small;"&gt;SYSOSCCTRL&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; &amp;amp;= ~(FREQRANGE);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small;"&gt;/*configure &lt;SPAN style="text-decoration: underline;"&gt;pll&lt;/SPAN&gt; to give 48MHz clock output*/&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; LPC_SYSCTL-&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0; font-size: small;"&gt;SYSPLLCTRL&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; = PLL_CTRL_CONFIG;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; LPC_SYSCTL-&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0; font-size: small;"&gt;PDRUNCFG&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; &amp;amp;= PLL_ON;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small;"&gt;/*wait for &lt;SPAN style="text-decoration: underline;"&gt;pll&lt;/SPAN&gt; lock*/&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #7f0055; font-size: small;"&gt;&lt;STRONG&gt;while&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt;(!(LPC_SYSCTL-&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0; font-size: small;"&gt;SYSPLLSTAT&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; &amp;amp; PLL_LOCK))&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small;"&gt;/*do nothing*/&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small;"&gt;/*connect main clock to &lt;SPAN style="text-decoration: underline;"&gt;pll&lt;/SPAN&gt; output*/&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; LPC_SYSCTL-&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0; font-size: small;"&gt;MAINCLKSEL&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; |= CLK_SEL_PLLOUT;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; LPC_SYSCTL-&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0; font-size: small;"&gt;MAINCLKUEN&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; = &lt;/SPAN&gt;&lt;SPAN style="color: #0000c0; font-size: small;"&gt;&lt;EM&gt;FALSE&lt;/EM&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt;; &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small;"&gt;/*Toggle enable for setting to take effect*/&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; LPC_SYSCTL-&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0; font-size: small;"&gt;MAINCLKUEN&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; = &lt;/SPAN&gt;&lt;SPAN style="color: #0000c0; font-size: small;"&gt;&lt;EM&gt;TRUE&lt;/EM&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small;"&gt;/*enable clock to required peripherals*/&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; g_systemControl-&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0; font-size: small;"&gt;SYSAHBCLKCTRL&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; |= IOCON_CLK_EN &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small;"&gt;///enable clock to IOCON&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | USB_CLK_EN &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small;"&gt;///enable clock to USB&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | GPIO_CLK_EN &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small;"&gt;///enable clock to GPIO&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | TIMERS_CLK_EN &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small;"&gt;///enable clock to timers&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | PINT_CLK_EN &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small;"&gt;///enable clock to pin interrupts&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | SSP0_CLK_EN &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small;"&gt;///enable clock to SSP0&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | ADC_CLK_EN; &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small;"&gt;///enable clock to ADC&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;//GPIO settings　&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; LPC_IOCON-&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0; font-size: small;"&gt;PIO0&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt;[1] &amp;amp;= 0;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; LPC_IOCON-&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0; font-size: small;"&gt;PIO0&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt;[1] |= (0x02&amp;lt;&amp;lt;3); /*internal pull up resistor*/&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small;"&gt;/// USB_VBUS &lt;SPAN style="text-decoration: underline;"&gt;config&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; LPC_IOCON-&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0; font-size: small;"&gt;PIO0&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt;[3] |= (1 &amp;lt;&amp;lt; 0);&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small;"&gt;/// Set up of PIO0_3 register to USB_VBUS&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;SPAN style="font-size: small;"&gt; LPC_IOCON-&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0; font-size: small;"&gt;PIO0&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt;[3] &amp;amp;= (1 &amp;lt;&amp;lt; 0);&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small;"&gt;/// and inactive pull-up/pull-down resistors&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt;LPC_GPIO-&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0; font-size: small;"&gt;DIR&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt;[0] |= PIO0_17_D5_LED; &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small;"&gt;/// Port 0 - pin 17 LED&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;　&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #7f0055; font-size: small;"&gt;&lt;STRONG&gt;while&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt;(1) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;　&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; LPC_GPIO-&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0; font-size: small;"&gt;SET&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt;[0] |= PIO0_17_D5_LED; &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small;"&gt;/*Pin high initially so LEDs are On*/&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3f7f5f; font-size: small;"&gt;&lt;SPAN style="color: #7f0055; font-size: small;"&gt;&lt;STRONG&gt;for&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; (&lt;/SPAN&gt;&lt;SPAN style="color: #7f0055; font-size: small;"&gt;&lt;STRONG&gt;int&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; j = 0; j &amp;lt; 1000000; j++)&lt;BR /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;　&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; LPC_GPIO-&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0; font-size: small;"&gt;CLR&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt;[0] |= PIO0_17_D5_LED; &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small;"&gt;/*Pin low so LEDs are off*/&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt;&amp;nbsp;&lt;SPAN style="color: #7f0055; font-size: small;"&gt;&lt;STRONG&gt;for&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; (&lt;/SPAN&gt;&lt;SPAN style="color: #7f0055; font-size: small;"&gt;&lt;STRONG&gt;int&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; j = 0; j &amp;lt; 1000000; j++)&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;　&lt;/P&gt;&lt;P&gt;　&lt;/P&gt;&lt;P&gt;　&lt;/P&gt;&lt;P&gt;Chip_IAP_ReinvokeISP();&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for your help.&lt;/P&gt;&lt;P&gt;David&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 25 Feb 2019 11:32:25 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Entering-ISP-mode-from-user-code-with-LPC11U68JBD48/m-p/880624#M35205</guid>
      <dc:creator>davidyun</dc:creator>
      <dc:date>2019-02-25T11:32:25Z</dc:date>
    </item>
    <item>
      <title>Re: Entering ISP mode from user code with LPC11U68JBD48</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Entering-ISP-mode-from-user-code-with-LPC11U68JBD48/m-p/880625#M35206</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;One more to add.&amp;nbsp;Even if&amp;nbsp;I comment out the line, &lt;SPAN style="font-size: small;"&gt;LPC_IOCON-&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0; font-size: small;"&gt;PIO0&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt;[3] &amp;amp;= (1 &amp;lt;&amp;lt; 0), if I add another delay in the while loop as follows, it doesn't seem to work. &lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #7f0055; font-size: small;"&gt;&lt;STRONG&gt;while&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt;(1) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;　&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #7f0055; font-size: small;"&gt;&lt;STRONG&gt;for&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; (&lt;/SPAN&gt;&lt;SPAN style="color: #7f0055; font-size: small;"&gt;&lt;STRONG&gt;int&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; j = 0; j &amp;lt; 10000000; j++)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; LPC_GPIO-&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0; font-size: small;"&gt;SET&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt;[0] |= PIO0_17_D5_LED; &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small;"&gt;/*Pin high initially so LEDs are On*/&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt;&amp;nbsp;&lt;SPAN style="font-size: small;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #7f0055; font-size: small;"&gt;&lt;STRONG&gt;for&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; (&lt;/SPAN&gt;&lt;SPAN style="color: #7f0055; font-size: small;"&gt;&lt;STRONG&gt;int&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; j = 0; j &amp;lt; 1000000; j++)&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;　&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; LPC_GPIO-&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0; font-size: small;"&gt;CLR&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt;[0] |= PIO0_17_D5_LED; &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small;"&gt;/*Pin low so LEDs are off*/&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3f7f5f; font-size: small;"&gt;&lt;SPAN style="font-size: small;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #7f0055; font-size: small;"&gt;&lt;STRONG&gt;for&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; (&lt;/SPAN&gt;&lt;SPAN style="color: #7f0055; font-size: small;"&gt;&lt;STRONG&gt;int&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; j = 0; j &amp;lt; 1000000; j++)&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;　&lt;/P&gt;&lt;P&gt;　&lt;/P&gt;&lt;P&gt;　&lt;/P&gt;&lt;P&gt;Chip_IAP_ReinvokeISP();&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Also, I have tried it by adding __disable_irq(); at the beginning of while loop, but it still doesn't work.&lt;/P&gt;&lt;P&gt;I&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 25 Feb 2019 16:11:55 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Entering-ISP-mode-from-user-code-with-LPC11U68JBD48/m-p/880625#M35206</guid>
      <dc:creator>davidyun</dc:creator>
      <dc:date>2019-02-25T16:11:55Z</dc:date>
    </item>
    <item>
      <title>Re: Entering ISP mode from user code with LPC11U68JBD48</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Entering-ISP-mode-from-user-code-with-LPC11U68JBD48/m-p/880626#M35207</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi David,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;First I'd like to ask you if you tried my code modifying the LPC project I mentioned, or if you just tried the main function alone (this is because in the code I put on my first answer, the system initialization is made inside the "Generic Initialization" functions which were generated with the LPC Project).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Also, I tried the code that you used, and I was able to get the board to enter ISP mode even with all the delays you used and with the line &lt;SPAN style="font-size: small;"&gt;LPC_IOCON-&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0; font-size: small;"&gt;PIO0&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt;[3] &amp;amp;= (1 &amp;lt;&amp;lt; 0)&lt;/SPAN&gt;. For that I just changed the &lt;SPAN style="font-size: small;"&gt;g_systemControl-&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0; font-size: small;"&gt;SYSAHBCLKCTRL&lt;/SPAN&gt; for LPC_SYSCTL-&amp;gt;SYSAHBCLKCTRL when you enable the clock:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="language-c line-numbers"&gt;&lt;CODE&gt;&lt;SPAN class="property macro token"&gt;#include &lt;SPAN class="string token"&gt;&amp;lt;board.h&amp;gt;&lt;/SPAN&gt;&lt;/SPAN&gt;



&lt;SPAN class="property macro token"&gt;#define POWER_CON_SYSOSC (1&amp;lt;&amp;lt;5) &lt;/SPAN&gt;&lt;SPAN class="comment token"&gt;/*register value to enable the power to system oscillator*/&lt;/SPAN&gt;
&lt;SPAN class="property macro token"&gt;#define BYPASS 1 &lt;/SPAN&gt;&lt;SPAN class="comment token"&gt;/*register value to set Bypass system oscillator*/&lt;/SPAN&gt;
&lt;SPAN class="property macro token"&gt;#define FREQRANGE (1&amp;lt;&amp;lt;1) &lt;/SPAN&gt;&lt;SPAN class="comment token"&gt;/*register value to determin frequency range for low-power oscillator*/&lt;/SPAN&gt;
&lt;SPAN class="property macro token"&gt;#define PLL_CTRL_CONFIG 0x23 &lt;/SPAN&gt;&lt;SPAN class="comment token"&gt;/*register value to configure the PLL*/&lt;/SPAN&gt;
&lt;SPAN class="property macro token"&gt;#define PLL_ON ~(1&amp;lt;&amp;lt;7) &lt;/SPAN&gt;&lt;SPAN class="comment token"&gt;/*register value to enable the PLL*/&lt;/SPAN&gt;
&lt;SPAN class="property macro token"&gt;#define PLL_LOCK 0x01 &lt;/SPAN&gt;&lt;SPAN class="comment token"&gt;/*register value to lock the PLL*/&lt;/SPAN&gt;
&lt;SPAN class="property macro token"&gt;#define CLK_SEL_PLLOUT 3 &lt;/SPAN&gt;&lt;SPAN class="comment token"&gt;/*register value to set the main system clock to the output of the pll*/&lt;/SPAN&gt;
&lt;SPAN class="property macro token"&gt;#define GPIO_CLK_EN (1&amp;lt;&amp;lt;6) &lt;/SPAN&gt;&lt;SPAN class="comment token"&gt;/*register value to enable the clock signal to GPIO block*/&lt;/SPAN&gt;
&lt;SPAN class="property macro token"&gt;#define IOCON_CLK_EN (1&amp;lt;&amp;lt;16) &lt;/SPAN&gt;&lt;SPAN class="comment token"&gt;/*register value to enable the clock signal to IOCON block*/&lt;/SPAN&gt;
&lt;SPAN class="property macro token"&gt;#define TIMERS_CLK_EN (0xF&amp;lt;&amp;lt;7) &lt;/SPAN&gt;&lt;SPAN class="comment token"&gt;/*register value to enable the clock signal to all timers*/&lt;/SPAN&gt;
&lt;SPAN class="property macro token"&gt;#define UART_CLK_EN (1&amp;lt;&amp;lt;12) &lt;/SPAN&gt;&lt;SPAN class="comment token"&gt;/*register value to enable the clock signal to UART block*/&lt;/SPAN&gt;
&lt;SPAN class="property macro token"&gt;#define PINT_CLK_EN (1&amp;lt;&amp;lt;19) &lt;/SPAN&gt;&lt;SPAN class="comment token"&gt;/*register value to enable the clock signal to pin interrupt block*/&lt;/SPAN&gt;
&lt;SPAN class="property macro token"&gt;#define SSP0_CLK_EN (1&amp;lt;&amp;lt;11) &lt;/SPAN&gt;&lt;SPAN class="comment token"&gt;/*register value to enable the clock signal to SSP0 block*/&lt;/SPAN&gt;
&lt;SPAN class="property macro token"&gt;#define SSP1_CLK_EN (1&amp;lt;&amp;lt;18) &lt;/SPAN&gt;&lt;SPAN class="comment token"&gt;/*register value to enable the clock signal to SSP1 block*/&lt;/SPAN&gt;
&lt;SPAN class="property macro token"&gt;#define ADC_CLK_EN (1&amp;lt;&amp;lt;13) &lt;/SPAN&gt;&lt;SPAN class="comment token"&gt;/*register value to enable the clock signal to ADC block*/&lt;/SPAN&gt;
&lt;SPAN class="property macro token"&gt;#define USB_CLK_EN (1&amp;lt;&amp;lt;14) &lt;/SPAN&gt;&lt;SPAN class="comment token"&gt;/*register value to enable the clock signal to USB block*/&lt;/SPAN&gt;
&lt;SPAN class="property macro token"&gt;#define PIO0_17_D5_LED (1&amp;lt;&amp;lt;17) &lt;/SPAN&gt;&lt;SPAN class="comment token"&gt;/*register value for the control bit for PIO0_17 pin*/&lt;/SPAN&gt;
&lt;SPAN class="property macro token"&gt;#define CLR_PIN_CONFIG 0x00000000 &lt;/SPAN&gt;&lt;SPAN class="comment token"&gt;/*value to clear a pin's IOCON register*/&lt;/SPAN&gt;
&lt;SPAN class="property macro token"&gt;#define PULL_UP_EN (0x02&amp;lt;&amp;lt;3) &lt;/SPAN&gt;&lt;SPAN class="comment token"&gt;/*register value used to set a GPIO pin to have an internal pull up resistor*/&lt;/SPAN&gt;
&lt;SPAN class="property macro token"&gt;#define USB_VBUS (1&amp;lt;&amp;lt;0) &lt;/SPAN&gt;&lt;SPAN class="comment token"&gt;/*register value to configure pin as USB VBUS*/&lt;/SPAN&gt;
&lt;SPAN class="property macro token"&gt;#define PULL_UP_PULL_DOWN_INACTIVE ~(3&amp;lt;&amp;lt;3) &lt;/SPAN&gt;&lt;SPAN class="comment token"&gt;/*register value to configure pin so that the internal pull-up/pull-down resistors are not active*/&lt;/SPAN&gt;



&lt;SPAN class="keyword token"&gt;int&lt;/SPAN&gt; &lt;SPAN class="token function"&gt;main&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="keyword token"&gt;void&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
&lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;

 &lt;SPAN class="comment token"&gt;// System clock settings&lt;/SPAN&gt;
 LPC_SYSCTL&lt;SPAN class="operator token"&gt;-&amp;gt;&lt;/SPAN&gt;PDRUNCFG &lt;SPAN class="operator token"&gt;&amp;amp;&lt;/SPAN&gt;&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;~&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;POWER_CON_SYSOSC&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;///Power-up System Osc&lt;/SPAN&gt;
 LPC_SYSCTL&lt;SPAN class="operator token"&gt;-&amp;gt;&lt;/SPAN&gt;PDRUNCFG &lt;SPAN class="operator token"&gt;&amp;amp;&lt;/SPAN&gt;&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;~&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;1&lt;/SPAN&gt;&lt;SPAN class="operator token"&gt;&amp;lt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;4&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;/*ADC powered*/&lt;/SPAN&gt;

 LPC_SYSCTL&lt;SPAN class="operator token"&gt;-&amp;gt;&lt;/SPAN&gt;SYSOSCCTRL &lt;SPAN class="operator token"&gt;&amp;amp;&lt;/SPAN&gt;&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;~&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;BYPASS&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;/*system oscillator control register: Oscillator is not bypassed, frequency range is 1 - 20 MHz*/&lt;/SPAN&gt;
 LPC_SYSCTL&lt;SPAN class="operator token"&gt;-&amp;gt;&lt;/SPAN&gt;SYSOSCCTRL &lt;SPAN class="operator token"&gt;&amp;amp;&lt;/SPAN&gt;&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;~&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;FREQRANGE&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

 &lt;SPAN class="comment token"&gt;/*configure pll to give 48MHz clock output*/&lt;/SPAN&gt;
 LPC_SYSCTL&lt;SPAN class="operator token"&gt;-&amp;gt;&lt;/SPAN&gt;SYSPLLCTRL &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; PLL_CTRL_CONFIG&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
 LPC_SYSCTL&lt;SPAN class="operator token"&gt;-&amp;gt;&lt;/SPAN&gt;PDRUNCFG &lt;SPAN class="operator token"&gt;&amp;amp;&lt;/SPAN&gt;&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; PLL_ON&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

 &lt;SPAN class="comment token"&gt;/*wait for pll lock*/&lt;/SPAN&gt;
 &lt;SPAN class="keyword token"&gt;while&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="operator token"&gt;!&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;LPC_SYSCTL&lt;SPAN class="operator token"&gt;-&amp;gt;&lt;/SPAN&gt;SYSPLLSTAT &lt;SPAN class="operator token"&gt;&amp;amp;&lt;/SPAN&gt; PLL_LOCK&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
 &lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;
 &lt;SPAN class="comment token"&gt;/*do nothing*/&lt;/SPAN&gt;
 &lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;

 &lt;SPAN class="comment token"&gt;/*connect main clock to pll output*/&lt;/SPAN&gt;
 LPC_SYSCTL&lt;SPAN class="operator token"&gt;-&amp;gt;&lt;/SPAN&gt;MAINCLKSEL &lt;SPAN class="operator token"&gt;|&lt;/SPAN&gt;&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; CLK_SEL_PLLOUT&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
 LPC_SYSCTL&lt;SPAN class="operator token"&gt;-&amp;gt;&lt;/SPAN&gt;MAINCLKUEN &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; FALSE&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;/*Toggle enable for setting to take effect*/&lt;/SPAN&gt;
 LPC_SYSCTL&lt;SPAN class="operator token"&gt;-&amp;gt;&lt;/SPAN&gt;MAINCLKUEN &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; TRUE&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;


 &lt;SPAN class="comment token"&gt;/*enable clock to required peripherals*/&lt;/SPAN&gt;
 LPC_SYSCTL&lt;SPAN class="operator token"&gt;-&amp;gt;&lt;/SPAN&gt;SYSAHBCLKCTRL &lt;SPAN class="operator token"&gt;|&lt;/SPAN&gt;&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; IOCON_CLK_EN &lt;SPAN class="comment token"&gt;///enable clock to IOCON&lt;/SPAN&gt;
                  &lt;SPAN class="operator token"&gt;|&lt;/SPAN&gt; USB_CLK_EN &lt;SPAN class="comment token"&gt;///enable clock to USB&lt;/SPAN&gt;

                   &lt;SPAN class="operator token"&gt;|&lt;/SPAN&gt; GPIO_CLK_EN &lt;SPAN class="comment token"&gt;///enable clock to GPIO&lt;/SPAN&gt;

                   &lt;SPAN class="operator token"&gt;|&lt;/SPAN&gt; TIMERS_CLK_EN &lt;SPAN class="comment token"&gt;///enable clock to timers&lt;/SPAN&gt;

                   &lt;SPAN class="operator token"&gt;|&lt;/SPAN&gt; PINT_CLK_EN &lt;SPAN class="comment token"&gt;///enable clock to pin interrupts&lt;/SPAN&gt;

                   &lt;SPAN class="operator token"&gt;|&lt;/SPAN&gt; SSP0_CLK_EN &lt;SPAN class="comment token"&gt;///enable clock to SSP0&lt;/SPAN&gt;

                   &lt;SPAN class="operator token"&gt;|&lt;/SPAN&gt; ADC_CLK_EN&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;///enable clock to ADC&lt;/SPAN&gt;



 &lt;SPAN class="comment token"&gt;//GPIO settings&lt;/SPAN&gt;
 LPC_IOCON&lt;SPAN class="operator token"&gt;-&amp;gt;&lt;/SPAN&gt;PIO0&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;1&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;&amp;amp;&lt;/SPAN&gt;&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
 LPC_IOCON&lt;SPAN class="operator token"&gt;-&amp;gt;&lt;/SPAN&gt;PIO0&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;1&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;|&lt;/SPAN&gt;&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;0x02&lt;/SPAN&gt;&lt;SPAN class="operator token"&gt;&amp;lt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;3&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;/*internal pull up resistor*/&lt;/SPAN&gt;

 &lt;SPAN class="comment token"&gt;/// USB_VBUS config&lt;/SPAN&gt;
 LPC_IOCON&lt;SPAN class="operator token"&gt;-&amp;gt;&lt;/SPAN&gt;PIO0&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;3&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;|&lt;/SPAN&gt;&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;1&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;&amp;lt;&amp;lt;&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;  &lt;SPAN class="comment token"&gt;/// Set up of PIO0_3 register to USB_VBUS&lt;/SPAN&gt;
 LPC_IOCON&lt;SPAN class="operator token"&gt;-&amp;gt;&lt;/SPAN&gt;PIO0&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;3&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;&amp;amp;&lt;/SPAN&gt;&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;1&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;&amp;lt;&amp;lt;&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;  &lt;SPAN class="comment token"&gt;/// and inactive pull-up/pull-down resistors&lt;/SPAN&gt;
 LPC_GPIO&lt;SPAN class="operator token"&gt;-&amp;gt;&lt;/SPAN&gt;DIR&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;|&lt;/SPAN&gt;&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; PIO0_17_D5_LED&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;/// Port 0 - pin 17 LED&lt;/SPAN&gt;


 &lt;SPAN class="keyword token"&gt;while&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;1&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
 &lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;
  &lt;SPAN class="keyword token"&gt;for&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="keyword token"&gt;int&lt;/SPAN&gt; j &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt; j &lt;SPAN class="operator token"&gt;&amp;lt;&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;1000000&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt; j&lt;SPAN class="operator token"&gt;++&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
  LPC_GPIO&lt;SPAN class="operator token"&gt;-&amp;gt;&lt;/SPAN&gt;SET&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;|&lt;/SPAN&gt;&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; PIO0_17_D5_LED&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;/*Pin high initially so LEDs are On*/&lt;/SPAN&gt;
  &lt;SPAN class="keyword token"&gt;for&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="keyword token"&gt;int&lt;/SPAN&gt; j &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt; j &lt;SPAN class="operator token"&gt;&amp;lt;&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;1000000&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt; j&lt;SPAN class="operator token"&gt;++&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
  LPC_GPIO&lt;SPAN class="operator token"&gt;-&amp;gt;&lt;/SPAN&gt;CLR&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;|&lt;/SPAN&gt;&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; PIO0_17_D5_LED&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;/*Pin low so LEDs are off*/&lt;/SPAN&gt;
  &lt;SPAN class="keyword token"&gt;for&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="keyword token"&gt;int&lt;/SPAN&gt; j &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt; j &lt;SPAN class="operator token"&gt;&amp;lt;&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;1000000&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt; j&lt;SPAN class="operator token"&gt;++&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
  &lt;SPAN class="token function"&gt;Chip_IAP_ReinvokeISP&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
 &lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;

&lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regarding the use of Flash Magic, you can indeed use it to update the firmware. With respect to TeraTerm, I just mentioned it because you can use it (just like the terminal that Flash Magic has) to send the "?" that allows you to have the ISP Synchronization. With this you can confirm that your board has entered ISP mode:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="lia-inline-image-display-wrapper" image-alt="pastedImage_1.png"&gt;&lt;IMG alt="pastedImage_1.png" src="https://community.nxp.com/t5/image/serverpage/image-id/63711i6A6CBD2DCBE63B9E/image-size/large?v=v2&amp;amp;px=999" title="pastedImage_1.png" /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It is important to mention that I used the LPC11U68 evaluation board (OM13058) with only the JP2 jumpers connected.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I hope this information can help you.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ricardo Delsordo.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 02 Nov 2020 14:19:21 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Entering-ISP-mode-from-user-code-with-LPC11U68JBD48/m-p/880626#M35207</guid>
      <dc:creator>nxf51211</dc:creator>
      <dc:date>2020-11-02T14:19:21Z</dc:date>
    </item>
    <item>
      <title>Re: Entering ISP mode from user code with LPC11U68JBD48</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Entering-ISP-mode-from-user-code-with-LPC11U68JBD48/m-p/880627#M35208</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P style="margin: 0cm 0cm 8pt;"&gt;&lt;SPAN style="font-size: 12pt;"&gt;Firstly, to your question, I used periph_flashiap project from the LPCOpen and replaced its main function with yours. It didn’t work. I was expecting CRP DISABLD drive to appear in my PC but only USB Device Not Recognized message appeared. I used same board as you, the LPC11U68 evaluation board (OM13058). &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 8pt;"&gt;&lt;SPAN style="font-size: 12pt;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 8pt;"&gt;&lt;SPAN style="font-size: 12pt;"&gt;Now, please could you answer my questions below I would be very grateful:&lt;/SPAN&gt;&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;&lt;SPAN style="font-size: 12pt;"&gt;Is it possible for LPC11U68JBD48 to go into the ISP mode at &lt;STRONG&gt;runtime&lt;/STRONG&gt;? What I mean with the ISP mode is that CRP DISABLD drive can appear in a PC.&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: 12pt;"&gt;It does seem to be working but with my board it seems to go into the ISP mode only if there is delay less than 600ms at the start up. If I add some delay (3 seconds) and then call &lt;STRONG&gt;Chip_IAP_ReinvokeISP() &lt;/STRONG&gt;this function, it does not work.&lt;BR /&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="color: #000000; font-size: 12pt;"&gt;&lt;SPAN style="font-size: 12pt;"&gt;Do I need a USB-RS232 cable in order to use Flash Magic? If so, this won’t be feasible as our customer won’t have this cable. This is why we are developing a PC application which could send a usb command to the LPC microcontroller, then the LPC micro could go into the ISP mode at runtime. Would this be possible?&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: 12pt;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="color: #000000; font-size: 12pt;"&gt;&lt;SPAN style="font-size: 12pt;"&gt;I also checked my code with the LPC11U68 evaluation board (OM13058), and it seems to be working fine. Could you please check that CRP DISABLD drive can appear in a PC when you go into the ISP mode rather checking with Flash Magic?&lt;/SPAN&gt;&lt;SPAN style="font-size: 12pt;"&gt;&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: 12pt;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="color: #000000; font-size: 12pt;"&gt;&lt;SPAN style="font-size: 12pt;"&gt;I understand that it would be difficult to examine my problem as you don’t have my board and schematic but could you think of anything why my board it seems to go into the ISP mode if there is delay less than 600ms at the start up, but not with the delay (3 seconds)&lt;/SPAN&gt;&lt;SPAN style="font-size: 12pt;"&gt;&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: 12pt;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="color: #000000; font-size: 12pt;"&gt;&lt;SPAN style="font-size: 12pt;"&gt;Could you possibly give me a quick guideline how to use Flash Magic as I haven’t used this before? Would this be useful to debug the ISP mode?&lt;BR /&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: 12pt;"&gt;Many thanks for your support.&lt;/SPAN&gt;&lt;SPAN style="font-size: 12pt;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="font-size: 12pt;"&gt;&lt;BR /&gt;David&lt;/SPAN&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 27 Feb 2019 10:46:50 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Entering-ISP-mode-from-user-code-with-LPC11U68JBD48/m-p/880627#M35208</guid>
      <dc:creator>davidyun</dc:creator>
      <dc:date>2019-02-27T10:46:50Z</dc:date>
    </item>
    <item>
      <title>Re: Entering ISP mode from user code with LPC11U68JBD48</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Entering-ISP-mode-from-user-code-with-LPC11U68JBD48/m-p/880628#M35209</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi David, &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;1.&lt;/STRONG&gt; It is possible to enter ISP mode during run time. In order for the computer to recognize the board as a MSC device, pin P0_3 must be high when calling Reinvoke ISP just like it shows in the following booting flow chart:&lt;/P&gt;&lt;P style="margin-left: 27.0pt;"&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_1.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/70031iACFE046B62864003/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_1.png" alt="pastedImage_1.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P style="margin-left: 27.0pt;"&gt;&lt;/P&gt;&lt;P style="margin-left: 27.0pt;"&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;2.&lt;/STRONG&gt; If you want to use USB ISP then you don't need to use Flash Magic and neither a USB-RS232 cable. When you are in USB ISP mode you can easily drag and drop your new firmware to the MSC device in your PC. Please consider that when using USB ISP, the user code valid signature must be either part of the vector table, or the axf (or binary) file must be post-processed to insert the checksum.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regarding your second question from this point, it's possible, but your application in the MCU will need to recognize this command in order to call the function Re-Invoke ISP. &amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;3.&lt;/STRONG&gt; Thank you so much for clarifying this. I've already checked on my side, and when I call Reinvoke ISP and have P0_3 high I'm able to see the LPC as a MSC device (CRP DISABLD).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;4. &lt;/STRONG&gt;The delays shouldn't affect the ISP mode at all. You have to keep in mind that when you call the function Reinvoke ISP your pin P0_3 has to be high. For the development board OM13058, this pin is connected to VBUS on the J3 connector, so when you connect a cable to this connector this pin goes to high immediately. Please check this connection on your board.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_12.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/69953iD6A356275C87D604/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_12.png" alt="pastedImage_12.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;5. &lt;/STRONG&gt;Since you want to use USB_ISP, the use of Flash Magic is no longer necessary. Flash Magic is a good tool only when you want to use I2C_ISP, SPI_ISP or UART_ISP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I hope this can answer your questions.&lt;/P&gt;&lt;P&gt;Best Regards,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ricardo Delsordo&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 28 Feb 2019 15:51:18 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Entering-ISP-mode-from-user-code-with-LPC11U68JBD48/m-p/880628#M35209</guid>
      <dc:creator>nxf51211</dc:creator>
      <dc:date>2019-02-28T15:51:18Z</dc:date>
    </item>
    <item>
      <title>Re: Entering ISP mode from user code with LPC11U68JBD48</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Entering-ISP-mode-from-user-code-with-LPC11U68JBD48/m-p/880629#M35210</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you very much, Ricardo. Much appreciated. Your response is really helpful.&lt;/P&gt;&lt;P&gt;I have further questions following your answers.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;&lt;P&gt;It is good to know that it is possible to enter ISP mode during run time.&lt;/P&gt;&lt;P&gt;My following question is that how to get USB ISP (CRP DISABLD) once the user code is running from the diagram below? Pin P0_3 seems to be checked during the boot process after the reset. What about after entering the user code?&lt;/P&gt;&lt;P&gt;Also, Pin P0_3 is always high once powered. Calling Reinvoke ISP seems to be working, but if I configure USB, it does no longer work. I have tested this with LPC11U68 evaluation board.&lt;/P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_1.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/73410iD06E06D259DBBC91/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_1.png" alt="pastedImage_1.png" /&gt;&lt;/span&gt;&lt;/LI&gt;&lt;LI&gt;Could you please use&lt;STRONG&gt; usbd_rom_hid_generic&lt;/STRONG&gt; project from the LPCOpen and try to go into the USP ISP (CRP DISABLD)? I tried it by simply adding the code below in the while (1) loop in main function. I used the LPC11U68 evaluation board (OM13058). It doesn’t work.&lt;BR /&gt;As you said, P0_3 should be high once I connect a cable to the connector, so I don’t need to drive the pin P0_3. Is there anything else I need to set before calling Chip_IAP_ReinvokeISP() function?&lt;P style="margin-bottom: .0001pt;"&gt;&lt;STRONG style="color: #7f0055; font-size: 10.0pt; "&gt;while&lt;/STRONG&gt;&lt;SPAN style="font-size: 10.0pt; color: black;"&gt; (1) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Chip_IAP_ReinvokeISP();&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; __WFI();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-size: 10.0pt; color: black;"&gt;On your answer to question 2, could you please explain what it means with the user code valid signature must be either part of the vector, or the axf (or binary) file musht be post-processed to insert the checksum. How can I achieve these?&lt;/SPAN&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt; color: black;"&gt;&lt;SPAN style="background-color: #ffffff; border: 0px; font-size: 12pt;"&gt;Many thanks for your support.&lt;/SPAN&gt;&lt;SPAN style="background-color: #ffffff; border: 0px; font-size: 12pt;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="background-color: #ffffff; border: 0px; font-size: 12pt;"&gt;&lt;BR /&gt;David&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 01 Mar 2019 09:36:10 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Entering-ISP-mode-from-user-code-with-LPC11U68JBD48/m-p/880629#M35210</guid>
      <dc:creator>davidyun</dc:creator>
      <dc:date>2019-03-01T09:36:10Z</dc:date>
    </item>
    <item>
      <title>Re: Entering ISP mode from user code with LPC11U68JBD48</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Entering-ISP-mode-from-user-code-with-LPC11U68JBD48/m-p/880631#M35212</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you very much Ricardo. Much appreciated your consistent support. Indeed, it works with NVIC_DisableIRQ(USB0_IRQn). Previously I used&amp;nbsp;__disable_irq();, then it didn't work. Do you know why?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Could you explain what&amp;nbsp;Chip_IAP_ReinvokeISP() function does? When this function is called from the user code, how is microprocessor put into the boot loader? The above boot process diagram doesn't have details how it works from the user code. Please see my mark in read in the diagram.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;In order to operate&amp;nbsp;&lt;SPAN&gt;Chip_IAP_ReinvokeISP() function, what is required in terms of what a peripheral&amp;nbsp;clock is required and any other things?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Many thanks,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;David&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 06 Mar 2019 08:53:11 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Entering-ISP-mode-from-user-code-with-LPC11U68JBD48/m-p/880631#M35212</guid>
      <dc:creator>davidyun</dc:creator>
      <dc:date>2019-03-06T08:53:11Z</dc:date>
    </item>
    <item>
      <title>Re: Entering ISP mode from user code with LPC11U68JBD48</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Entering-ISP-mode-from-user-code-with-LPC11U68JBD48/m-p/880632#M35213</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi David,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1. The __disable_irq() function doesn't work because you need to disable all NVIC interrupts before being able to access ISP mode; if you check the &lt;STRONG&gt;usbd_rom_hid_generic&lt;/STRONG&gt; LPCOpen project you can see that the NVIC Interrupt for the USB0 is enabled (that is why you need to disable it first).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2. The Chip_IAP_ReinvokeISP() function just sends the IAP command 57 (decimal) which invokes the bootloader in ISP mode (by accessing the ROM). By sending this IAP command, the device maps boot vectors, sets PCLK = CCLK,&amp;nbsp; configures UART pins and TXD, resets counter/timer CT32B1 and resets the USART0 FDR; in other words, the device re initializes itself to enter ISP mode when the function is called (so if you check the boot process diagram, you can see that you have to go through a reset in order to access the ISP). &lt;SPAN&gt;For more information, I recommend you check the LPC11U6x User Manual (Chapter 27).&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;3. In order to operate the &lt;SPAN&gt;Chip_IAP_ReinvokeISP() function you don't need to set anything, you just have to count with the iap entry functions (you can check this by accessing the iap.c/iap.h library inside your project). I tried this by calling the Reinvoke before anything else inside the main function, and was able to enter the ISP mode with no problems.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I hope this information can help you.&lt;/P&gt;&lt;P&gt;Ricardo Delsordo&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 06 Mar 2019 16:46:50 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Entering-ISP-mode-from-user-code-with-LPC11U68JBD48/m-p/880632#M35213</guid>
      <dc:creator>nxf51211</dc:creator>
      <dc:date>2019-03-06T16:46:50Z</dc:date>
    </item>
  </channel>
</rss>

