<?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: KL81 clock hang after enabling USB Bootloader</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/KL81-clock-hang-after-enabling-USB-Bootloader/m-p/1693538#M65327</link>
    <description>&lt;P&gt;Hello &lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/217713"&gt;@SynapticLathe&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;Relating the use of&lt;EM&gt; CLOCK_SetPeeMode()&lt;/EM&gt;, please continue to use &lt;EM&gt;CLOCK_SetPbeMode()&lt;/EM&gt; as it is necessary for &lt;EM&gt;CLOCK_BootToPeeMode()&lt;/EM&gt; to work.&lt;/P&gt;
&lt;P&gt;Also, could you please change the following values of the BCA?&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&amp;nbsp;.peripheralDetectionTimeoutMs = FFFFU (5s)&lt;/LI&gt;
&lt;LI&gt;.clockFlags = 0x00 (Clear the clockFlags bit for HighSpeed)&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;What other differences do you have between the custom board and FDRM-KL82?&amp;nbsp;In the FDRM-KL82 could you please try with another example that is not QSPI related? Could be a &lt;EM&gt;led_blinky&lt;/EM&gt; example.&lt;/P&gt;
&lt;P&gt;Finally, regarding your bootloader, could you please share us how are you exiting the bootloader and jumping to the application? Are you using MCU Boot?&lt;/P&gt;
&lt;P&gt;Best regards, Raul.&lt;/P&gt;</description>
    <pubDate>Wed, 26 Jul 2023 22:40:16 GMT</pubDate>
    <dc:creator>RaRo</dc:creator>
    <dc:date>2023-07-26T22:40:16Z</dc:date>
    <item>
      <title>KL81 clock hang after enabling USB Bootloader</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/KL81-clock-hang-after-enabling-USB-Bootloader/m-p/1687942#M65297</link>
      <description>&lt;P&gt;&lt;SPAN&gt;In trying to use the ROM Bootloader on the KL81 over USB, we're running into the chip failing to transition to PEE clock mode. &amp;nbsp;This results in the post-bootloader initialization code sometimes becoming permanently stuck in an infinite loop.&amp;nbsp; Performing a hardware reset of the chip restarts everything, sometimes causing the same issue to reproduce. &amp;nbsp;The problem reproduces ~60% of the time.&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV&gt;An almost identical issue has been described in errata ERR009879 "ROM Bootloader: User code may fail to transition to FEE clock mode after booting from ROM" which is listed in KINETIS_L_0N51R.pdf. &amp;nbsp;It listed 3 potential workarounds. &amp;nbsp;However, while the 1st work-around is the ideal option, it does &lt;STRONG&gt;not&lt;/STRONG&gt; fix the issue in this case. &amp;nbsp;The other 2 workarounds are "don't use USB in the bootloader" and "don't transition the clock to FEE mode" which are less than ideal.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;The 1st workaround says that instead of configuring FOPT[BOOTSRC_SEL] to binary 11 to instead use 10 (or use 00 but that disables the bootloader entirely). &amp;nbsp;FOPT is located in internal FLASH at address 0x40d and the BOOTSRC_SEL field is bits 7 and 6.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Details:&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;FOPT byte value at address 0x40D is currently set to 0xBF (thus, bits 7 and 6 are set to binary 10).&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;BCA (Bootloader Configuration Area) at address 0x3C0 is set to the following values:&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="terminal,monaco" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; .tag &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= 0x6766636BU, /* Magic Number */&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="terminal,monaco" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; .crcStartAddress &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= 0xFFFFFFFFU, /* Disable CRC check */&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="terminal,monaco" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; .crcByteCount &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = 0xFFFFFFFFU, /* Disable CRC check */&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="terminal,monaco" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; .crcExpectedValue &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = 0xFFFFFFFFU, /* Disable CRC check */&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="terminal,monaco" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; .enabledPeripherals &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = 0x10, &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* Enable only USB peripheral */&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="terminal,monaco" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; .i2cSlaveAddress &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= 0xFF, &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* Use default I2C address */&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="terminal,monaco" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; .peripheralDetectionTimeoutMs = 3000U, &amp;nbsp; &amp;nbsp; /* Use 3.0s timeout */&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="terminal,monaco" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; .usbVid &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = 0xFFFFU, &amp;nbsp; &amp;nbsp; /* Use default USB Vendor ID */&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="terminal,monaco" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; .usbPid &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = 0xFFFFU, &amp;nbsp; &amp;nbsp; /* Use default USB Product ID */&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="terminal,monaco" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; .usbStringsPointer &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= 0xFFFFFFFFU, /* Use default USB Strings */&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="terminal,monaco" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; .clockFlags &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = 0x01, &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* Enable High speed mode */&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="terminal,monaco" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; .clockDivider &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = 0xFF, &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* Use clock divider 1 */&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="terminal,monaco" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; .bootFlags &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= 0x01, &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* Enable communication with host */&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="terminal,monaco" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; .keyBlobPointer &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = 0xFFFFFFFFU, /* No keyblob data */&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="terminal,monaco" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; .qspiConfigBlockPtr &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = 0xFFFFFFFFU &amp;nbsp;/* No QSPI configuration */&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="terminal,monaco" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; /* All reserved fields initialized to 0 */&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;After the bootloader times out, main() starts executing and calls BOARD_BootClockRUN() after initializing the board's pins. &amp;nbsp;BOARD_BootClockRUN() calls multiple functions but the call stack where it hangs is that it calls CLOCK_BootToPeeMode(), which in turn calls CLOCK_SetPbeMode(). &amp;nbsp;This last function sets some MCG registers and sometimes waits forever for the clock status register bit, MCG_S[IREFST], to change to 0 (so source of FLL is external) but it remains stuck at 1.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;P&gt;&lt;SPAN&gt;For the 1st work-around, are other steps necessary to get it to work?&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 13 Jul 2023 22:09:35 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/KL81-clock-hang-after-enabling-USB-Bootloader/m-p/1687942#M65297</guid>
      <dc:creator>SynapticLathe</dc:creator>
      <dc:date>2023-07-13T22:09:35Z</dc:date>
    </item>
    <item>
      <title>Re: KL81 clock hang after enabling USB Bootloader</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/KL81-clock-hang-after-enabling-USB-Bootloader/m-p/1691531#M65309</link>
      <description>&lt;P class="lia-align-justify"&gt;Hello &lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/217713"&gt;@SynapticLathe&lt;/a&gt;,&lt;/P&gt;
