<?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 LPC11U23 fails to lock PLL with IRC as PLL source in LPC Microcontrollers</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC11U23-fails-to-lock-PLL-with-IRC-as-PLL-source/m-p/527161#M9328</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by crawford on Sun Feb 08 16:00:16 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;I have a custom board with an LPC11U23F and an external 12Mhz crystal. I ran into trouble getting the PLL to lock on the external crystal so I decided to try using the IRC for now. Unfortunately, it seems that it won't lock on the IRC either! I can use the IRC directly as my main clock source, so I know there is nothing wrong with the IRC itself. I'm reasonably sure this is just some silly software misconfiguration but I could use another set of eyes.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This is the (inlined) code that I am using to initialize the clock:&lt;/SPAN&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;
void Chip_SystemInit(void)
{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* IRC should be powered up */
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Chip_SYSCTL_PowerUp(SYSCTL_POWERDOWN_IRC_PD);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SYSCTL-&amp;gt;PDRUNCFG &amp;amp;= ~(1 &amp;lt;&amp;lt; 1);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Chip_SYSCTL_PowerUp(SYSCTL_POWERDOWN_IRCOUT_PD);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SYSCTL-&amp;gt;PDRUNCFG &amp;amp;= ~(1 &amp;lt;&amp;lt; 0);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Set system PLL input to IRC */
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Chip_Clock_SetSystemPLLSource(SYSCTL_PLLCLKSRC_IRC);
LPC_SYSCTL-&amp;gt;SYSPLLCLKSEL&amp;nbsp; = 0;
LPC_SYSCTL-&amp;gt;SYSPLLCLKUEN&amp;nbsp; = 0;
LPC_SYSCTL-&amp;gt;SYSPLLCLKUEN&amp;nbsp; = 1;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Power down PLL to change the PLL divider ratio */
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Chip_SYSCTL_PowerDown(SYSCTL_POWERDOWN_SYSPLL_PD);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SYSCTL-&amp;gt;PDRUNCFG |= (1 &amp;lt;&amp;lt; 7);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Setup PLL for main oscillator rate (FCLKIN = 12MHz) * 4 = 48MHz */
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Chip_Clock_SetupSystemPLL(3, 1);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SYSCTL-&amp;gt;SYSPLLCTRL = 0x23;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Powerup system PLL */
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Chip_SYSCTL_PowerUp(SYSCTL_POWERDOWN_SYSPLL_PD);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SYSCTL-&amp;gt;PDRUNCFG &amp;amp;= ~(1 &amp;lt;&amp;lt; 7);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Wait for PLL to lock (never locks) */
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // while (!Chip_Clock_IsSystemPLLLocked()) {}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while ((LPC_SYSCTL-&amp;gt;SYSPLLSTAT &amp;amp; 1) == 0);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ...
}
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 15 Jun 2016 19:26:00 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-15T19:26:00Z</dc:date>
    <item>
      <title>LPC11U23 fails to lock PLL with IRC as PLL source</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC11U23-fails-to-lock-PLL-with-IRC-as-PLL-source/m-p/527161#M9328</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by crawford on Sun Feb 08 16:00:16 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;I have a custom board with an LPC11U23F and an external 12Mhz crystal. I ran into trouble getting the PLL to lock on the external crystal so I decided to try using the IRC for now. Unfortunately, it seems that it won't lock on the IRC either! I can use the IRC directly as my main clock source, so I know there is nothing wrong with the IRC itself. I'm reasonably sure this is just some silly software misconfiguration but I could use another set of eyes.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This is the (inlined) code that I am using to initialize the clock:&lt;/SPAN&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;
