<?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>LPC MicrocontrollersのトピックLPC55S69 USB1 HS PHY PLL initialization</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC55S69-USB1-HS-PHY-PLL-initialization/m-p/2172921#M58784</link>
    <description>&lt;P&gt;The documentation (UM11126, Rev. 2.8, Table 850) says for Bit 21&amp;nbsp;PLL_REG_ENABLE:&lt;/P&gt;&lt;P&gt;SW must set this bit &lt;STRONG&gt;15 us before settiing PLL_POWER&lt;/STRONG&gt; to avoid glitches on PLL output clock.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;When I look in the source code of the the SDK (Version 25.6.0) into fsl_clock.c:&lt;BR /&gt;2045 │ /* Enable USB PHY clock */&lt;BR /&gt;2046 │ bool CLOCK_EnableUsbhs0PhyPllClock(clock_usb_phy_src_t src, uint32_t freq)&lt;BR /&gt;&lt;SPAN&gt;....&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;2120 │ USBPHY-&amp;gt;PLL_SIC = (USBPHY-&amp;gt;PLL_SIC &amp;amp; ~USBPHY_PLL_SIC_PLL_DIV_SEL(0x7)) | phyPllDiv;&lt;BR /&gt;2121 │ USBPHY-&amp;gt;PLL_SIC_SET = USBPHY_PLL_SIC_SET_PLL_REG_ENABLE_MASK;&lt;BR /&gt;2122 │ USBPHY-&amp;gt;PLL_SIC_CLR = (1UL &amp;lt;&amp;lt; 16U); // Reserved. User must set this bit to 0x0&lt;BR /&gt;2123 │ USBPHY-&amp;gt;PLL_SIC_SET = USBPHY_PLL_SIC_SET_PLL_POWER_MASK;&lt;BR /&gt;2124 │ USBPHY-&amp;gt;PLL_SIC_SET = USBPHY_PLL_SIC_SET_PLL_EN_USB_CLKS_MASK;&lt;BR /&gt;2125 │&lt;BR /&gt;2126 │ USBPHY-&amp;gt;CTRL_CLR = USBPHY_CTRL_CLR_CLKGATE_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;PLL_REG_ENABLE is set in line 2121 and PLL_POWER is set in line 2123 with no regard for the 15 us time delay required in the user manual. Is this function in fsl_clock.c flawed or am I missing something?&lt;/SPAN&gt;&lt;/P&gt;</description>
    <pubDate>Fri, 19 Sep 2025 18:15:25 GMT</pubDate>
    <dc:creator>pettel</dc:creator>
    <dc:date>2025-09-19T18:15:25Z</dc:date>
    <item>
      <title>LPC55S69 USB1 HS PHY PLL initialization</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC55S69-USB1-HS-PHY-PLL-initialization/m-p/2172921#M58784</link>
      <description>&lt;P&gt;The documentation (UM11126, Rev. 2.8, Table 850) says for Bit 21&amp;nbsp;PLL_REG_ENABLE:&lt;/P&gt;&lt;P&gt;SW must set this bit &lt;STRONG&gt;15 us before settiing PLL_POWER&lt;/STRONG&gt; to avoid glitches on PLL output clock.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;When I look in the source code of the the SDK (Version 25.6.0) into fsl_clock.c:&lt;BR /&gt;2045 │ /* Enable USB PHY clock */&lt;BR /&gt;2046 │ bool CLOCK_EnableUsbhs0PhyPllClock(clock_usb_phy_src_t src, uint32_t freq)&lt;BR /&gt;&lt;SPAN&gt;....&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;2120 │ USBPHY-&amp;gt;PLL_SIC = (USBPHY-&amp;gt;PLL_SIC &amp;amp; ~USBPHY_PLL_SIC_PLL_DIV_SEL(0x7)) | phyPllDiv;&lt;BR /&gt;2121 │ USBPHY-&amp;gt;PLL_SIC_SET = USBPHY_PLL_SIC_SET_PLL_REG_ENABLE_MASK;&lt;BR /&gt;2122 │ USBPHY-&amp;gt;PLL_SIC_CLR = (1UL &amp;lt;&amp;lt; 16U); // Reserved. User must set this bit to 0x0&lt;BR /&gt;2123 │ USBPHY-&amp;gt;PLL_SIC_SET = USBPHY_PLL_SIC_SET_PLL_POWER_MASK;&lt;BR /&gt;2124 │ USBPHY-&amp;gt;PLL_SIC_SET = USBPHY_PLL_SIC_SET_PLL_EN_USB_CLKS_MASK;&lt;BR /&gt;2125 │&lt;BR /&gt;2126 │ USBPHY-&amp;gt;CTRL_CLR = USBPHY_CTRL_CLR_CLKGATE_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;PLL_REG_ENABLE is set in line 2121 and PLL_POWER is set in line 2123 with no regard for the 15 us time delay required in the user manual. Is this function in fsl_clock.c flawed or am I missing something?&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 19 Sep 2025 18:15:25 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC55S69-USB1-HS-PHY-PLL-initialization/m-p/2172921#M58784</guid>
      <dc:creator>pettel</dc:creator>
      <dc:date>2025-09-19T18:15:25Z</dc:date>
    </item>
    <item>
      <title>Re: LPC55S69 USB1 HS PHY PLL initialization</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC55S69-USB1-HS-PHY-PLL-initialization/m-p/2173232#M58787</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/244769"&gt;@pettel&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I have reviewed both the UM11126 and the SDK&amp;nbsp; implementation for enabling the USB PHY PLL.&lt;BR /&gt;According to the UM, software must set the PLL_REG_ENABLE bit at least 15 microseconds before setting PLL_POWER to avoid glitches on the PLL output clock:&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ZhangJennie_0-1758513929134.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/357869iA2D2E338DCD01848/image-size/medium?v=v2&amp;amp;px=400" role="button" title="ZhangJennie_0-1758513929134.png" alt="ZhangJennie_0-1758513929134.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;However, in the current SDK implementation (fsl_clock.c), PLL_REG_ENABLE and PLL_POWER are set consecutively without any delay in between.&lt;/P&gt;
&lt;P&gt;To ensure reliable operation, I suggest adding a 15-microsecond delay between setting PLL_REG_ENABLE and PLL_POWER.&lt;/P&gt;
&lt;P&gt;I will report it to the SDK team meanwhile. Thank you so much for bringing the problem to our attention.&lt;/P&gt;
&lt;P&gt;Best Regards&lt;/P&gt;
&lt;P&gt;Jun Zhang&lt;/P&gt;</description>
      <pubDate>Mon, 22 Sep 2025 04:12:36 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC55S69-USB1-HS-PHY-PLL-initialization/m-p/2173232#M58787</guid>
      <dc:creator>ZhangJennie</dc:creator>
      <dc:date>2025-09-22T04:12:36Z</dc:date>
    </item>
  </channel>
</rss>

