<?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: Modify Clock with PLL0 in operation in LPC Microcontrollers</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/Modify-Clock-with-PLL0-in-operation/m-p/517109#M2013</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Cleiton Bueno on Tue Nov 18 13:16:47 MST 2014&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;OK, was my confusion, thank you Mike.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Now I will work on my peripherals, a part already OK.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 15 Jun 2016 17:27:04 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-15T17:27:04Z</dc:date>
    <item>
      <title>Modify Clock with PLL0 in operation</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Modify-Clock-with-PLL0-in-operation/m-p/517106#M2010</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Cleiton Bueno on Mon Nov 17 11:24:23 MST 2014&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hello!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have an LPC1788, working perfectly using the MAIN CLOCK with external oscillator, but now I want to reduce the clock at one time and wanted to do with PLL0.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;But my firmware is crashing when put to rotate the function of reducing the clock.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;What I'm doing:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;void ClockModify( uint32_t MValue, uint32_t PValue) {&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; /* 1. make sure the PLL output is not already being used */&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; LPC_SC-&amp;gt;CLKSRCSEL = LPC_SC_CLKSRCSEL_CLKSRC_RC; /* set internal RC as clock source */&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; LPC_SC-&amp;gt;PLL0CON = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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 PLL0 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; pll0_feed();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Apply modify in clock PLL0&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; LPC_SC-&amp;gt;SCS |= (1 &amp;lt;&amp;lt; 5);&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; while(((LPC_SC-&amp;gt;SCS &amp;amp; (1 &amp;lt;&amp;lt; 6)) == 0));&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* wait for main oscillator to start up */&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; LPC_SC-&amp;gt;CLKSRCSEL = LPC_SC_CLKSRCSEL_CLKSRC_MAIN;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; LPC_SC-&amp;gt;PLL0CFG = (MValue &amp;lt;&amp;lt; 0) | (PValue &amp;lt;&amp;lt; 5);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; pll0_feed();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Apply modify in clock PLL0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;BR /&gt;&lt;SPAN&gt;&amp;nbsp; LPC_SC-&amp;gt;PLL0CON = 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; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; pll0_feed();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Apply modify in clock PLL0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;BR /&gt;&lt;SPAN&gt;&amp;nbsp; /* 4. set up clock dividers */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; LPC_SC-&amp;gt;CCLKSEL = (1 &amp;lt;&amp;lt; 0);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; /* 5. wait for PLL to lock */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; while( ((LPC_SC-&amp;gt;PLL0STAT &amp;amp; (1 &amp;lt;&amp;lt; 10)) == 0) );&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; LPC_SC-&amp;gt;CCLKSEL |= (1 &amp;lt;&amp;lt; 8);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; pll0_feed(); &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Help?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 17:27:02 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Modify-Clock-with-PLL0-in-operation/m-p/517106#M2010</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T17:27:02Z</dc:date>
    </item>
    <item>
      <title>Re: Modify Clock with PLL0 in operation</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Modify-Clock-with-PLL0-in-operation/m-p/517107#M2011</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by MikeSimmonds on Mon Nov 17 12:15:36 MST 2014&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;A little confusion between CCLKSEL and CLKSRCSEL it seems.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;You need to select 'sysclk' for the CPU clock first of all&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Step 0: Switch away from the PLL&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_SC-&amp;gt;CCLKSEL = (0 &amp;lt;&amp;lt; 8)+(1&amp;lt;&amp;lt;0)&amp;nbsp; // select sysclk (and not PLL0) for cpu clk&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;(I'm not sure what the equates are, so I use actual numbers.)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Also for USBCLKSEL and SPFICLKSEL if you use these&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;As you were already running off the main oscillator, you do not need to restart and wait for the main oscillator&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;And you don't want to change the CLKSRCSEL away and then back to the main oscillator&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Step 2:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_SC-&amp;gt;PLL0CON = 0; // disable PLL0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;pll0_feed(); // Apply modify in clock PLL0 &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Step 3: Re-configure the PLL&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_SC-&amp;gt;PLL0CFG = (MValue &amp;lt;&amp;lt; 0) | (PValue &amp;lt;&amp;lt; 5);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_SC-&amp;gt;PLL0CON = 1;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;pll0_feed(); // Apply modify in clock PLL0 only the one feed sequence needed&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;while&amp;nbsp; ((LPC_SC-&amp;gt;PLL0STAT &amp;amp; (1 &amp;lt;&amp;lt; 10)) == 0)&amp;nbsp; ;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Step 4: apply stable locked PLL output to system&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_SC-&amp;gt;CCLKSEL = (1 &amp;lt;&amp;lt; 8)+(1&amp;lt;&amp;lt;0)&amp;nbsp; // select PLL0 (and not sysclk) for cpu clk&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;and USB, SPIFI if reqd.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Hope this helps, MIke&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 17:27:03 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Modify-Clock-with-PLL0-in-operation/m-p/517107#M2011</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T17:27:03Z</dc:date>
    </item>
    <item>
      <title>Re: Modify Clock with PLL0 in operation</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Modify-Clock-with-PLL0-in-operation/m-p/517108#M2012</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by MikeSimmonds on Mon Nov 17 13:36:55 MST 2014&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Also, if you change the clock speed, you may need to adjust the pCLK dividers&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;and you WILL have to re-initialise any peripherals you use that set a working speed based on the PCLK.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;E.g. UARTS, SPI, I2C, ADC, EMC, ... probably just about everything!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Mike&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 17:27:03 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Modify-Clock-with-PLL0-in-operation/m-p/517108#M2012</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T17:27:03Z</dc:date>
    </item>
    <item>
      <title>Re: Modify Clock with PLL0 in operation</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Modify-Clock-with-PLL0-in-operation/m-p/517109#M2013</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Cleiton Bueno on Tue Nov 18 13:16:47 MST 2014&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;OK, was my confusion, thank you Mike.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Now I will work on my peripherals, a part already OK.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 17:27:04 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Modify-Clock-with-PLL0-in-operation/m-p/517109#M2013</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T17:27:04Z</dc:date>
    </item>
  </channel>
</rss>

