<?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 PLL in LCP1788 not working in LPC Microcontrollers</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/PLL-in-LCP1788-not-working/m-p/777736#M31280</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi all,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am working on a project that utilizes LPC1788 MCU. I am using LPCOpen library.&lt;/P&gt;&lt;P&gt;I want to run it at 120 MHz clock speed. Function Chip_SetupIrcClocking(); is called code to set 120 MHz freq.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;void Chip_SetupIrcClocking(void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Clock the CPU from SYSCLK, in case if it is clocked by PLL0 */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_Clock_SetCPUClockSource(SYSCTL_CCLKSRC_SYSCLK);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Disable the PLL if it is enabled */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (Chip_Clock_IsMainPLLEnabled()) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_Clock_DisablePLL(SYSCTL_MAIN_PLL, SYSCTL_PLL_ENABLE);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* It is safe to switch the PLL Source to IRC */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_Clock_SetMainPLLSource(SYSCTL_PLLCLKSRC_IRC);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* FCCO = 12MHz * (9+1) * 2 * (0+1) = 240MHz */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Fout = FCCO / ((0+1) * 2) = 120MHz */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_Clock_SetupPLL(SYSCTL_MAIN_PLL, 9, 0);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_Clock_EnablePLL(SYSCTL_MAIN_PLL, SYSCTL_PLL_ENABLE);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_Clock_SetCPUClockDiv(1);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;while (!Chip_Clock_IsMainPLLLocked()) {} /* Wait for the PLL to Lock */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_Clock_SetCPUClockSource(SYSCTL_CCLKSRC_MAINPLL);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Peripheral clocking will be derived from PLL0 with a divider of 2 (60MHz) */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_Clock_SetPCLKDiv(1);&lt;BR /&gt;}&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have not changed in this function. It shows it sets multipler and per-scaler to proper values to get 120 MHz freq.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;Chip_SYSCTL_EnableBoost();&lt;/P&gt;&lt;P&gt;Chip_SetupIrcClocking();&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;But MCU still runs on 12 MHz.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have verified by checking SystemCoreClock variable. It shows 12000000 value.&lt;/P&gt;&lt;P&gt;I have also verified using test code as below:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dprintf(UART_DEBUG_PORT, "START\r\n");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(int i = 0; i &amp;lt; 120 * 1000* 1000; i++) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;asm("nop");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dprintf(UART_DEBUG_PORT, "END\r\n");&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If MCU is running on 120 MHz it should take around 1 second to execute the code. But it takes around 10 seconds to execute. Which shows it is running on 12 MHz clock.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have also tried to External Crystal but no luck. Any idea or suggestions ??&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 27 Feb 2018 17:43:04 GMT</pubDate>
    <dc:creator>thinkuvpce</dc:creator>
    <dc:date>2018-02-27T17:43:04Z</dc:date>
    <item>
      <title>PLL in LCP1788 not working</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/PLL-in-LCP1788-not-working/m-p/777736#M31280</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi all,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am working on a project that utilizes LPC1788 MCU. I am using LPCOpen library.&lt;/P&gt;&lt;P&gt;I want to run it at 120 MHz clock speed. Function Chip_SetupIrcClocking(); is called code to set 120 MHz freq.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;void Chip_SetupIrcClocking(void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Clock the CPU from SYSCLK, in case if it is clocked by PLL0 */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_Clock_SetCPUClockSource(SYSCTL_CCLKSRC_SYSCLK);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Disable the PLL if it is enabled */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (Chip_Clock_IsMainPLLEnabled()) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_Clock_DisablePLL(SYSCTL_MAIN_PLL, SYSCTL_PLL_ENABLE);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* It is safe to switch the PLL Source to IRC */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_Clock_SetMainPLLSource(SYSCTL_PLLCLKSRC_IRC);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* FCCO = 12MHz * (9+1) * 2 * (0+1) = 240MHz */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Fout = FCCO / ((0+1) * 2) = 120MHz */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_Clock_SetupPLL(SYSCTL_MAIN_PLL, 9, 0);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_Clock_EnablePLL(SYSCTL_MAIN_PLL, SYSCTL_PLL_ENABLE);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_Clock_SetCPUClockDiv(1);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;while (!Chip_Clock_IsMainPLLLocked()) {} /* Wait for the PLL to Lock */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_Clock_SetCPUClockSource(SYSCTL_CCLKSRC_MAINPLL);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Peripheral clocking will be derived from PLL0 with a divider of 2 (60MHz) */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_Clock_SetPCLKDiv(1);&lt;BR /&gt;}&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have not changed in this function. It shows it sets multipler and per-scaler to proper values to get 120 MHz freq.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;Chip_SYSCTL_EnableBoost();&lt;/P&gt;&lt;P&gt;Chip_SetupIrcClocking();&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;But MCU still runs on 12 MHz.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have verified by checking SystemCoreClock variable. It shows 12000000 value.&lt;/P&gt;&lt;P&gt;I have also verified using test code as below:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dprintf(UART_DEBUG_PORT, "START\r\n");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(int i = 0; i &amp;lt; 120 * 1000* 1000; i++) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;asm("nop");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dprintf(UART_DEBUG_PORT, "END\r\n");&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If MCU is running on 120 MHz it should take around 1 second to execute the code. But it takes around 10 seconds to execute. Which shows it is running on 12 MHz clock.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have also tried to External Crystal but no luck. Any idea or suggestions ??&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 27 Feb 2018 17:43:04 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/PLL-in-LCP1788-not-working/m-p/777736#M31280</guid>
      <dc:creator>thinkuvpce</dc:creator>
      <dc:date>2018-02-27T17:43:04Z</dc:date>
    </item>
    <item>
      <title>Re: PLL in LCP1788 not working</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/PLL-in-LCP1788-not-working/m-p/777737#M31281</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;DIV style="white-space: pre-wrap; text-align: left; line-height: 1.75; font-size: 14px;"&gt;&lt;SPAN style="font-family: 'Microsoft YaHei', STXihei; background-color: #ffffff;"&gt;Thank you for your interest in NXP Semiconductor products and&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV style="white-space: pre-wrap; text-align: left; line-height: 1.75; font-size: 14px;"&gt;&lt;SPAN style="font-family: 'Microsoft YaHei', STXihei; background-color: #ffffff;"&gt;the opportunity to serve you.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You can use the periph_clkout demo to check that whether the frequency of system clock is expected.&lt;/P&gt;&lt;P&gt;Have a great day,&lt;BR /&gt;TIC&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>Mon, 05 Mar 2018 02:17:51 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/PLL-in-LCP1788-not-working/m-p/777737#M31281</guid>
      <dc:creator>jeremyzhou</dc:creator>
      <dc:date>2018-03-05T02:17:51Z</dc:date>
    </item>
  </channel>
</rss>

