<?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: Achieving 6uA deep sleep current of LPC1114 with a workaround in LPCXpresso IDE</title>
    <link>https://community.nxp.com/t5/LPCXpresso-IDE/Achieving-6uA-deep-sleep-current-of-LPC1114-with-a-workaround/m-p/529033#M1281</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by rmteo on Sun Mar 14 08:19:39 MST 2010&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Thank you for taking the time to do this.&amp;nbsp; Very informative and useful. :)&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 16 Jun 2016 00:16:03 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-16T00:16:03Z</dc:date>
    <item>
      <title>Achieving 6uA deep sleep current of LPC1114 with a workaround</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Achieving-6uA-deep-sleep-current-of-LPC1114-with-a-workaround/m-p/529032#M1280</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by johnhe on Sun Mar 14 05:36:09 MST 2010&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;[FONT=Helvetica, Arial, sans-serif]There are a number of forum threads indicating deep sleep measured currents way out of line with the rated six micro-amps for the LPC1114, such as 700 micro-amps and more.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[/FONT][FONT=Helvetica, Arial, sans-serif]There appears to be a fault in the reset circuitry of pin 0 on port 0. This follows form a workaround below I discovered that I have put to good use to achieve the rated current specification for deep sleep of the LPC1114.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[/FONT][FONT=Helvetica, Arial, sans-serif]The following condition is not sufficient in page 33 of the relevant datasheet, &lt;/SPAN&gt;&lt;A href="http://"&gt;http://ics.nxp.com/products/lpc1000/datasheet/lpc1111.lpc1112.lpc1113.lpc1114.pdf:&lt;/A&gt;&lt;SPAN&gt; "[9] All oscillators and analog blocks turned off in the PDSLEEPCFG register; PDSLEEPCFG = 0xFFFF FDFF."[/FONT]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [FONT=Helvetica, Arial, sans-serif]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[SIZE=4][B]Workaround[/B][/SIZE]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Three C statements are sufficient to implement a workaround to achieve the deep-sleep current specification.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;1) Disable reset pin functionality by making port 0 pin 0 a GPIO pin: LPC_IOCON-&amp;gt;RESET_PIO0_0 |=&amp;nbsp; 0x01;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;2) Make pin [/FONT][FONT=Helvetica, Arial, sans-serif]PIO0_0[/FONT][FONT=Helvetica, Arial, sans-serif] an output. [/FONT][FONT=Helvetica, Arial, sans-serif]LPC_GPIO0-&amp;gt;DIR |= 1&amp;lt;&amp;lt;0;[/FONT]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [FONT=Helvetica, Arial, sans-serif]3) Drive the pin high LPC_GPIO0-&amp;gt;MASKED_ACCESS[1&amp;lt;&amp;lt;0] = 0xFFFFFFFF;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[SIZE=4][B]Determining Source of Problem[/B][/SIZE]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The reset pin was determined to be the source of the problem by a process of trial and elimination that started with the suspicion that one or more pins that were not GPIO pins by default were the source of the problem. The suspicion was confirmed but only one pin proved to be the source of the problem.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Below are eight LPC1114 current measurements from the reset pin in eight different 'modes', three as reset pin, three as GPIO input and two as GPIO output. The current cost of a 'mode' was computed by rounding a result and subtracting from 6 micro-amps as the rated deep-sleep current. [/FONT][FONT=Helvetica, Arial, sans-serif]The supply voltage was 3.2 volts.[/FONT]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [FONT=Helvetica, Arial, sans-serif]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[/FONT][FONT=Helvetica, Arial, sans-serif][SIZE=4][B]Set-up Options[/B][/SIZE][/FONT]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; [FONT=Helvetica, Arial, sans-serif]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[/FONT][FONT=Helvetica, Arial, sans-serif]Only one reset pin 'mode' was satisfactory from the point of view if achieving the six micro-amp specification.[/FONT]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [FONT=Helvetica, Arial, sans-serif]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;All other pins were left in their default state with the exception of [/FONT][FONT=Helvetica, Arial, sans-serif]making an LPCXpresso LED pin PIO0_7 pull down&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;PIO0_7 &amp;amp;= ~0x1F;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;PIO0_7 |=&amp;nbsp; 0x08;[/FONT]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [FONT=Helvetica, Arial, sans-serif]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Alternatively the rated deep-sleep six micro-amp specification can also be achieved by making all pins GPIO output pins and driving them low with the exception of driving the reset pin PIO0_0 as a high GPIO pin.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[/FONT][FONT=Helvetica, Arial, sans-serif][SIZE=4][B]Current Cost of Reset Pin in Different Modes[/B][/SIZE][/FONT]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; [FONT=Helvetica, Arial, sans-serif]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[/FONT][FONT=Helvetica, Arial, sans-serif]The cost of leaving the reset pin as a reset pin ranges from 49 micro-amps (pull mode high) to 54 micro-amps (pull mode off) to 119 micro-amps (pull mode low)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The cost of setting the reset pin to an input GPIO pin ranges from 45 micro-amps (pull mode high) to 60 micro-amps (pull mode low) [/FONT][FONT=Helvetica, Arial, sans-serif]to 121 micro-amps (pull mode off).[/FONT]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; [FONT=Helvetica, Arial, sans-serif]The cost of setting the reset pin to a output GPIO pin is 266 micro-amps (driven low) to zero micro-amps (driven high). Clearly changing the reset pin to a high GPIO output pin is the only satisfactory result.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[SIZE=4][B]Board Measurement Methodology[/B][/SIZE]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[/FONT][FONT=Helvetica, Arial, sans-serif]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Following is relevant information for those who want to conduct their own tests and are interested in my methodology.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I used a LPC1114 LPCXpresso board for the tests.[/FONT]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [FONT=Helvetica, Arial, sans-serif]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[/FONT][FONT=Helvetica, Arial, sans-serif]First I cut the eight JTAG/SWD tracks between the LPC-Link board and the LPC1114 target board. I replaced the cut tracks with a header for eight removable shunts (or jumpers). This is necessary to ensure the LPC-Link circuitry does not interfere with the results.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Also I made sure no low power actions happened for 60 seconds into the code. If you allow deep sleep or deep power down to occur straight away after reset you will make your board unusable using SWD immediately following a new reset or power up.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Since pin 0_7 is connected to to a ground connected LED, it is necessary to modify LPC_IOCON-&amp;gt;PIO0_7 to pull down instead of pull up, or drive low&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[SIZE=4][B]Deep-Power-Down&amp;nbsp; and Wake Up Pin Results[/B][/SIZE]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[/FONT][FONT=Helvetica, Arial, sans-serif]Tests confirmed wake up from deep sleep using a start logic pin.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[/FONT][FONT=Helvetica, Arial, sans-serif]My measured deep power down measured current was 0.3 micro-amps, however achieving this deep power down current does not require special steps, unlike for deep sleep.[/FONT]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [FONT=Helvetica, Arial, sans-serif]Tests also confirmed the wake up pin for deep power down (pin 1_4).[/FONT]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [FONT=Helvetica, Arial, sans-serif]John Heenan&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[/FONT]&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 00:16:02 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Achieving-6uA-deep-sleep-current-of-LPC1114-with-a-workaround/m-p/529032#M1280</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T00:16:02Z</dc:date>
    </item>
    <item>
      <title>Re: Achieving 6uA deep sleep current of LPC1114 with a workaround</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Achieving-6uA-deep-sleep-current-of-LPC1114-with-a-workaround/m-p/529033#M1281</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by rmteo on Sun Mar 14 08:19:39 MST 2010&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Thank you for taking the time to do this.&amp;nbsp; Very informative and useful. :)&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 00:16:03 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Achieving-6uA-deep-sleep-current-of-LPC1114-with-a-workaround/m-p/529033#M1281</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T00:16:03Z</dc:date>
    </item>
    <item>
      <title>Re: Achieving 6uA deep sleep current of LPC1114 with a workaround</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Achieving-6uA-deep-sleep-current-of-LPC1114-with-a-workaround/m-p/529034#M1282</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by igorsk on Sun Mar 14 08:38:16 MST 2010&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Very nice detective work.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 00:16:04 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Achieving-6uA-deep-sleep-current-of-LPC1114-with-a-workaround/m-p/529034#M1282</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T00:16:04Z</dc:date>
    </item>
    <item>
      <title>Re: Achieving 6uA deep sleep current of LPC1114 with a workaround</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Achieving-6uA-deep-sleep-current-of-LPC1114-with-a-workaround/m-p/529035#M1283</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by johnhe on Sun Mar 14 18:55:25 MST 2010&lt;/STRONG&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: rmteo&lt;/STRONG&gt;&lt;BR /&gt;Thank you for taking the time to do this.&amp;nbsp; Very informative and useful. :)&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[FONT=Helvetica, Arial, sans-serif]Thanks for you comments.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;For completeness I have added in results for six reset pin modes as a GPIO output pin, instead of two. I have also included specific code for each step.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The results show it does not matter whether the default pull up mode is deactivated or not when internally driving the reset pin as a high GPIO output pin, to implement the workaround to achieve the rated deep-sleep current.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This time the penalty of internally driving the reset pin low as a GPIO pin was over 300 micro-amps instead of under 300 micro-amps, a difference that does not appear adequately explained by a minor difference in supply voltage. It all adds to the mystery. Maybe there is an associated temperature issue.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;All the code samples below are preceded by the following lines for the LPC1114 LPCXpresso board.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;PIO0_7 &amp;amp;= ~0x1F;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;PIO0_7 |=&amp;nbsp; 0x08; // LED pin pull down instead of pull up&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[B]Driving High[/B]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[/FONT][FONT=Helvetica, Arial, sans-serif]Reset pin as an output GPIO pin driven high with pull mode left as default pull up: 6 micro-amps&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;RESET_PIO0_0 |=&amp;nbsp; 0x01; // GPIO instead of reset pin&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GPIO0-&amp;gt;DIR |= 1&amp;lt;&amp;lt;0; //set as output&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GPIO0-&amp;gt;MASKED_ACCESS[1&amp;lt;&amp;lt;0]=0xFFFFFFFF; //drive high&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[/FONT][FONT=Helvetica, Arial, sans-serif]Reset pin as an output GPIO pin driven high with pull mode inactive: 6 micro-amps.[/FONT]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; [FONT=Helvetica, Arial, sans-serif]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;RESET_PIO0_0 &amp;amp;= ~0x18; // turn off pull mode for reset pin&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;RESET_PIO0_0 |=&amp;nbsp; 0x01; // GPIO instead of reset pin&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GPIO0-&amp;gt;DIR |= 1&amp;lt;&amp;lt;0; //set as output&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GPIO0-&amp;gt;MASKED_ACCESS[1&amp;lt;&amp;lt;0]=0xFFFFFFFF; //drive high&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[/FONT]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[FONT=Helvetica, Arial, sans-serif]Reset pin as an output GPIO pin driven high with pull mode low[/FONT]: [FONT=Helvetica, Arial, sans-serif] 120 micro-amps.[/FONT]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; [FONT=Helvetica, Arial, sans-serif]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;RESET_PIO0_0 &amp;amp;= ~0x18; // turn off pull mode for reset pin&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;RESET_PIO0_0 |=&amp;nbsp; 0x09; // GPIO instead of reset pin with pull mode low&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GPIO0-&amp;gt;DIR |= 1&amp;lt;&amp;lt;0; //set as output&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GPIO0-&amp;gt;MASKED_ACCESS[1&amp;lt;&amp;lt;0]=0xFFFFFFFF; //drive high&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[/FONT]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[FONT=Helvetica, Arial, sans-serif]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[B]Driving Low[/B]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[/FONT][FONT=Helvetica, Arial, sans-serif]Reset pin as an output GPIO pin driven low with pull mode inactive: 330 micro-amps.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;RESET_PIO0_0 &amp;amp;= ~0x18; // turn off pull mode for reset pin&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;RESET_PIO0_0 |=&amp;nbsp; 0x01; // GPIO instead of reset pin&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GPIO0-&amp;gt;DIR |= 1&amp;lt;&amp;lt;0; //set as output&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GPIO0-&amp;gt;MASKED_ACCESS[1&amp;lt;&amp;lt;0]=0; //drive low&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[/FONT]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[FONT=Helvetica, Arial, sans-serif]Reset pin as an output GPIO pin driven low with pull mode low: 330 micro-amps.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;RESET_PIO0_0 &amp;amp;= ~0x18; // turn off pull mode for reset pin&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;RESET_PIO0_0 |=&amp;nbsp; 0x09; // GPIO instead of reset pin with pull mode low&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GPIO0-&amp;gt;DIR |= 1&amp;lt;&amp;lt;0; //set as output&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GPIO0-&amp;gt;MASKED_ACCESS[1&amp;lt;&amp;lt;0]=0; //drive low&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[/FONT]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[FONT=Helvetica, Arial, sans-serif]Reset pin as an output GPIO pin driven low with default pull mode high: 390 micro-amps.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;RESET_PIO0_0 |=&amp;nbsp; 0x01; // GPIO instead of reset pin&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GPIO0-&amp;gt;DIR |= 1&amp;lt;&amp;lt;0; //set as output&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GPIO0-&amp;gt;MASKED_ACCESS[1&amp;lt;&amp;lt;0]=0; //drive low&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;John Heenan&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[/FONT]&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 00:16:05 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Achieving-6uA-deep-sleep-current-of-LPC1114-with-a-workaround/m-p/529035#M1283</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T00:16:05Z</dc:date>
    </item>
    <item>
      <title>Re: Achieving 6uA deep sleep current of LPC1114 with a workaround</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Achieving-6uA-deep-sleep-current-of-LPC1114-with-a-workaround/m-p/529036#M1284</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by johnhe on Wed Mar 17 05:50:07 MST 2010&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;I should point out that there is an external 12K pull up resistor attached to the reset pin on the LPC1114 LPCXpresso board. It does not alter the conclusion that there appears to be a fault with the internal reset pin circuitry of the LPC1114, preventing the LPC1114 from reaching its rated deep-sleep current without the workaround below.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;If the reset pin is driven low as a GPIO it will consume 267 micro-amps according to ohm's law (I=V/R=3.2/12000). This is consistent with actual measurements when the reset pin is driven low as a GPIO pin.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;However for internal resistor pull modes (up, down or inactive) that the reset pin can be set in while set as a GPIO input pin or left as a reset pin, the external resistor pull up does not account for the failure of the LPC1114 to achieve its rated deep-sleep current without the workaround.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;John Heenan&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: johnhe&lt;/STRONG&gt;&lt;BR /&gt;[FONT=Helvetica, Arial, sans-serif]There are a number of forum threads indicating deep sleep measured currents way out of line with the rated six micro-amps for the LPC1114, such as 700 micro-amps and more.&lt;BR /&gt;&lt;BR /&gt;[/FONT][FONT=Helvetica, Arial, sans-serif]There appears to be a fault in the reset circuitry of pin 0 on port 0. This follows form a workaround below I discovered that I have put to good use to achieve the rated current specification for deep sleep of the LPC1114.&lt;BR /&gt;&lt;BR /&gt;[/FONT][FONT=Helvetica, Arial, sans-serif]The following condition is not sufficient in page 33 of the relevant datasheet, &lt;A href="http://"&gt;http://ics.nxp.com/products/lpc1000/datasheet/lpc1111.lpc1112.lpc1113.lpc1114.pdf:&lt;/A&gt; "[9] All oscillators and analog blocks turned off in the PDSLEEPCFG register; PDSLEEPCFG = 0xFFFF FDFF."[/FONT]&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [FONT=Helvetica, Arial, sans-serif]&lt;BR /&gt;[SIZE=4][B]Workaround[/B][/SIZE]&lt;BR /&gt;&lt;BR /&gt;Three C statements are sufficient to implement a workaround to achieve the deep-sleep current specification.&lt;BR /&gt;&lt;BR /&gt;1) Disable reset pin functionality by making port 0 pin 0 a GPIO pin: LPC_IOCON-&amp;gt;RESET_PIO0_0 |=&amp;nbsp; 0x01;&lt;BR /&gt;2) Make pin [/FONT][FONT=Helvetica, Arial, sans-serif]PIO0_0[/FONT][FONT=Helvetica, Arial, sans-serif] an output. [/FONT][FONT=Helvetica, Arial, sans-serif]LPC_GPIO0-&amp;gt;DIR |= 1&amp;lt;&amp;lt;0;[/FONT]&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [FONT=Helvetica, Arial, sans-serif]3) Drive the pin high LPC_GPIO0-&amp;gt;MASKED_ACCESS[1&amp;lt;&amp;lt;0] = 0xFFFFFFFF;&lt;BR /&gt;&lt;BR /&gt;[SIZE=4][B]Determining Source of Problem[/B][/SIZE]&lt;BR /&gt;&lt;BR /&gt;The reset pin was determined to be the source of the problem by a process of trial and elimination that started with the suspicion that one or more pins that were not GPIO pins by default were the source of the problem. The suspicion was confirmed but only one pin proved to be the source of the problem.&lt;BR /&gt;[/FONT][FONT=Helvetica, Arial, sans-serif]&lt;BR /&gt;[/FONT]&lt;/SPAN&gt;&lt;HR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 00:16:05 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Achieving-6uA-deep-sleep-current-of-LPC1114-with-a-workaround/m-p/529036#M1284</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T00:16:05Z</dc:date>
    </item>
    <item>
      <title>Re: Achieving 6uA deep sleep current of LPC1114 with a workaround</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Achieving-6uA-deep-sleep-current-of-LPC1114-with-a-workaround/m-p/529037#M1285</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by johnhe on Fri Mar 19 07:12:55 MST 2010&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;[FONT=Helvetica, Arial, sans-serif]I now have a better workaround.&amp;nbsp; I found that my previous workaround was incomplete. Further investigation proved it is not necessary lose the functionality of the reset pin in Deep-Sleep. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;My workaround is now that that GPIO dir and data registers must be assigned to even when a pin is left as an input or as a non GPIO pin. Further investigation would probably allow the workaround to be further refined; such as applying the workaround for selected pins only or only assigning to GPIO dir or data registers, not both of selected pins.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Below is test code I have been using. I have included a convenient function drvpins, that makes implementation of the workaround easy. It only needs to be called once, however I have used it twice in the code. I have attached a hex file of a compilation of the test code&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;John Heenan&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[/FONT]&lt;/SPAN&gt;&lt;DIV class="j-rte-table"&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca" style="border:1px solid black;background-color:#cacaca;"&gt; &lt;PRE&gt;[FONT=Helvetica, Arial, sans-serif]
