<?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>Kinetis Microcontrollers中的主题 Re: Wake up K22F from VLLS0 using RTC Alarm</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Wake-up-K22F-from-VLLS0-using-RTC-Alarm/m-p/933850#M54166</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;BR /&gt;Hi&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;See some videos:&lt;BR /&gt;&lt;A href="https://www.youtube.com/watch?v=kWNlsAoMly4&amp;amp;list=PLWKlVb_MqDQFZAulrUywU30v869JBYi9Q" target="test_blank"&gt;https://www.youtube.com/watch?v=kWNlsAoMly4&amp;amp;list=PLWKlVb_MqDQFZAulrUywU30v869JBYi9Q&lt;/A&gt;&lt;BR /&gt;&lt;A href="https://www.youtube.com/watch?v=iZEMRiDmHzw&amp;amp;list=PLWKlVb_MqDQFZAulrUywU30v869JBYi9Q&amp;amp;index=5" target="test_blank"&gt;https://www.youtube.com/watch?v=iZEMRiDmHzw&amp;amp;list=PLWKlVb_MqDQFZAulrUywU30v869JBYi9Q&amp;amp;index=5&lt;/A&gt;&lt;BR /&gt;&lt;A href="https://www.youtube.com/watch?v=v4UnfcDiaE4&amp;amp;list=PLWKlVb_MqDQFZAulrUywU30v869JBYi9Q&amp;amp;index=7" target="test_blank"&gt;https://www.youtube.com/watch?v=v4UnfcDiaE4&amp;amp;list=PLWKlVb_MqDQFZAulrUywU30v869JBYi9Q&amp;amp;index=7&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You can get a working reference for low power operation on K22 (and most other parts) and Alarm wake-up in the free open source uTasker project at the links below.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Mark&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;EM&gt;Complete Kinetis solutions for professional needs, training and support: &lt;A href="http://www.utasker.com/kinetis.html" target="test_blank"&gt;http://www.utasker.com/kinetis.html&lt;/A&gt;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;i.MX RT project compatibility: &lt;A href="http://www.utasker.com/iMX.html" target="test_blank"&gt;http://www.utasker.com/iMX.html&lt;/A&gt;&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;Kinetis K22:&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;- &lt;A href="http://www.utasker.com/kinetis/FRDM-K22F.html" target="test_blank"&gt;http://www.utasker.com/kinetis/FRDM-K22F.html&lt;/A&gt;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;- &lt;A href="http://www.utasker.com/kinetis/TWR-K22F120M.html" target="test_blank"&gt;http://www.utasker.com/kinetis/TWR-K22F120M.html&lt;/A&gt;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;- &lt;A href="http://www.utasker.com/kinetis/BLAZE_K22.html" target="test_blank"&gt;http://www.utasker.com/kinetis/BLAZE_K22.html&lt;/A&gt;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;- &lt;A href="http://www.utasker.com/kinetis/tinyK22.html" target="test_blank"&gt;http://www.utasker.com/kinetis/tinyK22.html&lt;/A&gt;&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;SPAN style="color: #000080;"&gt;&lt;EM&gt;uTasker: supporting &amp;gt;1'000 registered Kinetis users get products faster and cheaper to market&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;Request Free emergency remote desk-top consulting at &lt;A href="http://www.utasker.com/services.html" target="test_blank"&gt;http://www.utasker.com/services.html&lt;/A&gt;&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;Open Source version at &lt;A href="https://github.com/uTasker/uTasker-Kinetis" target="test_blank"&gt;https://github.com/uTasker/uTasker-Kinetis&lt;/A&gt;&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&lt;A href="https://community.nxp.com/thread/512558" target="test_blank"&gt;https://community.nxp.com/thread/512558&lt;/A&gt;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&lt;A href="https://community.nxp.com/thread/352862" target="test_blank"&gt;https://community.nxp.com/thread/352862&lt;/A&gt;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&lt;A href="https://community.nxp.com/thread/498809" target="test_blank"&gt;https://community.nxp.com/thread/498809&lt;/A&gt;&lt;/EM&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 17 Oct 2019 20:10:27 GMT</pubDate>
    <dc:creator>mjbcswitzerland</dc:creator>
    <dc:date>2019-10-17T20:10:27Z</dc:date>
    <item>
      <title>Wake up K22F from VLLS0 using RTC Alarm</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Wake-up-K22F-from-VLLS0-using-RTC-Alarm/m-p/933849#M54165</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;I must wake up periodically a MCU K22F from VLLS0 using the RTC Alarm. I have read on datasheets that is the&amp;nbsp;solution that needs less power for a battery powered system. I use an external 32768Hz crystal for the RTC and the internal oscillator for the system. Now I tried to enter VLLS0 using this code:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;vlls_config.subMode = kSMC_StopSub0;&lt;BR /&gt; vlls_config.enablePorDetectInVlls0 = true;&lt;BR /&gt; SMC_PreEnterStopModes();&lt;BR /&gt; SMC_SetPowerModeVlls(SMC, &amp;amp;vlls_config);&lt;BR /&gt; SMC_PostExitStopModes();&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;set RTC like this:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void set_RTC_Alarm(){&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;/* Init RTC */&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;RTC_GetDefaultConfig(&amp;amp;rtc_config);&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;RTC_Init(RTC, &amp;amp;rtc_config);&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;/* Select RTC clock source */&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;RTC_SetClockSource(RTC);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;/* RTC time counter has to be stopped before setting the date &amp;amp; time in the TSR register */&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;RTC_StopTimer(RTC);&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;RTC-&amp;gt;TSR = 0; //reset RTC timer&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;RTC-&amp;gt;TAR = 10; //alarm set to 10 seconds&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;RTC_StartTimer(RTC);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;/* Enable interrupt&amp;nbsp;*/&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;EnableIRQ(RTC_IRQn);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;RTC_EnableInterrupts(RTC,kRTC_AlarmInterruptEnable);&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;and set LLWU like this:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void set_LLWU(){&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;LLWU-&amp;gt;PE1 = 0;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;LLWU-&amp;gt;PE2 = 0;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;LLWU-&amp;gt;PE3 = 0;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;LLWU-&amp;gt;PE4 = 0;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;//LLWU-&amp;gt;ME = LLWU_ME_WUME5_MASK; //rtc alarm&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;LLWU_EnableInternalModuleInterruptWakup(LLWU,5U, true);&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;EnableIRQ(LLWU_IRQn);&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In this way the MCU goes to sleep with a current of 330uA respect to the 3.4 mA during the normal operation, but at the wake up from the alarm the MCU doesn't reset and restart from the instruction after the stop. I think it's not a real VLLS0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If I use the following function taken from AN5403 to enter sleep:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void enter_vlls0(unsigned char PORPO_value )&lt;BR /&gt;{&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;volatile unsigned int dummyread;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;/* Write to PMPROT to allow all possible power modes */&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;SMC-&amp;gt;PMPROT = SMC_PMPROT_AVLLS_MASK;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;/* Set the STOPM field to 0b100 for VLLS0 mode */&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;SMC-&amp;gt;PMCTRL &amp;amp;= ~SMC_PMCTRL_STOPM_MASK;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;SMC-&amp;gt;PMCTRL |= SMC_PMCTRL_STOPM(0x4);&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;/* set VLLSM = 0b00 */&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;SMC-&amp;gt;VLLSCTRL = (PORPO_value &amp;lt;&amp;lt;SMC_VLLSCTRL_PORPO_SHIFT)&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;| SMC_VLLSCTRL_VLLSM(3);&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;/*wait for write to complete to SMC before stopping core */&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;dummyread = SMC-&amp;gt;VLLSCTRL;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;dummyread++;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;/* Set the SLEEPDEEP bit to enable deep sleep mode (STOP) */&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;SCB-&amp;gt;SCR |= SCB_SCR_SLEEPDEEP_Msk;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;__asm("WFI");&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;the MCU will consume only 50uA during deepsleep but after 10seconds&amp;nbsp;I see a consumption increased to 2.4mA but MCU doesn't wake and stay stopped. I think this is a real VLLS0 but I am not able to wake up the MCU.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The IRG handler are those&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void LLWU_IRQHandler(void){&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;RTC_DisableInterrupts(RTC,kRTC_AlarmInterruptEnable);&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;RTC_ClearStatusFlags(RTC,kRTC_AlarmFlag);&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;//debug_printf("enter LLWU_IRQ\n");&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;//printf("LLWU_IRQ\n");&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;/* Add for ARM errata 838869, affects Cortex-M4, Cortex-M4F Store immediate overlapping&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;exception return operation might vector to incorrect interrupt */&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;__DSB();&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;void RTC_IRQHandler(void){&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;RTC_DisableInterrupts(RTC,kRTC_AlarmInterruptEnable);&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;RTC_ClearStatusFlags(RTC,kRTC_AlarmFlag);&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;//debug_printf("enter LLWU_IRQ\n");&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;//printf("RTC_IRQ\n");&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;/* Add for ARM errata 838869, affects Cortex-M4, Cortex-M4F Store immediate overlapping&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;exception return operation might vector to incorrect interrupt */&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;__DSB();&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Where is the error?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 17 Oct 2019 16:02:02 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Wake-up-K22F-from-VLLS0-using-RTC-Alarm/m-p/933849#M54165</guid>
      <dc:creator>gabriele_endriz</dc:creator>
      <dc:date>2019-10-17T16:02:02Z</dc:date>
    </item>
    <item>
      <title>Re: Wake up K22F from VLLS0 using RTC Alarm</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Wake-up-K22F-from-VLLS0-using-RTC-Alarm/m-p/933850#M54166</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;BR /&gt;Hi&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;See some videos:&lt;BR /&gt;&lt;A href="https://www.youtube.com/watch?v=kWNlsAoMly4&amp;amp;list=PLWKlVb_MqDQFZAulrUywU30v869JBYi9Q" target="test_blank"&gt;https://www.youtube.com/watch?v=kWNlsAoMly4&amp;amp;list=PLWKlVb_MqDQFZAulrUywU30v869JBYi9Q&lt;/A&gt;&lt;BR /&gt;&lt;A href="https://www.youtube.com/watch?v=iZEMRiDmHzw&amp;amp;list=PLWKlVb_MqDQFZAulrUywU30v869JBYi9Q&amp;amp;index=5" target="test_blank"&gt;https://www.youtube.com/watch?v=iZEMRiDmHzw&amp;amp;list=PLWKlVb_MqDQFZAulrUywU30v869JBYi9Q&amp;amp;index=5&lt;/A&gt;&lt;BR /&gt;&lt;A href="https://www.youtube.com/watch?v=v4UnfcDiaE4&amp;amp;list=PLWKlVb_MqDQFZAulrUywU30v869JBYi9Q&amp;amp;index=7" target="test_blank"&gt;https://www.youtube.com/watch?v=v4UnfcDiaE4&amp;amp;list=PLWKlVb_MqDQFZAulrUywU30v869JBYi9Q&amp;amp;index=7&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You can get a working reference for low power operation on K22 (and most other parts) and Alarm wake-up in the free open source uTasker project at the links below.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Mark&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;EM&gt;Complete Kinetis solutions for professional needs, training and support: &lt;A href="http://www.utasker.com/kinetis.html" target="test_blank"&gt;http://www.utasker.com/kinetis.html&lt;/A&gt;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;i.MX RT project compatibility: &lt;A href="http://www.utasker.com/iMX.html" target="test_blank"&gt;http://www.utasker.com/iMX.html&lt;/A&gt;&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;Kinetis K22:&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;- &lt;A href="http://www.utasker.com/kinetis/FRDM-K22F.html" target="test_blank"&gt;http://www.utasker.com/kinetis/FRDM-K22F.html&lt;/A&gt;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;- &lt;A href="http://www.utasker.com/kinetis/TWR-K22F120M.html" target="test_blank"&gt;http://www.utasker.com/kinetis/TWR-K22F120M.html&lt;/A&gt;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;- &lt;A href="http://www.utasker.com/kinetis/BLAZE_K22.html" target="test_blank"&gt;http://www.utasker.com/kinetis/BLAZE_K22.html&lt;/A&gt;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;- &lt;A href="http://www.utasker.com/kinetis/tinyK22.html" target="test_blank"&gt;http://www.utasker.com/kinetis/tinyK22.html&lt;/A&gt;&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;SPAN style="color: #000080;"&gt;&lt;EM&gt;uTasker: supporting &amp;gt;1'000 registered Kinetis users get products faster and cheaper to market&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;Request Free emergency remote desk-top consulting at &lt;A href="http://www.utasker.com/services.html" target="test_blank"&gt;http://www.utasker.com/services.html&lt;/A&gt;&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;Open Source version at &lt;A href="https://github.com/uTasker/uTasker-Kinetis" target="test_blank"&gt;https://github.com/uTasker/uTasker-Kinetis&lt;/A&gt;&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&lt;A href="https://community.nxp.com/thread/512558" target="test_blank"&gt;https://community.nxp.com/thread/512558&lt;/A&gt;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&lt;A href="https://community.nxp.com/thread/352862" target="test_blank"&gt;https://community.nxp.com/thread/352862&lt;/A&gt;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&lt;A href="https://community.nxp.com/thread/498809" target="test_blank"&gt;https://community.nxp.com/thread/498809&lt;/A&gt;&lt;/EM&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 17 Oct 2019 20:10:27 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Wake-up-K22F-from-VLLS0-using-RTC-Alarm/m-p/933850#M54166</guid>
      <dc:creator>mjbcswitzerland</dc:creator>
      <dc:date>2019-10-17T20:10:27Z</dc:date>
    </item>
  </channel>
</rss>

