<?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: RTC and LLS, KL15Z128 in Kinetis Microcontrollers</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/RTC-and-LLS-KL15Z128/m-p/248338#M6802</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi serj none, did you ever solve this ? I'm facing a similar problem and unable to wake up a K64 from any VLLS level using the RTC Alarm.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 23 Oct 2015 05:39:49 GMT</pubDate>
    <dc:creator>willx</dc:creator>
    <dc:date>2015-10-23T05:39:49Z</dc:date>
    <item>
      <title>RTC and LLS, KL15Z128</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/RTC-and-LLS-KL15Z128/m-p/248335#M6799</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello. I have some problems with using RTC for wakeup from LLS. I am use KL15Z128 processor&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;//-----------------------------------------------------&lt;/P&gt;&lt;P&gt;void main(void)&lt;/P&gt;&lt;P&gt;{&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; __disable_interrupt();&lt;/P&gt;&lt;P&gt;&amp;nbsp; SIM_COPC = 0x00; /* Disable the watchdog timer */&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; unsigned int res = fei_fee_my(); &lt;/P&gt;&lt;P&gt;&amp;nbsp; change_core_prs(0); //max frq&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; LPTMRInit(0); //init and stop LPTR&lt;/P&gt;&lt;P&gt;&amp;nbsp; rtc_init(0, 0); //init RTC&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; LLWU_Init(); //init LLWU wakeup by button, LPTR, RTC&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; PITInit(periph_clk, PIT_PERIOD_US); //PIT period 1000 uS&lt;/P&gt;&lt;P&gt;&amp;nbsp; UART0_init(FLL_FRQ_OUT, 115200); //debug uart&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; PutStringDebug("Low Power Modes Test\r\n");&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; displaySDID(); //display SIM_SDID and SIM_FCFG1&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; PutStringDigitDebug("FEI to FEE RES: ", res);&lt;/P&gt;&lt;P&gt;&amp;nbsp; PutStringDigitDebug("MCG MODE: ", what_mcg_mode());&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; rtc_set_alarm(10); //set first rtc alarm at 10 sec&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; while(1)&lt;/P&gt;&lt;P&gt;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(gFlags.rtcAlarmFlag) rtc_set_alarm(10); //reinit rtc alarm&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(_getcharDebug() == 's')&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PutStringDebug("Press SW to wake up from LLS\r\n");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; delay_ms(10);&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned int fee_fbe_res = fee_fbe_my();&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned int fbe_blpe_res = fbe_blpe_my();&amp;nbsp; &lt;/P&gt;&lt;P&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;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; gFlags.llwuMSK = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rtc_set_alarm(10); //set rtc alarm fo wakeup from lls at 10 sec&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPTMRInit(15000); //set LPTR for wakeup from lls at 15 sec&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPTMRStart();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; __enable_interrupt();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; enter_lls(); //enter LLS&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPTMRStop(); //stop LPTR&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned int blpe_fbe_res = blpe_fbe_my();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; res = fbe_fee_my();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; change_core_prs(0); //max frq&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PITInit(periph_clk, PIT_PERIOD_US); //PIT period 1000 uS&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UART0_init(FLL_FRQ_OUT, 115200); //init debug-uart&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PutStringDebug("Exit From Low Power Mode\r\n");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PutStringDigitDebug("FEE to FBE RES: ", fee_fbe_res);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PutStringDigitDebug("FBE to FEE RES: ", res);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PutStringDigitDebug("MCG MODE: ", what_mcg_mode());&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PutStringDigitDebug("LLWU FLAG: ", gFlags.llwuMSK);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PutStringDigitDebug("LLWU F1: ", LLWU_F1);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PutStringDigitDebug("LLWU F2: ", LLWU_F2);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PutStringDigitDebug("LLWU F3: ", LLWU_F3);&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; gFlags.llwuMSK = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;//------------------------------------------&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;//------------------------------------------&lt;/P&gt;&lt;P&gt;void RTCA_IRQHandler(void) &lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp; if((RTC_SR &amp;amp; RTC_SR_TIF_MASK)== 0x01)&lt;/P&gt;&lt;P&gt;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PutStringStringDebug(0, "SRTC time invalid interrupt entered...\r\n");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RTC_SR &amp;amp;= 0x07;&amp;nbsp; //clear TCE, or RTC_TSR can&amp;nbsp; not be written&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RTC_TSR = 0x00000000;&amp;nbsp; //clear TIF &lt;/P&gt;&lt;P&gt;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; else if((RTC_SR &amp;amp; RTC_SR_TOF_MASK) == 0x02)&lt;/P&gt;&lt;P&gt;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PutStringStringDebug(0, "SRTC time overflow interrupt entered...\r\n");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RTC_SR &amp;amp;= 0x07;&amp;nbsp; //clear TCE, or RTC_TSR can&amp;nbsp; not be written&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RTC_TSR = 0x00000000;&amp;nbsp; //clear TOF&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp; else if((RTC_SR &amp;amp; RTC_SR_TAF_MASK) == 0x04)&lt;/P&gt;&lt;P&gt;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PutStringDigitDebug("SRTC alarm interrupt entered: ", RTC_TSR);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RTC_TAR = 0xffffffff;// Write new alarm value, to generate an alarm every second add 1&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gFlags.rtcAlarmFlag = 1;&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;//------------------------------------------&lt;/P&gt;&lt;P&gt;FAMID: 0010 KL2x Family (USB)&lt;/P&gt;&lt;P&gt;11:30:42.848&amp;gt; SUBFAMID:&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;void rtc_init(unsigned char c_interval, unsigned char c_value) &lt;/P&gt;&lt;P&gt;{&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; /*enable the clock to SRTC module register space*/&lt;/P&gt;&lt;P&gt;&amp;nbsp; SIM_SCGC6 |= SIM_SCGC6_RTC_MASK;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; /*Only VBAT_POR has an effect on the SRTC, RESET to the part does not, so you must manually reset the SRTC to make sure everything is in a known state*/&lt;/P&gt;&lt;P&gt;&amp;nbsp; /*clear the software reset bit*/&lt;/P&gt;&lt;P&gt;&amp;nbsp; RTC_CR&amp;nbsp; = RTC_CR_SWR_MASK;&lt;/P&gt;&lt;P&gt;&amp;nbsp; RTC_CR&amp;nbsp; &amp;amp;= ~RTC_CR_SWR_MASK;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; RTC_CR |= RTC_CR_UM_MASK | RTC_CR_SUP_MASK;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; install_irq(RTCA_irq_no, RTCA_prio);&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; /*Set time compensation parameters*/&lt;/P&gt;&lt;P&gt;&amp;nbsp; RTC_TCR = RTC_TCR_CIR(c_interval) | RTC_TCR_TCR(c_value);&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; /*Configure the timer seconds and alarm registers*/&lt;/P&gt;&lt;P&gt;&amp;nbsp; RTC_TSR = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp; RTC_TAR = 0xffffffff;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; gFlags.rtcAlarmFlag = 0; //сброс флага прерывания&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; RTC_IER = RTC_IER_TIIE_MASK | RTC_IER_TOIE_MASK | RTC_IER_TAIE_MASK;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; /*Enable the counter*/&lt;/P&gt;&lt;P&gt;&amp;nbsp; RTC_SR |= RTC_SR_TCE_MASK; &lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void rtc_set_alarm(unsigned long long int alarm)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp; unsigned long long int new_alarm = ((unsigned long long int) RTC_TSR) + alarm;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if(alarm &amp;gt; 0xffffffff) alarm = 0xffffffff;&lt;/P&gt;&lt;P&gt;&amp;nbsp; RTC_TAR = RTC_TSR + alarm;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; gFlags.rtcAlarmFlag = 0;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;//------------------------------------------&lt;/P&gt;&lt;P&gt;void LLWU_IRQHandler(void)&lt;/P&gt;&lt;P&gt;{&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; if(LLWU_F1 &amp;amp; LLWU_F1_WUF5_MASK) &lt;/P&gt;&lt;P&gt;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gFlags.llwuMSK |= 0x01; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LLWU_F1 |= LLWU_F1_WUF5_MASK;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTB_PCR0 |= PORT_PCR_ISF_MASK; //clear button interrupt flag&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; if(LLWU_F3 &amp;amp; LLWU_F3_MWUF0_MASK) &lt;/P&gt;&lt;P&gt;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gFlags.llwuMSK |= 0x02; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LLWU_F3 |= LLWU_F3_MWUF0_MASK; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPTMR0_CSR |= LPTMR_CSR_TCF_MASK;&amp;nbsp; //Clear LPT Compare flag&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; if(LLWU_F3 &amp;amp; LLWU_F3_MWUF5_MASK)&lt;/P&gt;&lt;P&gt;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gFlags.llwuMSK |= 0x04; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LLWU_F3 |= LLWU_F3_MWUF5_MASK;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if((RTC_SR &amp;amp; RTC_SR_TIF_MASK)== 0x01)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RTC_SR &amp;amp;= 0x07;&amp;nbsp; //clear TCE, or RTC_TSR can&amp;nbsp; not be written&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RTC_TSR = 0x00000000;&amp;nbsp; //clear TIF &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if((RTC_SR &amp;amp; RTC_SR_TOF_MASK) == 0x02)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RTC_SR &amp;amp;= 0x07;&amp;nbsp; //clear TCE, or RTC_TSR can&amp;nbsp; not be written&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RTC_TSR = 0x00000000;&amp;nbsp; //clear TOF&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if((RTC_SR &amp;amp; RTC_SR_TAF_MASK) == 0x04)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RTC_TAR = 0xffffffff;// Write new alarm value, to generate an alarm every second add 1&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; gFlags.rtcAlarmFlag = 1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp; return;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;//--------------------------------------------------&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;//--------------------------------------------------&lt;/P&gt;&lt;P&gt;void LLWU_Init(void)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp; install_irq(LLWU_irq_no, LLWU_prio); //LPTMR_irq_no&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; /* Enable Port B0 to be a digital pin. */&lt;/P&gt;&lt;P&gt;&amp;nbsp; SIM_SCGC5 |= SIM_SCGC5_PORTB_MASK; &lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTB_PCR0 =(PORT_PCR_ISF_MASK | //clear flag if there&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORT_PCR_MUX(01) | //set pin functionality -GPIO&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORT_PCR_IRQC(0x0A)); //falling edge interrupt enable*/&lt;/P&gt;&lt;P&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; &lt;/P&gt;&lt;P&gt;&amp;nbsp; /* WUPE0 is used in this case since it is associated with PTE1.&lt;/P&gt;&lt;P&gt;&amp;nbsp; * This information is in the Chip Configuration chapter of the Reference Manual. &lt;/P&gt;&lt;P&gt;&amp;nbsp; * 0b10: External input pin enabled with falling edge detection&lt;/P&gt;&lt;P&gt;&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&amp;nbsp; LLWU_PE2 |= LLWU_PE2_WUPE5(LLWU_PIN_FALLING); //falling edge detection&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; //enable LPTR and RTC as wakeup modules&lt;/P&gt;&lt;P&gt;&amp;nbsp; LLWU_ME |= LLWU_ME_WUME0_MASK | LLWU_ME_WUME5_MASK; //описание внутренних модулей стр. 61 KLQRUG&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;//--------------------------------------------------&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Log from device&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;11:30:42.617&amp;gt; Low Power Modes Test&lt;/P&gt;&lt;P&gt;11:30:42.617&amp;gt; &lt;/P&gt;&lt;P&gt;11:30:42.848&amp;gt; RESET SRC: POR&lt;/P&gt;&lt;P&gt;11:30:42.848&amp;gt; RESET SRC: BROWN OUT&lt;/P&gt;&lt;P&gt;11:30:42.848&amp;gt; &lt;/P&gt;&lt;P&gt; 11:30:42.848&amp;gt; SIM_SDID: 0x2515048F&lt;/P&gt;&lt;P&gt;11:30:42.848&amp;gt; SIM_FCFG1: 0x0F000000&lt;/P&gt;&lt;P&gt;11:30:42.848&amp;gt; FAMID: 0010 KL2x Family (USB)&lt;/P&gt;&lt;P&gt;11:30:42.848&amp;gt; SUBFAMID: 0101 KLx5 Subfamily (advanced analog)&lt;/P&gt;&lt;P&gt;11:30:42.848&amp;gt; SERIESID: 0001 KL family&lt;/P&gt;&lt;P&gt;11:30:42.848&amp;gt; SRAMSIZE: 0101 16 KB&lt;/P&gt;&lt;P&gt;11:30:42.848&amp;gt; REVID: 0&lt;/P&gt;&lt;P&gt;11:30:42.848&amp;gt; DIEID: 9&lt;/P&gt;&lt;P&gt;11:30:42.848&amp;gt; PINID: UNDEFINED: 15&lt;/P&gt;&lt;P&gt;11:30:42.848&amp;gt; FLASHSIZE: 1111 128 KB of program flash memory, 4 KB protection region&lt;/P&gt;&lt;P&gt;11:30:42.848&amp;gt; FEI to FEE RES: 23986176&lt;/P&gt;&lt;P&gt;11:30:42.848&amp;gt; MCG MODE: 4&lt;/P&gt;&lt;P&gt;11:30:53.621&amp;gt; SRTC alarm interrupt entered: 11&lt;/P&gt;&lt;P&gt;11:31:04.683&amp;gt; SRTC alarm interrupt entered: 22&lt;/P&gt;&lt;P&gt;11:31:05.997&amp;gt; Press SW to wake up from LLS&lt;/P&gt;&lt;P&gt;11:31:22.309&amp;gt; Exit From Low Power Mode&lt;/P&gt;&lt;P&gt;11:31:22.309&amp;gt; FEE to FBE RES: 32768&lt;/P&gt;&lt;P&gt;11:31:22.309&amp;gt; FBE to FEE RES: 23986176&lt;/P&gt;&lt;P&gt;11:31:22.309&amp;gt; MCG MODE: 4&lt;/P&gt;&lt;P&gt;11:31:22.309&amp;gt; LLWU FLAG: 2&lt;/P&gt;&lt;P&gt;11:31:22.309&amp;gt; LLWU F1: 0&lt;/P&gt;&lt;P&gt;11:31:22.309&amp;gt; LLWU F2: 0&lt;/P&gt;&lt;P&gt;11:31:22.309&amp;gt; LLWU F3: 0&lt;/P&gt;&lt;P&gt;11:31:32.438&amp;gt; SRTC alarm interrupt entered: 34&lt;/P&gt;&lt;P&gt;11:31:43.439&amp;gt; SRTC alarm interrupt entered: 45&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;First i can see that FAMID KL2x bat i am use KL15&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;/SPAN&gt;PINID - undefined&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I can see that device normally wake up from LLS by button or LPTR? but not by RTC.&lt;/P&gt;&lt;P&gt;Pleas help me - what i do wrong.&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 02 Apr 2013 08:57:32 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/RTC-and-LLS-KL15Z128/m-p/248335#M6799</guid>
      <dc:creator>serjnone</dc:creator>
      <dc:date>2013-04-02T08:57:32Z</dc:date>
    </item>
    <item>
      <title>Re: RTC and LLS, KL15Z128</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/RTC-and-LLS-KL15Z128/m-p/248336#M6800</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Today i check OSC generation and i can se that after entering to LLS oscillator is stoped. I use OSC32KCLK clock source fo RTC. From documentation OSCERCLK and OSC32KCLK can work in low power modes (25.3 Block Diagram). But it is not sou. I cannot find any settings that disable or enable OSC or OSC32KCLK in low power mode.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;After startup i configure MCG fei_fee();&lt;/P&gt;&lt;P&gt;Before entering to LLS&lt;/P&gt;&lt;P&gt;fee_fbe();&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;fbe_blpe();&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In all cases i can see OSC generation. Only after entering at LLS it lost.&lt;/P&gt;&lt;P&gt;Now i use correct CPU&lt;/P&gt;&lt;P&gt;13:39:20.739&amp;gt; SIM_SDID: 0x15152482&lt;/P&gt;&lt;P&gt;13:39:20.739&amp;gt; SIM_FCFG1: 0x07000000&lt;/P&gt;&lt;P&gt;13:39:20.739&amp;gt; FAMID: 0001 KL1x Family (basic)&lt;/P&gt;&lt;P&gt;13:39:20.739&amp;gt; SUBFAMID: 0101 KLx5 Subfamily (advanced analog)&lt;/P&gt;&lt;P&gt;13:39:20.739&amp;gt; SERIESID: 0001 KL family&lt;/P&gt;&lt;P&gt;13:39:20.739&amp;gt; SRAMSIZE: 0101 16 KB&lt;/P&gt;&lt;P&gt;13:39:20.739&amp;gt; REVID: 2&lt;/P&gt;&lt;P&gt;13:39:20.739&amp;gt; DIEID: 9&lt;/P&gt;&lt;P&gt;13:39:20.739&amp;gt; PINID: 0010 32-pin&lt;/P&gt;&lt;P&gt;13:39:20.739&amp;gt; FLASHSIZE: 0111 128 KB of program flash memory, 4 KB protection region&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 03 Apr 2013 10:44:33 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/RTC-and-LLS-KL15Z128/m-p/248336#M6800</guid>
      <dc:creator>serjnone</dc:creator>
      <dc:date>2013-04-03T10:44:33Z</dc:date>
    </item>
    <item>
      <title>Re: RTC and LLS, KL15Z128</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/RTC-and-LLS-KL15Z128/m-p/248337#M6801</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Please check the attached file is validation code of the RTC and in different Low power modes. &lt;/P&gt;&lt;P&gt;I hope this will help you.&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 21 May 2013 20:56:49 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/RTC-and-LLS-KL15Z128/m-p/248337#M6801</guid>
      <dc:creator>vicentegomez</dc:creator>
      <dc:date>2013-05-21T20:56:49Z</dc:date>
    </item>
    <item>
      <title>Re: RTC and LLS, KL15Z128</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/RTC-and-LLS-KL15Z128/m-p/248338#M6802</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi serj none, did you ever solve this ? I'm facing a similar problem and unable to wake up a K64 from any VLLS level using the RTC Alarm.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 23 Oct 2015 05:39:49 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/RTC-and-LLS-KL15Z128/m-p/248338#M6802</guid>
      <dc:creator>willx</dc:creator>
      <dc:date>2015-10-23T05:39:49Z</dc:date>
    </item>
  </channel>
</rss>

