<?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: Configure OSC1 as EXTAL ref for PLL0 and PLL1</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Configure-OSC1-as-EXTAL-ref-for-PLL0-and-PLL1/m-p/501713#M31413</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Ramesh Goud,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; About this question, we have some similar questions in our community, please refer to these post:&lt;/P&gt;&lt;P&gt;&lt;A href="https://community.nxp.com/message/314933"&gt;Need help setting up MCG on K60 With Ext Osc1&lt;/A&gt; &lt;/P&gt;&lt;P&gt;&lt;A href="https://community.nxp.com/message/518820"&gt;Re: Kinetis K60 oscillator selection&lt;/A&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Wish it helps you!&lt;/P&gt;&lt;P&gt;If you still have question, please contact with me!&lt;/P&gt;&lt;P&gt;Have a great day,&lt;/P&gt;&lt;P&gt;Jingjing&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 20 Jan 2016 06:13:20 GMT</pubDate>
    <dc:creator>kerryzhou</dc:creator>
    <dc:date>2016-01-20T06:13:20Z</dc:date>
    <item>
      <title>Configure OSC1 as EXTAL ref for PLL0 and PLL1</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Configure-OSC1-as-EXTAL-ref-for-PLL0-and-PLL1/m-p/501712#M31412</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Am using 12 Mhz crystal as my External reference clock which is OSC1 and another high range crystal is using as OSC0, I want the configurations for PLL0 and PLL1 which are using the EXTAL as OSC1 only.&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; Here am sharing my code snippet for configuring MCG and DDR &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MCG:&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* Generate a reset request on a loss of OSC1 external reference clock and High frequency range selected for the crystal oscillator&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; temp8 =&amp;nbsp; ESAL_GE_MEM_READ8(MCG_C10);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; temp8 &amp;amp;= ~(0x30 | 0x8 | 0x4);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; temp8 |= (1&amp;lt;&amp;lt;4 | 0 &amp;lt;&amp;lt; 3 | 0 &amp;lt;&amp;lt; 2);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ESAL_GE_MEM_WRITE8(MCG_C10, temp8);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* External reference clock is selected and write frdiv (5) value */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; temp8 =&amp;nbsp; ESAL_GE_MEM_READ8(MCG_C1);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; temp8 &amp;amp;= ~(0x4 | 0x38 | 0xc0);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; temp8 = 2&amp;lt;&amp;lt;6 | frdiv&amp;lt;&amp;lt;3;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ESAL_GE_MEM_WRITE8(MCG_C1, temp8);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Wait until clock is stable */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(temp32=0;temp32&amp;lt;100000;temp32++);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* FBE Mode */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* External clock monitor is disabled for OSC1&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ESAL_GE_MEM_WRITE8(MCG_C12, ESAL_GE_MEM_READ8(MCG_C12) | MCG_C12_CME);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ( MCG_C12_CME =&amp;gt; 0x20 )&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* PLL0, OSC1 is selected as the reference clock */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ESAL_GE_MEM_WRITE8(MCG_C5, ESAL_GE_MEM_READ8(MCG_C5) | (MCG_C5_PLLREFSEL));&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (&amp;nbsp; MCG_C5_PLLREFSEL =&amp;gt; 0x80 )&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Select PLL0 as the source of the PLLS mux (PLLCS filed)&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ESAL_GE_MEM_WRITE8(MCG_C11, ESAL_GE_MEM_READ8(MCG_C11) &amp;amp; (~MCG_C11_PLLCS));&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (MCG_C11_PLLCS =&amp;gt; 0x10 )&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Set PRDIV0 value */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; temp8 = ESAL_GE_MEM_READ8(MCG_C5);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; temp8 &amp;amp;= ~MCG_C5_PRDIV;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; temp8 |= (prdiv_val - 1);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ESAL_GE_MEM_WRITE8(MCG_C5, temp8);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Set PLLS bit and VDIV0 values */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; temp8 = ESAL_GE_MEM_READ8(MCG_C6);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; temp8 &amp;amp;= ~MCG_C6_VDIV;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; temp8 |= MCG_C6_PLLS | (vdiv_val - 16);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ESAL_GE_MEM_WRITE8(MCG_C6, temp8);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; /* Wait for PLLST status bit to set */&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(temp32=0;temp32&amp;lt;100000;temp32++);&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* PBE Mode */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Output of FLL or PLLCS is selected (depends on PLLS control bit) */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ESAL_GE_MEM_WRITE8(MCG_C1, ESAL_GE_MEM_READ8(MCG_C1) &amp;amp; (~MCG_C1_CLKS));&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ( MCG_C1_CLKS =&amp;gt; 0xc0 )&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Wait for clock status bits to update */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(temp32=0;temp32&amp;lt;100000;temp32++);&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DDR:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ESAL_GE_MEM_WRITE8(MCG_C11, ESAL_GE_MEM_READ8(MCG_C11) | (MCG_C11_PLLREFSEL2));&amp;nbsp;&amp;nbsp;&amp;nbsp; (MCG_C11_PLLREFSEL2 =&amp;gt; 0x80)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Set PRDIV1 value */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; temp8 = ESAL_GE_MEM_READ8(MCG_C11);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; temp8 &amp;amp;= ~MCG_C11_PRDIV1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (MCG_C11_PRDIV1 =&amp;gt; 7)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; temp8 |= (prdiv_val - 1);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (prdiv_val =&amp;gt; 5)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ESAL_GE_MEM_WRITE8(MCG_C11, temp8);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Set VDIV1 value (Divide Factor is 30-16 = 14) */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; temp8 = ESAL_GE_MEM_READ8(MCG_C12);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; temp8 &amp;amp;= ~MCG_C12_VDIV1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ( MCG_C12_VDIV1 =&amp;gt; 0x1F)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; temp8 |=&amp;nbsp; (vdiv_val - 16);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (vdiv_val =&amp;gt; 30)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ESAL_GE_MEM_WRITE8(MCG_C12, temp8);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Now enable the PLL clock */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ESAL_GE_MEM_WRITE8(MCG_C11, ESAL_GE_MEM_READ8(MCG_C11) | (MCG_C11_PLLCLKEN2));&amp;nbsp; (MCG_C11_PLLCLKEN2 =&amp;gt; 0x40 )&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Wait for LOCK bit to set */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(temp32=0;temp32&amp;lt;100000;temp32++);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; when i configure the Register MCG_C12 to enable the clock monitor for OSC1, It's throwing the error as unable to read the RAM.&lt;/P&gt;&lt;P&gt;help me on the above... &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 19 Jan 2016 13:31:19 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Configure-OSC1-as-EXTAL-ref-for-PLL0-and-PLL1/m-p/501712#M31412</guid>
      <dc:creator>rameshgoud</dc:creator>
      <dc:date>2016-01-19T13:31:19Z</dc:date>
    </item>
    <item>
      <title>Re: Configure OSC1 as EXTAL ref for PLL0 and PLL1</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Configure-OSC1-as-EXTAL-ref-for-PLL0-and-PLL1/m-p/501713#M31413</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Ramesh Goud,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; About this question, we have some similar questions in our community, please refer to these post:&lt;/P&gt;&lt;P&gt;&lt;A href="https://community.nxp.com/message/314933"&gt;Need help setting up MCG on K60 With Ext Osc1&lt;/A&gt; &lt;/P&gt;&lt;P&gt;&lt;A href="https://community.nxp.com/message/518820"&gt;Re: Kinetis K60 oscillator selection&lt;/A&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Wish it helps you!&lt;/P&gt;&lt;P&gt;If you still have question, please contact with me!&lt;/P&gt;&lt;P&gt;Have a great day,&lt;/P&gt;&lt;P&gt;Jingjing&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 20 Jan 2016 06:13:20 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Configure-OSC1-as-EXTAL-ref-for-PLL0-and-PLL1/m-p/501713#M31413</guid>
      <dc:creator>kerryzhou</dc:creator>
      <dc:date>2016-01-20T06:13:20Z</dc:date>
    </item>
    <item>
      <title>Re: Configure OSC1 as EXTAL ref for PLL0 and PLL1</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Configure-OSC1-as-EXTAL-ref-for-PLL0-and-PLL1/m-p/501714#M31414</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Zhou,&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; I agree with you, i need the Register configuration settings to pass&amp;nbsp; FEI, FBE and PBE modes and the RTC OSC as Source instead of OSC0.&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; please respond for the same&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks in advance &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 21 Jan 2016 09:08:43 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Configure-OSC1-as-EXTAL-ref-for-PLL0-and-PLL1/m-p/501714#M31414</guid>
      <dc:creator>rameshgoud</dc:creator>
      <dc:date>2016-01-21T09:08:43Z</dc:date>
    </item>
    <item>
      <title>Re: Configure OSC1 as EXTAL ref for PLL0 and PLL1</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Configure-OSC1-as-EXTAL-ref-for-PLL0-and-PLL1/m-p/501715#M31415</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Ramesh Goud,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Sorry for my later reply!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; You can refer to this initialization code:&lt;/P&gt;&lt;PRE __default_attr="c++" __jive_macro_name="code" class="jive_macro_code _jivemacro_uid_14539620282696289 jive_text_macro" data-renderedposition="58_8_1215_1520" jivemacro_uid="_14539620282696289" modifiedtitle="true"&gt;&lt;P&gt;void __pe_initialize_hardware(void)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; volatile int counter = 500;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; /*** !!! Here you can place your own code before PE initialization using property "User code before PE initialization" on the build options tab. !!! ***/&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; /*** ### MK70FN1M0VMJ12 "Cpu" init code ... ***/&lt;/P&gt;&lt;P&gt;&amp;nbsp; /*** PE initialization code after reset ***/&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* SIM_SCGC6: RTC=1 */&lt;/P&gt;&lt;P&gt;&amp;nbsp; SIM_SCGC6 |= (uint32_t)0x20000000UL;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if ((RTC_CR &amp;amp; RTC_CR_OSCE_MASK) == 0u) { /* Only if the OSCILLATOR is not already enabled */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* RTC_CR: SC2P=0,SC4P=0,SC8P=0,SC16P=0 */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RTC_CR &amp;amp;= (uint32_t)~0x3C00UL;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* RTC_CR: OSCE=1 */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RTC_CR |= (uint32_t)0x0100UL;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* RTC_CR: CLKO=0 */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RTC_CR &amp;amp;= (uint32_t)~0x0200UL;&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* System clock initialization */&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* SIM_SCGC5: PORTE=1,PORTC=1,PORTA=1 */&lt;/P&gt;&lt;P&gt;&amp;nbsp; SIM_SCGC5 |= (uint32_t)0x2A00UL;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Enable clock gate for ports to enable pin routing */&lt;/P&gt;&lt;P&gt;&amp;nbsp; if ( *((uint8_t*) 0x03FFU) != 0xFFU) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MCG_C3 = *((uint8_t*) 0x03FFU);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MCG_C4 = (MCG_C4 &amp;amp; 0xE0U) | ((*((uint8_t*) 0x03FEU)) &amp;amp; 0x1FU);&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* SIM_CLKDIV1: OUTDIV1=0,OUTDIV2=1,OUTDIV3=2,OUTDIV4=5,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0 */&lt;/P&gt;&lt;P&gt;&amp;nbsp; SIM_CLKDIV1 = (uint32_t)0x01250000UL; /* Update system prescalers */&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* SIM_CLKDIV4: NFCDIV=7 */&lt;/P&gt;&lt;P&gt;&amp;nbsp; SIM_CLKDIV4 |=&amp;nbsp; SIM_CLKDIV4_NFCDIV(7);&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* SIM_SOPT2: PLLFLLSEL=1 */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; SIM_SOPT2 = (uint32_t)((SIM_SOPT2 &amp;amp; (uint32_t)~0x00020000UL) | (uint32_t)0x00010000UL); /* Lior Select PLL 0 as a clock source for various peripherals */&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Hui's addition (remark)&lt;/P&gt;&lt;P&gt; //SIM_SOPT2 = (uint32_t)((SIM_SOPT2 &amp;amp; (uint32_t)~0x00020000UL) | (uint32_t)0x00020000UL); /* Select PLL 1 as a clock source for various peripherals */&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Hui's addition&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* SIM_SOPT1: OSC32KSEL=1 */&lt;/P&gt;&lt;P&gt;&amp;nbsp; SIM_SOPT1 |= (uint32_t)0x00080000UL; /* RTC oscillator drives 32 kHz clock for various peripherals */&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* SIM_SCGC1: OSC1=1 */&lt;/P&gt;&lt;P&gt;&amp;nbsp; SIM_SCGC1 |= (uint32_t)0x20UL;&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* PORTA_PCR18: ISF=0,MUX=0 */&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTA_PCR18 &amp;amp;= (uint32_t)~0x01000700UL;&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* PORTE_PCR24: ISF=0,MUX=0 */&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTE_PCR24 &amp;amp;= (uint32_t)~0x01000700UL;&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* PORTE_PCR25: ISF=0,MUX=0 */&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTE_PCR25 &amp;amp;= (uint32_t)~0x01000700UL;&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* Switch to FBE Mode */&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* OSC0_CR: ERCLKEN=1,??=0,EREFSTEN=0,??=0,SC2P=0,SC4P=0,SC8P=0,SC16P=0 */&lt;/P&gt;&lt;P&gt;&amp;nbsp; OSC0_CR =&amp;nbsp; (uint8_t)0x80U; //(uint8_t)0x80U; //temporary for testing ONLY !!!!!!!!!!!!!!!!!!!!!!!!!!!!&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* OSC1_CR: ERCLKEN=1,??=0,EREFSTEN=0,??=0,SC2P=0,SC4P=0,SC8P=0,SC16P=0 */&lt;/P&gt;&lt;P&gt;&amp;nbsp; OSC1_CR = (uint8_t)0xA0U; //origin 0x80U&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* MCG_C7: OSCSEL=0 */&lt;/P&gt;&lt;P&gt;&amp;nbsp; MCG_C7 |= (uint8_t)0x01U; //origin MCG_C7 &amp;amp;= (uint8_t)~(uint8_t)0x01U;&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* MCG_C10: LOCRE2=0,??=0,RANGE1=2,HGO1=1,EREFS1=1,??=0,??=0 */&lt;/P&gt;&lt;P&gt;&amp;nbsp; MCG_C10 = (uint8_t)0x1CU; //origin 0x2CU&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* MCG_C2: LOCRE0=0,??=0,RANGE0=2,HGO0=0,EREFS0=0,LP=0,IRCS=1 */&lt;/P&gt;&lt;P&gt;&amp;nbsp; MCG_C2 = (uint8_t)0x20U; //origin 0x21U;&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* MCG_C1: CLKS=2,FRDIV=5,IREFS=0,IRCLKEN=0,IREFSTEN=0 */&lt;/P&gt;&lt;P&gt;&amp;nbsp; MCG_C1 = (uint8_t)0xA8U;&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* MCG_C4: DMX32=0,DRST_DRS=0 */&lt;/P&gt;&lt;P&gt;&amp;nbsp; MCG_C4 &amp;amp;= (uint8_t)~(uint8_t)0xE0U;&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* MCG_C5: PLLREFSEL0=0,PLLCLKEN0=0,PLLSTEN0=0,??=0,??=0,PRDIV0=4 */&lt;/P&gt;&lt;P&gt;&amp;nbsp; MCG_C5 = (uint8_t)0xC0U; //origin 0x04U;&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* MCG_C6: LOLIE0=0,PLLS=0,CME0=0,VDIV0=8 */&lt;/P&gt;&lt;P&gt;&amp;nbsp; MCG_C6 = (uint8_t)0x04U; //origin 0x08U&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* MCG_C11: PLLREFSEL1=0,PLLCLKEN1=0,PLLSTEN1=0,PLLCS=0,??=0,PRDIV1=3 */&lt;/P&gt;&lt;P&gt;&amp;nbsp; //MCG_C11 = (uint8_t)0x03U;&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* MCG_C11: PLLCLKEN1=1 */&lt;/P&gt;&lt;P&gt;&amp;nbsp; MCG_C11 = (uint8_t)0xC0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Enable the PLL */ //origin 0x40U;&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* MCG_C12: LOLIE1=0,??=0,CME2=0,VDIV1=8 */&lt;/P&gt;&lt;P&gt;&amp;nbsp; //MCG_C12 = (uint8_t)0x08U; //origin - is open&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(counter)&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;&amp;nbsp;&amp;nbsp; counter--;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp; while((MCG_S &amp;amp; MCG_S_IREFST_MASK) != 0x00U) { /* Check that the source of the FLL reference clock is the external reference clock. */&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp; while((MCG_S &amp;amp; 0x0CU) != 0x08U) {&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Wait until external reference clock is selected as MCG output */&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; MCG_C6 |= 0x40;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Change#8 //origin - doesn't exist&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; MCG_C12 = 0x09;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Change#9&amp;nbsp; //origin - doesn't exist&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* Switch to PBE Mode */&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* MCG_C6: LOLIE0=0,PLLS=1,CME0=0,VDIV0=8 */&lt;/P&gt;&lt;P&gt;&amp;nbsp; //MCG_C6 = (uint8_t)0x48U;&amp;nbsp; //origin - is open&lt;/P&gt;&lt;P&gt;&amp;nbsp; while((MCG_S &amp;amp; 0x0CU) != 0x08U) {&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Wait until external reference clock is selected as MCG output */&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp; while((MCG_S &amp;amp; MCG_S_LOCK0_MASK) == 0x00U) { /* Wait until PLL0 locked */&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Change#11 (remark)&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp; while((MCG_S2 &amp;amp; MCG_S2_LOCK1_MASK) == 0x00U) { /* Wait until PLL1 locked */&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Change#12 //origin - doesn't exist&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* Switch to PEE Mode */&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* MCG_C1: CLKS=0,FRDIV=5,IREFS=0,IRCLKEN=0,IREFSTEN=0 */&lt;/P&gt;&lt;P&gt;&amp;nbsp; MCG_C1 = (uint8_t)0x28U;&lt;/P&gt;&lt;P&gt;&amp;nbsp; while((MCG_S &amp;amp; 0x0CU) != 0x0CU) {&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Wait until output of the PLL is selected */&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* MCG_C6: CME0=1 */&lt;/P&gt;&lt;P&gt;&amp;nbsp; //MCG_C6 |= (uint8_t)0x20U;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Enable the clock monitor */&amp;nbsp; //origin - is open&lt;/P&gt;&lt;P&gt;&amp;nbsp; /*** End of PE initialization code after reset ***/&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; /*** !!! Here you can place your own code after PE initialization using property "User code after PE initialization" on the build options tab. !!! ***/&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;This code can pass the PBE and PEE modes with the RTC OSC as the source.&lt;/P&gt;&lt;P&gt;Wish it helps you!&lt;/P&gt;&lt;P&gt;If you still have question, please contact with me!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Have a great day,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Jingjing&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;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 28 Jan 2016 06:22:21 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Configure-OSC1-as-EXTAL-ref-for-PLL0-and-PLL1/m-p/501715#M31415</guid>
      <dc:creator>kerryzhou</dc:creator>
      <dc:date>2016-01-28T06:22:21Z</dc:date>
    </item>
    <item>
      <title>Re: Configure OSC1 as EXTAL ref for PLL0 and PLL1</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Configure-OSC1-as-EXTAL-ref-for-PLL0-and-PLL1/m-p/501716#M31416</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Jing,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Thanks for the reply,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I tried with the same on k70, the RTC crystal (32.767KHz) as the primary oscillator, hence it impacts on the system performance, i.e. for Hardware initialization it's taking more than 2 mins.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; As I said earlier we are working with Nucleus OS, and initially it'll configured the registers from .XML.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Please help me how to overcome this issue and suggest me if I use the RTC crystal as primary Oscillator.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks in Advance,&lt;/P&gt;&lt;P&gt;Ramesh&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 04 Feb 2016 14:18:45 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Configure-OSC1-as-EXTAL-ref-for-PLL0-and-PLL1/m-p/501716#M31416</guid>
      <dc:creator>rameshgoud</dc:creator>
      <dc:date>2016-02-04T14:18:45Z</dc:date>
    </item>
    <item>
      <title>Re: Configure OSC1 as EXTAL ref for PLL0 and PLL1</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Configure-OSC1-as-EXTAL-ref-for-PLL0-and-PLL1/m-p/501717#M31417</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Ramesh ,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Do you mean&amp;nbsp; this function which I give you :&lt;SPAN class="keyword"&gt;void __pe_initialize_hardware(&lt;SPAN class="keyword"&gt;void&lt;/SPAN&gt;)&amp;nbsp; take more than 2 minutes?&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I already check it, this function time couldn't caused 2 minutes, did you use the 32.768K as the core and process some other code before?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="keyword"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I suggest you use __pe_initialize_hardware function directly after the MCU power on, don't do other codes, after the clock mode transfer to PEE and select the OSC clock, the core clock should be higher ,then do the function which you need.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="keyword"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="keyword"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Wish it helps you!&lt;/P&gt;&lt;P&gt;If you still have question, please contact with me!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Have a great day,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Jingjing&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;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 05 Feb 2016 02:11:25 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Configure-OSC1-as-EXTAL-ref-for-PLL0-and-PLL1/m-p/501717#M31417</guid>
      <dc:creator>kerryzhou</dc:creator>
      <dc:date>2016-02-05T02:11:25Z</dc:date>
    </item>
  </channel>
</rss>