void Chip_SystemInit(void)
{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* IRC should be powered up */
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Chip_SYSCTL_PowerUp(SYSCTL_POWERDOWN_IRC_PD);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SYSCTL-&amp;gt;PDRUNCFG &amp;amp;= ~(1 &amp;lt;&amp;lt; 1);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Chip_SYSCTL_PowerUp(SYSCTL_POWERDOWN_IRCOUT_PD);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SYSCTL-&amp;gt;PDRUNCFG &amp;amp;= ~(1 &amp;lt;&amp;lt; 0);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Set system PLL input to IRC */
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Chip_Clock_SetSystemPLLSource(SYSCTL_PLLCLKSRC_IRC);
LPC_SYSCTL-&amp;gt;SYSPLLCLKSEL&amp;nbsp; = 0;
LPC_SYSCTL-&amp;gt;SYSPLLCLKUEN&amp;nbsp; = 0;
LPC_SYSCTL-&amp;gt;SYSPLLCLKUEN&amp;nbsp; = 1;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Power down PLL to change the PLL divider ratio */
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Chip_SYSCTL_PowerDown(SYSCTL_POWERDOWN_SYSPLL_PD);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SYSCTL-&amp;gt;PDRUNCFG |= (1 &amp;lt;&amp;lt; 7);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Setup PLL for main oscillator rate (FCLKIN = 12MHz) * 4 = 48MHz */
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Chip_Clock_SetupSystemPLL(3, 1);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SYSCTL-&amp;gt;SYSPLLCTRL = 0x23;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Powerup system PLL */
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Chip_SYSCTL_PowerUp(SYSCTL_POWERDOWN_SYSPLL_PD);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SYSCTL-&amp;gt;PDRUNCFG &amp;amp;= ~(1 &amp;lt;&amp;lt; 7);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Wait for PLL to lock (never locks) */
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // while (!Chip_Clock_IsSystemPLLLocked()) {}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while ((LPC_SYSCTL-&amp;gt;SYSPLLSTAT &amp;amp; 1) == 0);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ...
}
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 19:26:00 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC11U23-fails-to-lock-PLL-with-IRC-as-PLL-source/m-p/527161#M9328</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T19:26:00Z</dc:date>
    </item>
    <item>
      <title>Re: LPC11U23 fails to lock PLL with IRC as PLL source</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC11U23-fails-to-lock-PLL-with-IRC-as-PLL-source/m-p/527162#M9329</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by crawford on Sat Feb 14 22:18:50 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;I haven't made any headway on this issue. I'm able to reproduce the issue on multiple boards which leads me to believe that it's not a hardware problem. Can anyone post a snippet of their initialization code for me to compare against?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 19:26:01 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC11U23-fails-to-lock-PLL-with-IRC-as-PLL-source/m-p/527162#M9329</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T19:26:01Z</dc:date>
    </item>
    <item>
      <title>Re: LPC11U23 fails to lock PLL with IRC as PLL source</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC11U23-fails-to-lock-PLL-with-IRC-as-PLL-source/m-p/527163#M9330</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by R2D2 on Sun Feb 15 14:24:28 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: crawford&lt;/STRONG&gt;&lt;BR /&gt;... a snippet of their initialization code for me to compare against?&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;LPCOpen init should be a good point to start&amp;nbsp; &lt;SPAN class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;&lt;LI-EMOJI id="lia_slightly-smiling-face" title=":slightly_smiling_face:"&gt;&lt;/LI-EMOJI&gt;&lt;/SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Here's what I'm using for LPC11Cxx 48MHz from IRC:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;
/* PDRUNCFG register mask */
#if defined(CHIP_LPC11AXX)
#define PDRUNCFGUSEMASK 0x00000D08
#define PDRUNCFGMASKTMP 0x0001E0F7
#elif defined(CHIP_LPC11UXX)
#define PDRUNCFGUSEMASK 0x0000E800
#define PDRUNCFGMASKTMP 0x000005FF
#elif defined(CHIP_LPC1125)
#define PDRUNCFGUSEMASK 0x0000ED00
#define PDRUNCFGMASKTMP 0x000000FF
#else
#define PDRUNCFGUSEMASK 0x0000ED00
#define PDRUNCFGMASKTMP 0x000000FF
#endif