&lt;P class="lia-align-justify"&gt;First of all, let us apologize for the late reponse.&lt;/P&gt;
&lt;P class="lia-align-justify"&gt;Just for double check, could you please check if by using the other workarounds the stuck issue is solved?&lt;/P&gt;
&lt;P class="lia-align-justify"&gt;You are mentioning that the program got stuck in MCG_S[IREFST], could you please tell us if you are using an external or an internal reference clock?&lt;/P&gt;
&lt;P class="lia-align-justify"&gt;Also, have you done some modification to &lt;EM&gt;BOARD_BootClockRUN()&lt;/EM&gt; or &lt;EM&gt;CLOCK_BootToPeeMode()&lt;/EM&gt; functions or variables related to them? Which PLL output clock are you selecting and &lt;EM&gt;CLOCK_BootToPeeMode()&lt;/EM&gt; configuration do you have?&lt;/P&gt;
&lt;P class="lia-align-justify"&gt;Finally, you are mentioning that you want to use PEE mode, could you please use &lt;EM&gt;CLOCK_SetPeeMode()&lt;/EM&gt; instead of &lt;EM&gt;CLOCK_SetPbeMode()&lt;/EM&gt; and configure it as mentioned in KL81 Sub-Family Reference Manual. Chapter 29.5.1.1. MCG modes of operation?&lt;/P&gt;
&lt;P class="lia-align-justify"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="RaulRomero_0-1690221454848.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/233312i491D73D83501D303/image-size/medium?v=v2&amp;amp;px=400" role="button" title="RaulRomero_0-1690221454848.png" alt="RaulRomero_0-1690221454848.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P class="lia-align-justify"&gt;[KL81 Sub-Family RM. Table 29-4. MCG modes of operation]&lt;/P&gt;
&lt;P class="lia-align-justify"&gt;Best regards, Raul.&lt;/P&gt;</description>
      <pubDate>Mon, 24 Jul 2023 18:00:06 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/KL81-clock-hang-after-enabling-USB-Bootloader/m-p/1691531#M65309</guid>
      <dc:creator>RaRo</dc:creator>
      <dc:date>2023-07-24T18:00:06Z</dc:date>
    </item>
    <item>
      <title>Re: KL81 clock hang after enabling USB Bootloader</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/KL81-clock-hang-after-enabling-USB-Bootloader/m-p/1691609#M65312</link>
      <description>&lt;P&gt;Regarding the other work-arounds:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;Work-around #2 (i.e., don't use USB for the ROM Bootloader) does fix the problem.&lt;/LI&gt;&lt;LI&gt;Work-around #3 (i.e., don't transition to FEE mode) was only partially investigated.&amp;nbsp; Unclear whether would fix the problem or whether it might break something else.&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;We're using an external clock.&lt;/P&gt;&lt;P&gt;No modifications have been made to &lt;EM&gt;BOARD_BootClockRUN&lt;/EM&gt;()&amp;nbsp;or &lt;EM&gt;CLOCK_BootToPeeMode&lt;/EM&gt;() functions nor to their related&lt;SPAN&gt;&amp;nbsp;variables.&amp;nbsp; For reference, the config code is provided below.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;We&amp;nbsp;&lt;EM&gt;could&lt;/EM&gt; try using CLOCK_SetPeeMode(), but should point out that this would be making code changes to&amp;nbsp;&lt;/SPAN&gt;CLOCK_BootToPeeMode&lt;SPAN&gt;() that is in fsl_clock.c whose implementation comes from the FRDM-KL82Z SDK.&amp;nbsp; The SDK version of CLOCK_BootToPeeMode() calls CLOCK_SetToPbeMode().&amp;nbsp; Would doing such an edit of an SDK file cause other unintended consequences for the clocks?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;There is an update and a &lt;EM&gt;correction&lt;/EM&gt; on this issue, so hopefully this does not cause any confusion.&amp;nbsp; This issue is occurring with the KL82, not the KL81.&amp;nbsp; Essentially, there are 2 pieces of hardware being used:&lt;/SPAN&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;SPAN&gt;Issue &lt;EM&gt;reproduces&lt;/EM&gt; on the FRDM-KL82Z dev kit board that uses the KL82.&lt;/SPAN&gt;&lt;UL&gt;&lt;LI&gt;&lt;SPAN&gt;Jumpers are set to their from-the-factory settings.&amp;nbsp; It is connected to another piece of hardware via jumpers wires that is unlikely to be related to the issue.&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN&gt;Using one of the sample apps (qspi_polling_transfer).&amp;nbsp; It uses &lt;EM&gt;BOARD_BootClockRUN&lt;/EM&gt;() and&amp;nbsp;&lt;EM&gt;CLOCK_BootToPeeMode&lt;/EM&gt;() unmodified from the sample.&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;Enabling the ROM Bootloader and activating USB using work-around #1 still cause the original issue above.&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;LI&gt;Issue does&amp;nbsp;&lt;EM&gt;not reproduce&lt;/EM&gt; on a custom board that uses the KL81&lt;UL&gt;&lt;LI&gt;The clock uses a 12MHz oscillator connected only to EXTAL0.&amp;nbsp; This is different than the dev kit that uses a 12MHZ crystal connected to EXTAL0, XTAL0, and a few passives.&lt;/LI&gt;&lt;LI&gt;It uses the same clock initialization code from the above sample.&lt;/LI&gt;&lt;LI&gt;Enabling the ROM Bootloader and activating USB using work-around #1 does&amp;nbsp;&lt;EM&gt;not&lt;/EM&gt; cause issues and works as expected.&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;Our understanding is that the below code should be correct for the FRDM-KL82Z since it is from a sample app from its SDK.&amp;nbsp; Also, we assume it is acceptable to use this for the custom board even though it uses an oscillator rather than a crystal.&lt;/P&gt;&lt;P&gt;Here is the implementation if BOARD_BootClockRUN(), up to the call to CLOCK_BootToPeeMode():&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;P class=""&gt;&lt;FONT face="terminal,monaco" size="2"&gt;&lt;SPAN class=""&gt;void&lt;/SPAN&gt; BOARD_BootClockRUN&lt;SPAN class=""&gt;(&lt;/SPAN&gt;&lt;SPAN class=""&gt;void&lt;/SPAN&gt;&lt;SPAN class=""&gt;)&lt;BR /&gt;&lt;/SPAN&gt;{&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco" size="2"&gt;&amp;nbsp; &amp;nbsp; CLOCK_SetSimSafeDivs&lt;SPAN class=""&gt;()&lt;/SPAN&gt;&lt;SPAN class=""&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; CLOCK_InitOsc0&lt;/SPAN&gt;&lt;SPAN class=""&gt;(&lt;/SPAN&gt;&lt;SPAN class=""&gt;&amp;amp;&lt;/SPAN&gt;oscConfig_BOARD_BootClockRUN&lt;SPAN class=""&gt;)&lt;/SPAN&gt;&lt;SPAN class=""&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; CLOCK_SetXtal0Freq&lt;/SPAN&gt;&lt;SPAN class=""&gt;(&lt;/SPAN&gt;oscConfig_BOARD_BootClockRUN&lt;SPAN class=""&gt;.&lt;/SPAN&gt;&lt;SPAN class=""&gt;freq&lt;/SPAN&gt;&lt;SPAN class=""&gt;)&lt;/SPAN&gt;&lt;SPAN class=""&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; CLOCK_CONFIG_SetFllExtRefDiv&lt;/SPAN&gt;&lt;SPAN class=""&gt;(&lt;/SPAN&gt;mcgConfig_BOARD_BootClockRUN&lt;SPAN class=""&gt;.&lt;/SPAN&gt;&lt;SPAN class=""&gt;frdiv&lt;/SPAN&gt;&lt;SPAN class=""&gt;)&lt;/SPAN&gt;&lt;SPAN class=""&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; CLOCK_BootToPeeMode&lt;/SPAN&gt;&lt;SPAN class=""&gt;(&lt;/SPAN&gt;mcgConfig_BOARD_BootClockRUN&lt;SPAN class=""&gt;.&lt;/SPAN&gt;&lt;SPAN class=""&gt;oscsel&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;I&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kMCG_PllClkSelPll0&lt;/I&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;amp;&lt;/SPAN&gt;mcgConfig_BOARD_BootClockRUN&lt;SPAN class=""&gt;.&lt;/SPAN&gt;&lt;SPAN class=""&gt;pll0Config&lt;/SPAN&gt;&lt;SPAN class=""&gt;)&lt;/SPAN&gt;&lt;SPAN class=""&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; ...&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;Here are the config structures for the clocks:&lt;/SPAN&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;P class=""&gt;&lt;FONT face="terminal,monaco" size="2"&gt;&lt;SPAN class=""&gt;const&lt;/SPAN&gt; &lt;SPAN class=""&gt;mcg_config_t&lt;/SPAN&gt; mcgConfig_BOARD_BootClockRUN &lt;SPAN class=""&gt;=&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;{&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; .&lt;/SPAN&gt;mcgMode &lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;&lt;I&gt;kMCG_ModePEE&lt;/I&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;SPAN class=""&gt;/* PEE - PLL Engaged External */&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; .&lt;/SPAN&gt;&lt;SPAN class=""&gt;irclkEnableMode &lt;/SPAN&gt;&lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;&lt;I&gt;kMCG_IrclkEnable&lt;/I&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;/* MCGIRCLK enabled, MCGIRCLK disabled in STOP mode */&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco" size="2"&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; .&lt;/SPAN&gt;&lt;SPAN class=""&gt;ircs &lt;/SPAN&gt;&lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;&lt;I&gt;kMCG_IrcSlow&lt;/I&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;/* Slow internal reference clock selected */&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco" size="2"&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; .&lt;/SPAN&gt;fcrdiv &lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;0x0&lt;/SPAN&gt;U&lt;SPAN class=""&gt;,&lt;/SPAN&gt; &lt;SPAN class=""&gt;/* Fast IRC divider: divided by 1 */&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; .&lt;/SPAN&gt;&lt;SPAN class=""&gt;frdiv &lt;/SPAN&gt;&lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;0x0&lt;/SPAN&gt;&lt;SPAN class=""&gt;U&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;/* FLL reference clock divider: divided by 32 */&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco" size="2"&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; .&lt;/SPAN&gt;drs &lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;&lt;I&gt;kMCG_DrsLow&lt;/I&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt; &lt;SPAN class=""&gt;/* Low frequency range */&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; .&lt;/SPAN&gt;&lt;SPAN class=""&gt;dmx32 &lt;/SPAN&gt;&lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;&lt;I&gt;kMCG_Dmx32Default&lt;/I&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;/* DCO has a default range of 25% */&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco" size="2"&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; .&lt;/SPAN&gt;&lt;SPAN class=""&gt;oscsel &lt;/SPAN&gt;&lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;&lt;I&gt;kMCG_OscselOsc&lt;/I&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;/* Selects System Oscillator (OSCCLK) */&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco" size="2"&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; .&lt;/SPAN&gt;pll0Config &lt;SPAN class=""&gt;=&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; {&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; .&lt;/SPAN&gt;enableMode &lt;SPAN class=""&gt;=&lt;/SPAN&gt; MCG_PLL_DISABLE&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;SPAN class=""&gt;/* MCGPLLCLK disabled */&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; .&lt;/SPAN&gt;prdiv &lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;0x0&lt;/SPAN&gt;U&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;SPAN class=""&gt;/* PLL Reference divider: divided by 1 */&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; .&lt;/SPAN&gt;vdiv &lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;0x8&lt;/SPAN&gt;U&lt;SPAN class=""&gt;,&lt;/SPAN&gt; &lt;SPAN class=""&gt;/* VCO divider: multiplied by 24 */&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; }&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;}&lt;/SPAN&gt;&lt;SPAN class=""&gt;;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;FONT face="terminal,monaco" size="2"&gt;&lt;SPAN class=""&gt;const&lt;/SPAN&gt; &lt;SPAN class=""&gt;osc_config_t&lt;/SPAN&gt; oscConfig_BOARD_BootClockRUN &lt;SPAN class=""&gt;=&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;{&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; .&lt;/SPAN&gt;freq &lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;12000000&lt;/SPAN&gt;U&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;SPAN class=""&gt;/* Oscillator frequency: 12000000Hz */&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; .&lt;/SPAN&gt;capLoad &lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;(&lt;/SPAN&gt;OSC_CAP0P&lt;SPAN class=""&gt;)&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt; &lt;SPAN class=""&gt;/* Oscillator capacity load: 0pF */&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; .&lt;/SPAN&gt;workMode &lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;&lt;I&gt;kOSC_ModeOscLowPower&lt;/I&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt; &lt;SPAN class=""&gt;/* Oscillator low power */&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; .&lt;/SPAN&gt;oscerConfig &lt;SPAN class=""&gt;=&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; {&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; .&lt;/SPAN&gt;&lt;SPAN class=""&gt;enableMode &lt;/SPAN&gt;&lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;&lt;I&gt;kOSC_ErClkEnable&lt;/I&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;/* Enable external reference clock, disable external reference clock in STOP mode */&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco" size="2"&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; .&lt;/SPAN&gt;erclkDiv &lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;0&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;SPAN class=""&gt;/* Divider for OSCERCLK: divided by 1 */&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; }&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;}&lt;/SPAN&gt;&lt;SPAN class=""&gt;;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P class=""&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 24 Jul 2023 20:42:11 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/KL81-clock-hang-after-enabling-USB-Bootloader/m-p/1691609#M65312</guid>
      <dc:creator>SynapticLathe</dc:creator>
      <dc:date>2023-07-24T20:42:11Z</dc:date>
    </item>
    <item>
      <title>Re: KL81 clock hang after enabling USB Bootloader</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/KL81-clock-hang-after-enabling-USB-Bootloader/m-p/1693538#M65327</link>
      <description>&lt;P&gt;Hello &lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/217713"&gt;@SynapticLathe&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;Relating the use of&lt;EM&gt; CLOCK_SetPeeMode()&lt;/EM&gt;, please continue to use &lt;EM&gt;CLOCK_SetPbeMode()&lt;/EM&gt; as it is necessary for &lt;EM&gt;CLOCK_BootToPeeMode()&lt;/EM&gt; to work.&lt;/P&gt;
&lt;P&gt;Also, could you please change the following values of the BCA?&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&amp;nbsp;.peripheralDetectionTimeoutMs = FFFFU (5s)&lt;/LI&gt;
&lt;LI&gt;.clockFlags = 0x00 (Clear the clockFlags bit for HighSpeed)&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;What other differences do you have between the custom board and FDRM-KL82?&amp;nbsp;In the FDRM-KL82 could you please try with another example that is not QSPI related? Could be a &lt;EM&gt;led_blinky&lt;/EM&gt; example.&lt;/P&gt;
&lt;P&gt;Finally, regarding your bootloader, could you please share us how are you exiting the bootloader and jumping to the application? Are you using MCU Boot?&lt;/P&gt;
&lt;P&gt;Best regards, Raul.&lt;/P&gt;</description>
      <pubDate>Wed, 26 Jul 2023 22:40:16 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/KL81-clock-hang-after-enabling-USB-Bootloader/m-p/1693538#M65327</guid>
      <dc:creator>RaRo</dc:creator>
      <dc:date>2023-07-26T22:40:16Z</dc:date>
    </item>
  </channel>
</rss>

