<?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: Cannot get LPC800 to go into Deep Power Mode in LPC Microcontrollers</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/Cannot-get-LPC800-to-go-into-Deep-Power-Mode/m-p/1019814#M39865</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi, Jim,&lt;/P&gt;&lt;P&gt;I suggest you download the SDK package from the link:&lt;/P&gt;&lt;P&gt;&lt;A class="link-titled" href="https://www.nxp.com/design/software/development-software/mcuxpresso-software-and-tools/mcuxpresso-software-development-kit-sdk:MCUXpresso-SDK" title="https://www.nxp.com/design/software/development-software/mcuxpresso-software-and-tools/mcuxpresso-software-development-kit-sdk:MCUXpresso-SDK"&gt;MCUXpresso SDK | Software Development for Kinetis, LPC, and i.MX MCUs | NXP&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;On the package, there is example in the directory:&lt;/P&gt;&lt;P&gt;C:\DriveE\LPC_SDK_MCUExpresso\SDK_2.6.0_LPCXpresso804\boards\lpcxpresso804\demo_apps\power_mode_switch_lpc&lt;/P&gt;&lt;P&gt;This is part of the code&lt;/P&gt;&lt;P&gt;void POWER_EnterDeepSleep(uint32_t activePart)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; assert((SYSCON-&amp;gt;MAINCLKSEL &amp;amp; SYSCON_MAINCLKSEL_SEL_MASK) == 0U);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint32_t pmsk;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pmsk = __get_PRIMASK();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; __disable_irq();&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PMU-&amp;gt;PCON = (PMU-&amp;gt;PCON &amp;amp; (~PMU_PCON_PM_MASK)) | PMU_PCON_PM(kPmu_Deep_Sleep);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* remain active during power down mode */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SYSCON-&amp;gt;PDSLEEPCFG &amp;amp;= ~activePart;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* enable Deepsleep mode in the ARM-CORTEX M0+ SCR register */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SCB-&amp;gt;SCR |= SCB_SCR_SLEEPDEEP_Msk;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Enter powerdown mode */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; __WFI();&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* disable Deepsleep mode in the ARM-CORTEX M0+ SCR register */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SCB-&amp;gt;SCR &amp;amp;= ~SCB_SCR_SLEEPDEEP_Msk;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; __set_PRIMASK(pmsk);&amp;nbsp; &amp;nbsp;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;If you want to wake-up from Pin intrrupt, you can refer to the code:&lt;/P&gt;&lt;P&gt;static void DEMO_InitWakeupPin(void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gpio_pin_config_t gpioPinConfigStruct;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Set SW pin as GPIO input. */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gpioPinConfigStruct.pinDirection = kGPIO_DigitalInput;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; GPIO_PinInit(DEMO_USER_WAKEUP_KEY_GPIO, DEMO_USER_WAKEUP_KEY_PORT, DEMO_USER_WAKEUP_KEY_PIN, &amp;amp;gpioPinConfigStruct);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SYSCON_AttachSignal(SYSCON, kPINT_PinInt0, DEMO_PINT_PIN_INT0_SRC);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Configure the interrupt for SW pin. */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PINT_Init(PINT);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PINT_PinInterruptConfig(PINT, kPINT_PinInt0, kPINT_PinIntEnableFallEdge, pint_intr_callback);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PINT_EnableCallback(PINT); /* Enable callbacks for PINT */&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope it can help you&lt;/P&gt;&lt;P&gt;BR&lt;/P&gt;&lt;P&gt;XiangJun Rong&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 31 Dec 2019 08:28:28 GMT</pubDate>
    <dc:creator>xiangjun_rong</dc:creator>
    <dc:date>2019-12-31T08:28:28Z</dc:date>
    <item>
      <title>Cannot get LPC800 to go into Deep Power Mode</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Cannot-get-LPC800-to-go-into-Deep-Power-Mode/m-p/1019813#M39864</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Cannot get LPC800 to go into Deep Power Mode.&lt;/P&gt;&lt;P&gt;here is the code, right out of the user manual.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LPC_PMU-&amp;gt;PCON = 3; // Go into deep sleep&lt;BR /&gt; SCB-&amp;gt;SCR = 4; // Should go to deep sleep now&lt;BR /&gt;__WFI();&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am sure I am doing something stupid but I am totally stumped.&lt;/P&gt;&lt;P&gt;The CPU goes to sleep, but not in the deep power down mode.&lt;/P&gt;&lt;P&gt;P0_4 does nothing, and the reset input resets the chip.&lt;/P&gt;&lt;P&gt;Had it working but don't know what I changed.&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;When it was working correctly, the reset button had no effect, and P0_4 did wake it up.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 25 Dec 2019 07:32:21 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Cannot-get-LPC800-to-go-into-Deep-Power-Mode/m-p/1019813#M39864</guid>
      <dc:creator>jimc</dc:creator>
      <dc:date>2019-12-25T07:32:21Z</dc:date>
    </item>
    <item>
      <title>Re: Cannot get LPC800 to go into Deep Power Mode</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Cannot-get-LPC800-to-go-into-Deep-Power-Mode/m-p/1019814#M39865</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi, Jim,&lt;/P&gt;&lt;P&gt;I suggest you download the SDK package from the link:&lt;/P&gt;&lt;P&gt;&lt;A class="link-titled" href="https://www.nxp.com/design/software/development-software/mcuxpresso-software-and-tools/mcuxpresso-software-development-kit-sdk:MCUXpresso-SDK" title="https://www.nxp.com/design/software/development-software/mcuxpresso-software-and-tools/mcuxpresso-software-development-kit-sdk:MCUXpresso-SDK"&gt;MCUXpresso SDK | Software Development for Kinetis, LPC, and i.MX MCUs | NXP&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;On the package, there is example in the directory:&lt;/P&gt;&lt;P&gt;C:\DriveE\LPC_SDK_MCUExpresso\SDK_2.6.0_LPCXpresso804\boards\lpcxpresso804\demo_apps\power_mode_switch_lpc&lt;/P&gt;&lt;P&gt;This is part of the code&lt;/P&gt;&lt;P&gt;void POWER_EnterDeepSleep(uint32_t activePart)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; assert((SYSCON-&amp;gt;MAINCLKSEL &amp;amp; SYSCON_MAINCLKSEL_SEL_MASK) == 0U);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint32_t pmsk;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pmsk = __get_PRIMASK();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; __disable_irq();&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PMU-&amp;gt;PCON = (PMU-&amp;gt;PCON &amp;amp; (~PMU_PCON_PM_MASK)) | PMU_PCON_PM(kPmu_Deep_Sleep);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* remain active during power down mode */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SYSCON-&amp;gt;PDSLEEPCFG &amp;amp;= ~activePart;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* enable Deepsleep mode in the ARM-CORTEX M0+ SCR register */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SCB-&amp;gt;SCR |= SCB_SCR_SLEEPDEEP_Msk;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Enter powerdown mode */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; __WFI();&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* disable Deepsleep mode in the ARM-CORTEX M0+ SCR register */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SCB-&amp;gt;SCR &amp;amp;= ~SCB_SCR_SLEEPDEEP_Msk;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; __set_PRIMASK(pmsk);&amp;nbsp; &amp;nbsp;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;If you want to wake-up from Pin intrrupt, you can refer to the code:&lt;/P&gt;&lt;P&gt;static void DEMO_InitWakeupPin(void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gpio_pin_config_t gpioPinConfigStruct;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Set SW pin as GPIO input. */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gpioPinConfigStruct.pinDirection = kGPIO_DigitalInput;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; GPIO_PinInit(DEMO_USER_WAKEUP_KEY_GPIO, DEMO_USER_WAKEUP_KEY_PORT, DEMO_USER_WAKEUP_KEY_PIN, &amp;amp;gpioPinConfigStruct);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SYSCON_AttachSignal(SYSCON, kPINT_PinInt0, DEMO_PINT_PIN_INT0_SRC);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Configure the interrupt for SW pin. */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PINT_Init(PINT);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PINT_PinInterruptConfig(PINT, kPINT_PinInt0, kPINT_PinIntEnableFallEdge, pint_intr_callback);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PINT_EnableCallback(PINT); /* Enable callbacks for PINT */&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope it can help you&lt;/P&gt;&lt;P&gt;BR&lt;/P&gt;&lt;P&gt;XiangJun Rong&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 31 Dec 2019 08:28:28 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Cannot-get-LPC800-to-go-into-Deep-Power-Mode/m-p/1019814#M39865</guid>
      <dc:creator>xiangjun_rong</dc:creator>
      <dc:date>2019-12-31T08:28:28Z</dc:date>
    </item>
  </channel>
</rss>