// Deep-Sleep Demo for the LPC1114 LPCXpresso board
// John Heenan 19 March 2010
//
// Deep-Sleep Demo: this requires SCB-&amp;gt;SCR = (1&amp;lt;&amp;lt;2); to be uncommented, as in this code as posted
// Sleep Demo: that uses timer to wake up: comment line SCB-&amp;gt;SCR = (1&amp;lt;&amp;lt;2); // set deep sleep bit
//&amp;nbsp;&amp;nbsp; wakes up from sleep every TIMERMS_INTERRUPT ms for TIMERMS_INTERRUPT ms (such as 30000 ms = 30 seconds)
// Deep-Power-Down: as for Deep-Sleep but also uncomment line //LPC_PMU-&amp;gt;PCON = (1&amp;lt;&amp;lt;1|1&amp;lt;&amp;lt;11); // deep power down mode
//
// The key to achieving low power is that GPIO dir and data registers must be assigned to even when a pin
// is left as an input or as a non GPIO pin. The function drvpins is included to make this easy. The functionality
// of the reset pin is not affected
//
// drvpins, as used in the code below, only adjusts LPC_IOCON-&amp;gt;PIO0_7 for the LED pin
// drvpins(1&amp;lt;&amp;lt;7, 0, 0, 0, 0, 0, 0, 0); // 6 micro-amps, LED driven low, other pins unaffected
//
// an alternative drvpins makes every pin a GPIO output pin
// drvpins(0xFFE, 0xFFE &amp;amp; ~(1&amp;lt;&amp;lt;7), 0xFFF, 0xFFF, 0xFFF, 0xFFF, 0x3F, 0x3F); // 6 micro-amps, reset pin not driven, LED driven low, others driven high
//
// For simplicity start logic pin and wakeup pin functionality is not included
//
// Caution, you risk putting your board into a state that can be involved to regain use of SWD with.
// Interrupt power to board before using SWD again.
// A useful last resort measure to regain control if locked out of SWD access is to use ISP.
//
// For power measurements eight traces can be cut between LPCLink and LPC1114 target board.
// They can be replaced with a header and shunts (or jumpers)
//