void setup_clock(void)
{
 uint32_t temp;
 //set main clock to IRC
 LPC_SYSCTL-&amp;gt;MAINCLKSEL&amp;nbsp; = 0;
 LPC_SYSCTL-&amp;gt;MAINCLKUEN&amp;nbsp; = 0;
 LPC_SYSCTL-&amp;gt;MAINCLKUEN&amp;nbsp; = 1;
 //PLL source: IRC
 LPC_SYSCTL-&amp;gt;SYSPLLCLKSEL&amp;nbsp; = 0;//IRC
 LPC_SYSCTL-&amp;gt;SYSPLLCLKUEN&amp;nbsp; = 0;
 LPC_SYSCTL-&amp;gt;SYSPLLCLKUEN&amp;nbsp; = 1;
 //power down PLL to change the PLL divider
 temp = LPC_SYSCTL-&amp;gt;PDRUNCFG &amp;amp; PDRUNCFGMASKTMP;
 temp |= ((1&amp;lt;&amp;lt;7) &amp;amp; PDRUNCFGMASKTMP);
 LPC_SYSCTL-&amp;gt;PDRUNCFG = (temp | PDRUNCFGUSEMASK);
 //set PLL
 LPC_SYSCTL-&amp;gt;SYSPLLCTRL = (3 &amp;amp; 0x1F) | ((1 &amp;amp; 0x3) &amp;lt;&amp;lt; 5);
 //power up PLL again
 temp = LPC_SYSCTL-&amp;gt;PDRUNCFG &amp;amp; PDRUNCFGMASKTMP;
 temp &amp;amp;= ~((1&amp;lt;&amp;lt;7) &amp;amp; PDRUNCFGMASKTMP);
 LPC_SYSCTL-&amp;gt;PDRUNCFG = (temp | PDRUNCFGUSEMASK);
 //wait until PLL is locked
 while ((LPC_SYSCTL-&amp;gt;SYSPLLSTAT &amp;amp; 1) == 0);
 //set clock div
 LPC_SYSCTL-&amp;gt;SYSAHBCLKDIV&amp;nbsp; = 1;
 //Chip_FMC_SetFLASHAccess(FLASHTIM_50MHZ_CPU);
 temp = LPC_FMC-&amp;gt;FLASHTIM &amp;amp; (~(0x3));
 LPC_FMC-&amp;gt;FLASHTIM = temp | 2;
 //set main clock to PLL out
 LPC_SYSCTL-&amp;gt;MAINCLKSEL&amp;nbsp; = 3;
 LPC_SYSCTL-&amp;gt;MAINCLKUEN&amp;nbsp; = 0;
 LPC_SYSCTL-&amp;gt;MAINCLKUEN&amp;nbsp; = 1;
}
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 19:26:02 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC11U23-fails-to-lock-PLL-with-IRC-as-PLL-source/m-p/527163#M9330</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T19:26:02Z</dc:date>
    </item>
    <item>
      <title>Re: LPC11U23 fails to lock PLL with IRC as PLL source</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC11U23-fails-to-lock-PLL-with-IRC-as-PLL-source/m-p/527164#M9331</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by crawford on Sun Feb 15 15:25:38 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Fantastic! This works. Thank you.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;My code is from LPCOpen 2.03 and it doesn't seem to work. I'm going to dig into this more and figure out the difference.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 19:26:02 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC11U23-fails-to-lock-PLL-with-IRC-as-PLL-source/m-p/527164#M9331</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T19:26:02Z</dc:date>
    </item>
    <item>
      <title>Re: LPC11U23 fails to lock PLL with IRC as PLL source</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC11U23-fails-to-lock-PLL-with-IRC-as-PLL-source/m-p/527165#M9332</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by crawford on Sun Feb 15 18:32:19 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Well, it turns out there is no functional difference... As it happened, I have a handful of boards that cannot lock the PLL with either code. The board I happened to use for your test worked (and it works for the original code as well). Thanks for removing one of the variables. Now I know that's it's a hardware issue.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 19:26:03 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC11U23-fails-to-lock-PLL-with-IRC-as-PLL-source/m-p/527165#M9332</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T19:26:03Z</dc:date>
    </item>
  </channel>
</rss>