/*
Note SystemInit() parameters in Cortex CSMIS file system_LPC11xx.c
were modified to ensure only the IRC, not the crystal and PLL, is used

It is recommended deep-sleep is entered using IRC

#define CLOCK_SETUP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1
#define SYSCLK_SETUP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1
#define SYSOSC_SETUP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // altered
#define SYSOSCCTRL_Val&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00000000
#define WDTOSC_SETUP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0
#define WDTOSCCTRL_Val&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x000000A0
#define SYSPLLCLKSEL_Val&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00000001
#define SYSPLL_SETUP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // altered
#define SYSPLLCTRL_Val&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00000023
#define MAINCLKSEL_Val&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00000000&amp;nbsp; // altered
#define SYSAHBCLKDIV_Val&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00000001
#define AHBCLKCTRL_Val&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x0001005F
#define SSP0CLKDIV_Val&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00000001
#define UARTCLKDIV_Val&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00000001
#define SSP1CLKDIV_Val&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00000001
*/

#include "LPC11xx.h"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* LPC11xx Peripheral Registers */


// if pins are driven then they are made GPIO pins and their pull resistors are deactivated by this functions
void drvpins(uint32_t dir0, uint32_t val0, uint32_t dir1, uint32_t val1, uint32_t dir2, uint32_t val2, uint32_t dir3, uint32_t val3)
{
//&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;DCD_LOC&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x00;
//&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;DSR_LOC&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x00;
//&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;RI_LOC&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x00;
//&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;SCK_LOC&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x00;

&amp;nbsp;&amp;nbsp;&amp;nbsp; if(dir0&amp;amp;(1&amp;lt;&amp;lt;0))&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;RESET_PIO0_0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x01; // 0_00
&amp;nbsp;&amp;nbsp;&amp;nbsp; if(dir0&amp;amp;(1&amp;lt;&amp;lt;1))&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;PIO0_1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x00; // 0_01
&amp;nbsp;&amp;nbsp;&amp;nbsp; if(dir0&amp;amp;(1&amp;lt;&amp;lt;2)) LPC_IOCON-&amp;gt;PIO0_2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x00; // 0_02
&amp;nbsp;&amp;nbsp;&amp;nbsp; if(dir0&amp;amp;(1&amp;lt;&amp;lt;3)) LPC_IOCON-&amp;gt;PIO0_3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x00; // 0_03
&amp;nbsp;&amp;nbsp;&amp;nbsp; if(dir0&amp;amp;(1&amp;lt;&amp;lt;4)) LPC_IOCON-&amp;gt;PIO0_4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x00; // 0_04&amp;nbsp; I2C SCL no hysteresis and no pull up or down
&amp;nbsp;&amp;nbsp;&amp;nbsp; if(dir0&amp;amp;(1&amp;lt;&amp;lt;5)) LPC_IOCON-&amp;gt;PIO0_5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x00; // 0_05&amp;nbsp; I2C SDA no hysteresis and no pull up or down
&amp;nbsp;&amp;nbsp;&amp;nbsp; if(dir0&amp;amp;(1&amp;lt;&amp;lt;6)) LPC_IOCON-&amp;gt;PIO0_6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x00; // 0_06
&amp;nbsp;&amp;nbsp;&amp;nbsp; if(dir0&amp;amp;(1&amp;lt;&amp;lt;7)) LPC_IOCON-&amp;gt;PIO0_7&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x00; // 0_07
&amp;nbsp;&amp;nbsp;&amp;nbsp; if(dir0&amp;amp;(1&amp;lt;&amp;lt;8)) LPC_IOCON-&amp;gt;PIO0_8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x00; // 0_08
&amp;nbsp;&amp;nbsp;&amp;nbsp; if(dir0&amp;amp;(1&amp;lt;&amp;lt;9)) LPC_IOCON-&amp;gt;PIO0_9&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x00; // 0_09&amp;nbsp; SWO for LPC13xx
&amp;nbsp;&amp;nbsp;&amp;nbsp; if(dir0&amp;amp;(1&amp;lt;&amp;lt;10))LPC_IOCON-&amp;gt;JTAG_TCK_PIO0_10 = 0x01; // 0_10
&amp;nbsp;&amp;nbsp;&amp;nbsp; if(dir0&amp;amp;(1&amp;lt;&amp;lt;11))LPC_IOCON-&amp;gt;JTAG_TDI_PIO0_11 = 0x81; // 0_11&amp;nbsp; ADC
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GPIO0-&amp;gt;DIR&amp;nbsp; = dir0;
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GPIO0-&amp;gt;DATA = val0;

&amp;nbsp;&amp;nbsp;&amp;nbsp; if(dir1&amp;amp;(1&amp;lt;&amp;lt;0))&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;JTAG_TMS_PIO1_0&amp;nbsp; = 0x81; // 1_00&amp;nbsp; ADC, last start logic pin for LPC11xx
&amp;nbsp;&amp;nbsp;&amp;nbsp; if(dir1&amp;amp;(1&amp;lt;&amp;lt;1))&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;JTAG_TDO_PIO1_1&amp;nbsp; = 0x81; // 1_01&amp;nbsp; ADC
&amp;nbsp;&amp;nbsp;&amp;nbsp; if(dir1&amp;amp;(1&amp;lt;&amp;lt;2))&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;JTAG_nTRST_PIO1_2= 0x81; // 1_02&amp;nbsp; ADC
&amp;nbsp;&amp;nbsp;&amp;nbsp; if(dir1&amp;amp;(1&amp;lt;&amp;lt;3))&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;ARM_SWDIO_PIO1_3 = 0x81; // 1_03&amp;nbsp; ADC
&amp;nbsp;&amp;nbsp;&amp;nbsp; if(dir1&amp;amp;(1&amp;lt;&amp;lt;4))&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;PIO1_4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x80; // 1_04&amp;nbsp; ADC, wakeup pin
&amp;nbsp;&amp;nbsp;&amp;nbsp; if(dir1&amp;amp;(1&amp;lt;&amp;lt;5))&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;PIO1_5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x00; // 1_05
&amp;nbsp;&amp;nbsp;&amp;nbsp; if(dir1&amp;amp;(1&amp;lt;&amp;lt;6))&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;PIO1_6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x00; // 1_06
&amp;nbsp;&amp;nbsp;&amp;nbsp; if(dir1&amp;amp;(1&amp;lt;&amp;lt;7))&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;PIO1_7&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x00; // 1_07
&amp;nbsp;&amp;nbsp;&amp;nbsp; if(dir1&amp;amp;(1&amp;lt;&amp;lt;8))&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;PIO1_8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x00; // 1_08
&amp;nbsp;&amp;nbsp;&amp;nbsp; if(dir1&amp;amp;(1&amp;lt;&amp;lt;9))&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;PIO1_9&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x00; // 1_09
&amp;nbsp;&amp;nbsp;&amp;nbsp; if(dir1&amp;amp;(1&amp;lt;&amp;lt;10))LPC_IOCON-&amp;gt;PIO1_10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x80; // 1_10&amp;nbsp; ADC
&amp;nbsp;&amp;nbsp;&amp;nbsp; if(dir1&amp;amp;(1&amp;lt;&amp;lt;11))LPC_IOCON-&amp;gt;PIO1_11&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x80; // 1_11&amp;nbsp; ADC
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GPIO1-&amp;gt;DIR&amp;nbsp; = dir1;
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GPIO1-&amp;gt;DATA = val1;

&amp;nbsp;&amp;nbsp;&amp;nbsp; if(dir2&amp;amp;(1&amp;lt;&amp;lt;0))&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;PIO2_0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x00; // 2_00
&amp;nbsp;&amp;nbsp;&amp;nbsp; if(dir2&amp;amp;(1&amp;lt;&amp;lt;1))&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;PIO2_1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x00; // 2_01
&amp;nbsp;&amp;nbsp;&amp;nbsp; if(dir2&amp;amp;(1&amp;lt;&amp;lt;2))&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;PIO2_2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x00; // 2_02
&amp;nbsp;&amp;nbsp;&amp;nbsp; if(dir2&amp;amp;(1&amp;lt;&amp;lt;3))&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;PIO2_3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x00; // 2_03
&amp;nbsp;&amp;nbsp;&amp;nbsp; if(dir2&amp;amp;(1&amp;lt;&amp;lt;4))&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;PIO2_4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x00; // 2_04
&amp;nbsp;&amp;nbsp;&amp;nbsp; if(dir2&amp;amp;(1&amp;lt;&amp;lt;5))&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;PIO2_5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x00; // 2_05
&amp;nbsp;&amp;nbsp;&amp;nbsp; if(dir2&amp;amp;(1&amp;lt;&amp;lt;6))&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;PIO2_6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x00; // 2_06
&amp;nbsp;&amp;nbsp;&amp;nbsp; if(dir2&amp;amp;(1&amp;lt;&amp;lt;7))&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;PIO2_7&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x00; // 2_07
&amp;nbsp;&amp;nbsp;&amp;nbsp; if(dir2&amp;amp;(1&amp;lt;&amp;lt;8))&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;PIO2_8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x00; // 2_08
&amp;nbsp;&amp;nbsp;&amp;nbsp; if(dir2&amp;amp;(1&amp;lt;&amp;lt;9)) LPC_IOCON-&amp;gt;PIO2_9&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x00; // 2_09
&amp;nbsp;&amp;nbsp;&amp;nbsp; if(dir2&amp;amp;(1&amp;lt;&amp;lt;10))LPC_IOCON-&amp;gt;PIO2_10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x00; // 2_10
&amp;nbsp;&amp;nbsp;&amp;nbsp; if(dir2&amp;amp;(1&amp;lt;&amp;lt;11))LPC_IOCON-&amp;gt;PIO2_11&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x00; // 2_11
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GPIO2-&amp;gt;DIR&amp;nbsp; = dir2;
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GPIO2-&amp;gt;DATA = val2;

&amp;nbsp;&amp;nbsp;&amp;nbsp; if(dir3&amp;amp;(1&amp;lt;&amp;lt;0))&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;PIO3_0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x00; // 3_00
&amp;nbsp;&amp;nbsp;&amp;nbsp; if(dir3&amp;amp;(1&amp;lt;&amp;lt;1))&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;PIO3_1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x00; // 3_01
&amp;nbsp;&amp;nbsp;&amp;nbsp; if(dir3&amp;amp;(1&amp;lt;&amp;lt;2))&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;PIO3_2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x00; // 3_02
&amp;nbsp;&amp;nbsp;&amp;nbsp; if(dir3&amp;amp;(1&amp;lt;&amp;lt;3))&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;PIO3_3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x00; // 3_03
&amp;nbsp;&amp;nbsp;&amp;nbsp; if(dir3&amp;amp;(1&amp;lt;&amp;lt;4))&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;PIO3_4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x00; // 3_04
&amp;nbsp;&amp;nbsp;&amp;nbsp; if(dir3&amp;amp;(1&amp;lt;&amp;lt;5))&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;PIO3_5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x00; // 3_05
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GPIO3-&amp;gt;DIR&amp;nbsp; = dir3;
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GPIO3-&amp;gt;DATA = val3;
}

#define TIMERMS_INTERRUPT 30000

volatile uint32_t timer_isr;

void TIMER32_1_IRQHandler(void)
{
&amp;nbsp; LPC_TMR32B1-&amp;gt;IR = 1; // clear interrupt
&amp;nbsp; timer_isr++;
}


int main(void)
{

&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SYSCON-&amp;gt;SYSAHBCLKCTRL |= (1&amp;lt;&amp;lt;10); // enable clock to TMR32B1, GPIO clock on be default
&amp;nbsp;&amp;nbsp;&amp;nbsp; drvpins(1&amp;lt;&amp;lt;7, 1&amp;lt;&amp;lt;7, 0, 0, 0, 0, 0, 0); // LED driven high

&amp;nbsp; //A timer and not SysTick used to allow long gap between interrupts for Sleep without Deep-Sleep bit set
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_TMR32B1-&amp;gt;PR = ((SystemCoreClock/LPC_SYSCON-&amp;gt;SYSAHBCLKDIV)/(1000) - 1); // 1ms PR
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_TMR32B1-&amp;gt;MCR = 0x03; // reset TC when MR0 matches TC and interrupt
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_TMR32B1-&amp;gt;MR0 = TIMERMS_INTERRUPT-1;
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_TMR32B1-&amp;gt;TCR = 2; // timer reset
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_TMR32B1-&amp;gt;IR = 1; // clear interrupt
&amp;nbsp;&amp;nbsp;&amp;nbsp; NVIC_EnableIRQ(TIMER_32_1_IRQn);
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_TMR32B1-&amp;gt;TCR = 1; // timer enabled, interrupt after SLEEPMS_DELAY milliseconds
&amp;nbsp;&amp;nbsp;&amp;nbsp; timer_isr=0;

&amp;nbsp;&amp;nbsp;&amp;nbsp; while(1)
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(!timer_isr); //wait for timer interrupt
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; timer_isr=0;//non atomic: OK

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #if 1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; drvpins(1&amp;lt;&amp;lt;7, 0, 0, 0, 0, 0, 0, 0); // 6 micro-amps, LED driven low, other pins unaffected
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #else
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; drvpins(0xFFE, 0xFFE &amp;amp; ~(1&amp;lt;&amp;lt;7), 0xFFF, 0xFFF, 0xFFF, 0xFFF, 0x3F, 0x3F); // 6 micro-amps, reset pin not affected, LED driven low, others driven high
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #endif

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SYSCON-&amp;gt;PDSLEEPCFG = 0xFFFFFDFF;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SYSCON-&amp;gt;PDAWAKECFG = LPC_SYSCON-&amp;gt;PDRUNCFG;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SCB-&amp;gt;SCR = (1&amp;lt;&amp;lt;2); // set deep sleep bit, no wake up from timer if uncommented
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //LPC_PMU-&amp;gt;PCON = (1&amp;lt;&amp;lt;1|1&amp;lt;&amp;lt;11); // deep power down mode
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; __WFI(); // sleep. won't wake up with timer if deep sleep bit is set, start logic pin (deep-sleep) or wakeup pin (deep-power-down) can be used
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SCB-&amp;gt;SCR = 0; // remove deep sleep bit if __WFI() is used elsewhere and will wake up from here with start logic or wake up pins

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //while(!timer_isr); // __WFI() does the waiting this time if not using Deep-Sleep
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; timer_isr=0; // non atomic: OK
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GPIO0-&amp;gt;MASKED_ACCESS[1&amp;lt;&amp;lt;7]=0xFFFFFFFF; // turn on LED
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; return 0 ;
}

[/FONT]&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;SPAN&gt;[FONT=Helvetica, Arial, sans-serif]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[/FONT]&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 00:16:06 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Achieving-6uA-deep-sleep-current-of-LPC1114-with-a-workaround/m-p/529037#M1285</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T00:16:06Z</dc:date>
    </item>
    <item>
      <title>Re: Achieving 6uA deep sleep current of LPC1114 with a workaround</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Achieving-6uA-deep-sleep-current-of-LPC1114-with-a-workaround/m-p/529038#M1286</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by LPC_Dude on Tue Apr 13 21:34:13 MST 2010&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;John,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thank you for posting. It was very helpful.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;However I am facing one more problem. So please see if you have faced any time, the similar problem and have solution for this.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;When the device (fresh one) is programmed for the deep sleep mode, I was able to get the 6uA core current mentioned in data sheet. But with the subsequent re-programming of the same code itself, current never went below 400uA.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have used the example code provided with IAR workbench with the following changes to code.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;1. device was run from Internal RC&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;2. LPC_SYSCON-&amp;gt;PDSLEEPCFG = 0xFFFFFDFF;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;As I said, only for the first time programming, I was able to get 6uA current. This was in fact checked on several new devices that I had and all exhibited same behavior. And with all this I had not used any of the port pin config (RESET pin config&amp;nbsp; that you have suggested)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;But with the code that yo have posted, i am still not able to get 6uA current.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Can you please help??:):):)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 00:16:07 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Achieving-6uA-deep-sleep-current-of-LPC1114-with-a-workaround/m-p/529038#M1286</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T00:16:07Z</dc:date>
    </item>
    <item>
      <title>Re: Achieving 6uA deep sleep current of LPC1114 with a workaround</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Achieving-6uA-deep-sleep-current-of-LPC1114-with-a-workaround/m-p/529039#M1287</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by johnhe on Wed Apr 14 16:53:59 MST 2010&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi LPC_Dude&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I don't know what the IAR example code is for deep sleep. There should be no problem adapting my sample code for use with the IAR code if the IAR code does not work.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;My code is based on the principle that there must be an assignment to pin DIR and DATA registers, even when a pin is an input. This is not documented.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I have provided the drvpins function to make this easy. If a pin is an output the appropriate LPC_IOCON register is adjusted automatically.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; My sample code also uses internal IRC and also sets LPC_SYSCON-&amp;gt;PDSLEEPCF to&amp;nbsp; 0xFFFFFDFF&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Have you confirmed IAR is erasing your device before reprogramming?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; Please let us know if you get the problem solved and what the key step is.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; John Heenan&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: LPC_Dude&lt;/STRONG&gt;&lt;BR /&gt;John,&lt;BR /&gt; &lt;BR /&gt; Thank you for posting. It was very helpful.&lt;BR /&gt; &lt;BR /&gt; However I am facing one more problem. So please see if you have faced any time, the similar problem and have solution for this.&lt;BR /&gt; &lt;BR /&gt;When the device (fresh one) is programmed for the deep sleep mode, I was able to get the 6uA core current mentioned in data sheet. But with the subsequent re-programming of the same code itself, current never went below 400uA.&lt;BR /&gt; &lt;BR /&gt; I have used the example code provided with IAR workbench with the following changes to code.&lt;BR /&gt; 1. device was run from Internal RC&lt;BR /&gt; 2. LPC_SYSCON-&amp;gt;PDSLEEPCFG = 0xFFFFFDFF;&lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; As I said, only for the first time programming, I was able to get 6uA current. This was in fact checked on several new devices that I had and all exhibited same behavior. And with all this I had not used any of the port pin config (RESET pin config that you have suggested)&lt;BR /&gt; &lt;BR /&gt; But with the code that yo have posted, i am still not able to get 6uA current.&lt;BR /&gt; &lt;BR /&gt; Can you please help??:):):)&lt;BR /&gt; &lt;BR /&gt; Thanks&lt;/SPAN&gt;&lt;HR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 00:16:07 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Achieving-6uA-deep-sleep-current-of-LPC1114-with-a-workaround/m-p/529039#M1287</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T00:16:07Z</dc:date>
    </item>
    <item>
      <title>Re: Achieving 6uA deep sleep current of LPC1114 with a workaround</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Achieving-6uA-deep-sleep-current-of-LPC1114-with-a-workaround/m-p/529040#M1288</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by johnhe on Fri Apr 16 16:40:09 MST 2010&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;[FONT=Arial]&lt;/SPAN&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: LPC_Dude&lt;/STRONG&gt;&lt;BR /&gt;RESET pin config&amp;nbsp; that you have suggested&lt;BR /&gt; &lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Unlike what I stated in an earlier post in this thread, the reset pin is irrelevant. Following is a copy of what I posted to another forum.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[/FONT]&lt;/SPAN&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: &lt;/STRONG&gt;&lt;BR /&gt;[FONT=Arial]Sorry. It was mistake on my part not to post a complete code sample that achieved the desired result previously, by making the reset pin a high output pin. The incorrect workaround worked due to side effects that were unknown and so undocumented.&lt;BR /&gt;&lt;BR /&gt;Making the reset pin an output pin assinged values to relevant GPIO DIR and DATA bits. The assignments achieved the result, not making the reset pin a GPIO pin.&lt;BR /&gt;&lt;BR /&gt;Code had already made DIR and DATA assignments for other pins.&lt;BR /&gt;[/FONT]&lt;/SPAN&gt;&lt;HR /&gt;&lt;SPAN&gt;[FONT=Arial]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;John Heenan&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[/FONT]&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 00:16:08 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Achieving-6uA-deep-sleep-current-of-LPC1114-with-a-workaround/m-p/529040#M1288</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T00:16:08Z</dc:date>
    </item>
    <item>
      <title>Re: Achieving 6uA deep sleep current of LPC1114 with a workaround</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Achieving-6uA-deep-sleep-current-of-LPC1114-with-a-workaround/m-p/529041#M1289</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by johnhe on Mon Apr 19 05:07:37 MST 2010&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;I have expanded my sample code earlier in this thread.&amp;nbsp; The new code achieves deep sleep current of 30 micro-amps for the LPC1343 LPCXpresso board (with link cut to LPCLink).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This file is main.c and is in the attached zip file deep_sleep.zip&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have also included a hex file of this code in the zip file.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Changing include lines is sufficient to compile file for the LPC1114. While I haven't tested the changes with an LPC1114, earlier code in this thread has been tested with an LPC1114 LPCXpresso board, achieving the rated six micro-amps in deep sleep.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;John Heenan&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 00:16:09 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Achieving-6uA-deep-sleep-current-of-LPC1114-with-a-workaround/m-p/529041#M1289</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T00:16:09Z</dc:date>
    </item>
    <item>
      <title>Re: Achieving 6uA deep sleep current of LPC1114 with a workaround</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Achieving-6uA-deep-sleep-current-of-LPC1114-with-a-workaround/m-p/529042#M1290</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by sw_lpc on Tue May 31 20:14:10 MST 2011&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I also face the same problem about the deep sleep mode- the power consumption is too high: I tried various ways: now it can achieve about 20uA. but the data sheet&amp;nbsp; says it's 6uA. can someone help me?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;here is the code :&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;void config_ios(void){&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Configure all IOs as GPIO w/o pull-up &amp;amp; pull-down resistors */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;PIO2_6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0xC0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;PIO2_0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0xC0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;RESET_PIO0_0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0xD0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // RST_BOOT/P0_0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#if !ENABLE_CLKOUT&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;PIO0_1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0xD0; //0xC0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // CLKOUT/CT32B0_MAT2/USB_SOF&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#endif /* ENABLE_CLKOUT */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;PIO1_8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0xC0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;PIO0_2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0xC0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // SSEL/CT16B0_CAP0&amp;nbsp;&amp;nbsp;&amp;nbsp; //Trigger input&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;PIO2_7&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0xC0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;PIO2_8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0xC0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;PIO2_1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0xC0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;PIO0_3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0xC0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;PIO0_4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x100;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // PIO&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;PIO0_5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x100;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // PIO&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;PIO1_9&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0xC0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // CT16B1_MAT0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;PIO3_4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0xC0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;PIO2_4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0xC0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;PIO2_5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0xC0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;PIO3_5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0xC0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;PIO0_6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0xC2;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // SCK0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;PIO0_7&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0xC0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;PIO2_9&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0xC0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;PIO2_10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0xC0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;PIO2_2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0xC0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;PIO0_8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0xC1; //0xC0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // SSP_MISO/CT16B0_MAT0/TRACE_CLK; MISO&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;PIO0_9&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0xC1; //0xC0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // SSP_MOSI/CT16B0_MAT1/TRACE_SWV; MOSI&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;JTAG_TCK_PIO0_10&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0xC1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // JTAG_CLK/P0_10/SSP_CLK/CT16B0_MAT2&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;PIO1_10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0xC0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // ADCIN6/CT16B1_MAT1&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;PIO2_11&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0xC0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;JTAG_TDI_PIO0_11&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0xC1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // JTAG_TDI/P0_11/ADCIN0/CT32B0_MAT3&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;JTAG_TMS_PIO1_0&amp;nbsp; = 0xC1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // JTAG_TMS/P1_0/ADCIN1/CT32B1_CAP0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;JTAG_TDO_PIO1_1&amp;nbsp; = 0xC1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // JTAG_TDO/P1_1/ADCIN2/CT32B1_MAT0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;JTAG_nTRST_PIO1_2 = 0xC1;&amp;nbsp;&amp;nbsp;&amp;nbsp; // JTAG_TRST/P1_2/ADCIN3/CT32B1_MAT1&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;PIO3_0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0xC0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;PIO3_1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0xC0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;PIO2_3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0xC0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;ARM_SWDIO_PIO1_3&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0xC1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // ARM_SWD/P1_3/ADCIN4/CT32B1_MAT2&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;PIO1_4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0xC0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // ADCIN5/CT32B1_MAT3/WAKEUP&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;PIO1_11&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0xC0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // ADCIN7&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;PIO3_2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0xC0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;PIO1_5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0xC1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // UART_DIR/CT32B0_CAP0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;PIO1_6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0xC1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // UART_RXD/CT32B0_MAT0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;PIO1_7&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0xC1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // UART_TXD/CT32B0_MAT1&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;PIO3_3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0xC0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* GPIOs at outputs */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GPIO0-&amp;gt;DIR = ~((1&amp;lt;&amp;lt;0)|(1&amp;lt;&amp;lt;1)|(1&amp;lt;&amp;lt;4)|(1&amp;lt;&amp;lt;5)|(1&amp;lt;&amp;lt;8)|(1&amp;lt;&amp;lt;10));&amp;nbsp;&amp;nbsp;&amp;nbsp; //Trigger Pin input only&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //LPC_GPIO1-&amp;gt;DIR = ~(1&amp;lt;&amp;lt;4);&amp;nbsp;&amp;nbsp;&amp;nbsp; //WAKEUP Pin input only&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //PIO1_6/RXD is configured as input since the transceiver pin is output.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //if PIO1_6/RXD is configured as output, driven low and the transceiver is driving high then extra current&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GPIO1-&amp;gt;DIR = ~((1&amp;lt;&amp;lt;4)|(1&amp;lt;&amp;lt;6));&amp;nbsp;&amp;nbsp;&amp;nbsp; //WAKEUP Pin and PIO1_6/RXD input only&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GPIO2-&amp;gt;DIR = 0xFFFFFFFF;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GPIO3-&amp;gt;DIR =~(1&amp;lt;&amp;lt;4);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* GPIO outputs to LOW */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GPIO0-&amp;gt;DATA&amp;nbsp; = 0x0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GPIO1-&amp;gt;DATA&amp;nbsp; = (1&amp;lt;&amp;lt;7)|(1&amp;lt;&amp;lt;9);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GPIO2-&amp;gt;DATA&amp;nbsp; = 0; //0xFFFFFFFF;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GPIO3-&amp;gt;DATA&amp;nbsp; = 0; //0xFFFFFFFF;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;void Sys_Sleep(void)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint32_t regVal;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&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; CLR_LED_RDY();&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&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; GPIOSetValue(PORT3,2,0); // CLR Sys Led OK&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&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; config_ios();&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&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; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&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; __watchdog_reset();&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&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; __disable_interrupt();&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&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; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&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; /* Turn on all the IRC &amp;amp; Flash&amp;nbsp; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&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; //LPC_SYSCON-&amp;gt;PDRUNCFG &amp;amp;= ~( (1&amp;lt;&amp;lt;0)| (1&amp;lt;&amp;lt;1) | (1&amp;lt;&amp;lt;2)|(1&amp;lt;&amp;lt;3)|(1&amp;lt;&amp;lt;9) ) ;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&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; LPC_SYSCON-&amp;gt;PDRUNCFG |=(1&amp;lt;&amp;lt;3);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&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; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&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; /* Switch MAINCLKSEL to IRC */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&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; LPC_SYSCON-&amp;gt;MAINCLKSEL&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&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; LPC_SYSCON-&amp;gt;MAINCLKUEN&amp;nbsp; = 0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&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; LPC_SYSCON-&amp;gt;MAINCLKUEN&amp;nbsp; = 1;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&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; while (!(LPC_SYSCON-&amp;gt;MAINCLKUEN &amp;amp; 0x01));&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&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; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&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; /* Ensure DPDEN is disabled in the power control register */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&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; LPC_PMU-&amp;gt;PCON&amp;nbsp;&amp;nbsp;&amp;nbsp; = (1&amp;lt;&amp;lt;11); //Clear DPDFLAG if it was set&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&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; /* Clear the Deep Sleep Flag */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&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; LPC_PMU-&amp;gt;PCON = (1&amp;lt;&amp;lt;8);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&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; /* All OFF */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&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; LPC_SYSCON-&amp;gt;PDSLEEPCFG =&amp;nbsp; 0x000018FF;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&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; /* Specify peripherals to be powered up again when returning from deep sleep mode */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&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; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&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; LPC_SYSCON-&amp;gt;PDAWAKECFG = LPC_SYSCON-&amp;gt;PDRUNCFG;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&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; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&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; /* Only edge trigger. activation polarity on P0.4 is FALLING EDGE. */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&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; LPC_SYSCON-&amp;gt;STARTAPRP0 &amp;amp;=~(1&amp;lt;&amp;lt;4); //0x00000000;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&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; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&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; /* Clear all wakeup source */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&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; LPC_SYSCON-&amp;gt;STARTRSRP0CLR |=(1&amp;lt;&amp;lt;4); //0xFFFFFFFF;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&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; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&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; /* Enable Port 0.4 as wakeup source. */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&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; LPC_SYSCON-&amp;gt;STARTERP0 = (0x1&amp;lt;&amp;lt;4);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&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; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&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; NVIC_ClearPendingIRQ(WAKEUP4_IRQn);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&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; NVIC_EnableIRQ(WAKEUP4_IRQn); // P0.4 as wakeup&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&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; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&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; SCB-&amp;gt;SCR = NVIC_LP_SLEEPDEEP; ;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&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; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&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; __enable_interrupt();&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&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; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&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; /* Enter Deep Sleep mode */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&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; __WFI();&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; return; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;and, another strange thing is: I cann't enable the BOD bit in the PDRUNCFG &amp;amp; PDAWAKECFG . when I enable it, the board will reset like a power reset when I pull PIO0_4 low (wake up interrupt); if disable it, then OK, can wake up as normal. But I think it indeed needed for BOD bit enabled in register PDAWAKECFG to keep system more stable.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm using IAR EWARM compiler.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;thank you&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 00:16:09 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Achieving-6uA-deep-sleep-current-of-LPC1114-with-a-workaround/m-p/529042#M1290</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T00:16:09Z</dc:date>
    </item>
    <item>
      <title>Re: Achieving 6uA deep sleep current of LPC1114 with a workaround</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Achieving-6uA-deep-sleep-current-of-LPC1114-with-a-workaround/m-p/529043#M1291</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by larryvc on Tue May 31 20:56:24 MST 2011&lt;/STRONG&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: sw_lpc&lt;/STRONG&gt;&lt;BR /&gt;&lt;BR /&gt;I'm using IAR EWARM compiler.&lt;BR /&gt; &lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Did you notice that this thread is over a year old.:confused:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Also this forum is mainly for LPCXpresso boards and the LPCXpresso IDE,&amp;nbsp; although not always.&amp;nbsp; You may get some help here anyway.:)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I suggest you try posting your question at the NXP MCU forum.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Use this link:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;A href="http://"&gt;http://forums.nxp.com/viewforum.php?f=1&amp;amp;sid=35bf956f26d4e3fce1a6eeacb8bf42af&lt;/A&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 00:16:10 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Achieving-6uA-deep-sleep-current-of-LPC1114-with-a-workaround/m-p/529043#M1291</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T00:16:10Z</dc:date>
    </item>
  </channel>
</rss>

