<?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 DZ128 code stuck issue during MCG init. in 8-bit Microcontrollers</title>
    <link>https://community.nxp.com/t5/8-bit-Microcontrollers/DZ128-code-stuck-issue-during-MCG-init/m-p/541475#M22067</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Dear Team,&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;LG Chemical faced code stuck issue during MCG init.&lt;/P&gt;&lt;P&gt;They implemented dual MCG init code, first MCG init code runs in bootloader and second init code is executed application.&lt;/P&gt;&lt;P&gt;Anyway, this double time MCG initial execution occur code stuck issue during power on/off test.&lt;/P&gt;&lt;P&gt;The code stuck at IREFST select status check loop or PLL lock status check loop.&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If use double time initialization without de-init, is it cause problem?&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Below are customer codes.&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Device : MC9S08DZ128&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 16.0pt;"&gt;MCG init in bootloader.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #1f497d;"&gt;MCGC2 = 0x36;&amp;nbsp;&amp;nbsp; -&amp;gt; 0011 0110&amp;nbsp; : BDIV=0,RANGE=1,HGO=1,LP=0,EREFS=1,ERCLKEN=1,EREFSTEN=0&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #1f497d;"&gt;while ((MCGSC &amp;amp; 0x02u) != 0x02u) {}&amp;nbsp;&amp;nbsp; -&amp;gt; OSCINIT=1&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #1f497d;"&gt;MCGC3 = 0x11; -&amp;gt; 0001 0001 : LOLIE=0,PLLS=0,CME=0,DIV32=1,VDIV=0001&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #1f497d;"&gt;MCGC1 = 0x90; -&amp;gt; 1001 0000 : CLKS=10,RDIV=010,IREFS=0,IRCLKEN=0,IREFSTEN=0&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #1f497d;"&gt;while ((MCGSC &amp;amp; 0x10u) == 0x10u) {}&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt; IREFST=1&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #1f497d;"&gt;while ((MCGSC &amp;amp; 0x0Cu) == 0x0Cu) {}&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt; CLKST=11&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #1f497d;"&gt;MCGC3 = 0x52; -&amp;gt; 0101 0010 : LOLIE=0,PLLS=1,CME=0,DIV32=1,VDIV=0010&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #1f497d;"&gt;while((MCGSC &amp;amp; 0x20u) == 0x20u) {}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt; PLLST=1&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #1f497d;"&gt;while((MCGSC &amp;amp; 0x40u) == 0x40u) {}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt; LOCK=1&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #1f497d;"&gt;MCGC1&amp;nbsp; = 0x10; -&amp;gt; 0001 0000 : CLKS=00,RDIV=010,IREFS=0,IRCLKEN=0,IREFSTEN=1&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #1f497d;"&gt;while((MCGSC &amp;amp; 0x0Cu) == 0x0C) {}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt; CLKST=11&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 18.0pt; color: black;"&gt;MCG init in application.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #558ed5;"&gt;MCGTRM = 0xFFAF;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #558ed5;"&gt;MCGSC = 0xFFAE;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #558ed5;"&gt;MCGC2 = 0x36;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* MCGC2: BDIV=0,RANGE=1,HGO=1,LP=0,EREFS=1,ERCLKEN=1,EREFSTEN=0 */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #558ed5;"&gt;MCGC3 |= 0x10;&amp;nbsp;&amp;nbsp; /* MCGC3: DIV32=1 */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #558ed5;"&gt;MCGC1 = 0x98;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* MCGC1: CLKS=2,RDIV=3,IREFS=0,IRCLKEN=0,IREFSTEN=0 */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #558ed5;"&gt;MCGC3 = 0x12;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* MCGC3: LOLIE=0,PLLS=0,CME=0,DIV32=1,VDIV=2 */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #558ed5;"&gt;MCGT = 0x00;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* MCGT: DMX32=0,DRST_DRS=0 */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="color: #558ed5;"&gt;While (!MCGSC_OSCINIT) {}&amp;nbsp;&amp;nbsp; // wait until external reference is stable&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;SPAN style="color: #558ed5;"&gt;While (MCGSC_IREFST) {}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // wait until external reference is selected (1&lt;/SPAN&gt;&lt;SPAN style="color: red;"&gt;) Code stuck point 1&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="color: #558ed5;"&gt;While ((MGCSC &amp;amp; 0x0C) != 0x08) {}&amp;nbsp; // wait until external clock is selected as a bus clock reference&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #558ed5;"&gt;MCGC2 = 0x3E;&amp;nbsp;&amp;nbsp; /* MCGC2: BDIV=0,RANGE=1,HGO=1,LP=1,EREFS=1,ERCLKEN=1,EREFSTEN=0 */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #558ed5;"&gt;MCGC1 = 0x90;&amp;nbsp;&amp;nbsp; /* MCGC1: CLKS=2,RDIV=2,IREFS=0,IRCLKEN=0,IREFSTEN=0 */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #558ed5;"&gt;MCGC3 &amp;amp;= ~0x10; /* MCGC3: DIV32=0 */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #558ed5;"&gt;MCGC3 = 0x42;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* MCGC3: LOLIE=0,PLLS=1,CME=0,DIV32=0,VDIV=2 */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="color: #558ed5;"&gt;While (!MCGSC_PLLST) {}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // wait until PLL is selected&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #558ed5;"&gt;MCGC2 &amp;amp;= ~0x08;&amp;nbsp;&amp;nbsp; /* MCGC2: LP=0 */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;SPAN style="color: #558ed5;"&gt;While (!MCGSC_LOCK) ()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // wait until PLL is locked (2) &lt;/SPAN&gt;&lt;SPAN style="color: red;"&gt;Code stuck point 2&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #558ed5;"&gt;MCGC1 = 0x10;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* MCGC1: CLKS=0,RDIV=2,IREFS=0,IRCLKEN=0,IREFSTEN=0 */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="color: #558ed5;"&gt;While ((MCGSC &amp;amp; 0x0C) != 0x0C) {}&amp;nbsp; // wait until PLL clock is selected as a bus clock reference&lt;/STRONG&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 16 Jun 2016 23:33:25 GMT</pubDate>
    <dc:creator>Vincent_Jung</dc:creator>
    <dc:date>2016-06-16T23:33:25Z</dc:date>
    <item>
      <title>DZ128 code stuck issue during MCG init.</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/DZ128-code-stuck-issue-during-MCG-init/m-p/541475#M22067</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Dear Team,&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;LG Chemical faced code stuck issue during MCG init.&lt;/P&gt;&lt;P&gt;They implemented dual MCG init code, first MCG init code runs in bootloader and second init code is executed application.&lt;/P&gt;&lt;P&gt;Anyway, this double time MCG initial execution occur code stuck issue during power on/off test.&lt;/P&gt;&lt;P&gt;The code stuck at IREFST select status check loop or PLL lock status check loop.&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If use double time initialization without de-init, is it cause problem?&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Below are customer codes.&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Device : MC9S08DZ128&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 16.0pt;"&gt;MCG init in bootloader.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #1f497d;"&gt;MCGC2 = 0x36;&amp;nbsp;&amp;nbsp; -&amp;gt; 0011 0110&amp;nbsp; : BDIV=0,RANGE=1,HGO=1,LP=0,EREFS=1,ERCLKEN=1,EREFSTEN=0&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #1f497d;"&gt;while ((MCGSC &amp;amp; 0x02u) != 0x02u) {}&amp;nbsp;&amp;nbsp; -&amp;gt; OSCINIT=1&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #1f497d;"&gt;MCGC3 = 0x11; -&amp;gt; 0001 0001 : LOLIE=0,PLLS=0,CME=0,DIV32=1,VDIV=0001&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #1f497d;"&gt;MCGC1 = 0x90; -&amp;gt; 1001 0000 : CLKS=10,RDIV=010,IREFS=0,IRCLKEN=0,IREFSTEN=0&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #1f497d;"&gt;while ((MCGSC &amp;amp; 0x10u) == 0x10u) {}&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt; IREFST=1&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #1f497d;"&gt;while ((MCGSC &amp;amp; 0x0Cu) == 0x0Cu) {}&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt; CLKST=11&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #1f497d;"&gt;MCGC3 = 0x52; -&amp;gt; 0101 0010 : LOLIE=0,PLLS=1,CME=0,DIV32=1,VDIV=0010&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #1f497d;"&gt;while((MCGSC &amp;amp; 0x20u) == 0x20u) {}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt; PLLST=1&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #1f497d;"&gt;while((MCGSC &amp;amp; 0x40u) == 0x40u) {}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt; LOCK=1&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #1f497d;"&gt;MCGC1&amp;nbsp; = 0x10; -&amp;gt; 0001 0000 : CLKS=00,RDIV=010,IREFS=0,IRCLKEN=0,IREFSTEN=1&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #1f497d;"&gt;while((MCGSC &amp;amp; 0x0Cu) == 0x0C) {}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt; CLKST=11&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 18.0pt; color: black;"&gt;MCG init in application.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #558ed5;"&gt;MCGTRM = 0xFFAF;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #558ed5;"&gt;MCGSC = 0xFFAE;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #558ed5;"&gt;MCGC2 = 0x36;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* MCGC2: BDIV=0,RANGE=1,HGO=1,LP=0,EREFS=1,ERCLKEN=1,EREFSTEN=0 */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #558ed5;"&gt;MCGC3 |= 0x10;&amp;nbsp;&amp;nbsp; /* MCGC3: DIV32=1 */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #558ed5;"&gt;MCGC1 = 0x98;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* MCGC1: CLKS=2,RDIV=3,IREFS=0,IRCLKEN=0,IREFSTEN=0 */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #558ed5;"&gt;MCGC3 = 0x12;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* MCGC3: LOLIE=0,PLLS=0,CME=0,DIV32=1,VDIV=2 */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #558ed5;"&gt;MCGT = 0x00;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* MCGT: DMX32=0,DRST_DRS=0 */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="color: #558ed5;"&gt;While (!MCGSC_OSCINIT) {}&amp;nbsp;&amp;nbsp; // wait until external reference is stable&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;SPAN style="color: #558ed5;"&gt;While (MCGSC_IREFST) {}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // wait until external reference is selected (1&lt;/SPAN&gt;&lt;SPAN style="color: red;"&gt;) Code stuck point 1&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="color: #558ed5;"&gt;While ((MGCSC &amp;amp; 0x0C) != 0x08) {}&amp;nbsp; // wait until external clock is selected as a bus clock reference&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #558ed5;"&gt;MCGC2 = 0x3E;&amp;nbsp;&amp;nbsp; /* MCGC2: BDIV=0,RANGE=1,HGO=1,LP=1,EREFS=1,ERCLKEN=1,EREFSTEN=0 */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #558ed5;"&gt;MCGC1 = 0x90;&amp;nbsp;&amp;nbsp; /* MCGC1: CLKS=2,RDIV=2,IREFS=0,IRCLKEN=0,IREFSTEN=0 */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #558ed5;"&gt;MCGC3 &amp;amp;= ~0x10; /* MCGC3: DIV32=0 */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #558ed5;"&gt;MCGC3 = 0x42;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* MCGC3: LOLIE=0,PLLS=1,CME=0,DIV32=0,VDIV=2 */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="color: #558ed5;"&gt;While (!MCGSC_PLLST) {}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // wait until PLL is selected&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #558ed5;"&gt;MCGC2 &amp;amp;= ~0x08;&amp;nbsp;&amp;nbsp; /* MCGC2: LP=0 */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;SPAN style="color: #558ed5;"&gt;While (!MCGSC_LOCK) ()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // wait until PLL is locked (2) &lt;/SPAN&gt;&lt;SPAN style="color: red;"&gt;Code stuck point 2&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #558ed5;"&gt;MCGC1 = 0x10;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* MCGC1: CLKS=0,RDIV=2,IREFS=0,IRCLKEN=0,IREFSTEN=0 */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="color: #558ed5;"&gt;While ((MCGSC &amp;amp; 0x0C) != 0x0C) {}&amp;nbsp; // wait until PLL clock is selected as a bus clock reference&lt;/STRONG&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 23:33:25 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/DZ128-code-stuck-issue-during-MCG-init/m-p/541475#M22067</guid>
      <dc:creator>Vincent_Jung</dc:creator>
      <dc:date>2016-06-16T23:33:25Z</dc:date>
    </item>
    <item>
      <title>Re: DZ128 code stuck issue during MCG init.</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/DZ128-code-stuck-issue-during-MCG-init/m-p/541476#M22068</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Vincent,&lt;/P&gt;&lt;P&gt;Thanks for getting the crystal frequency (8MHz). The 2 sections of code are different (written by 2 different authors?) and suggested a 4MHz crystal in the boot and 8MHz in the main. The boot code has 2 errors (checks for wrong value of CLKST in FBE and does not clear DIV32 for RANGE=1 when the PLL is used (new DS change)). The main app has many statements out of sequence and with incorrect values. Rather than commenting on each line, I attached a file that has the recommended statements that match up with the datasheet example for PEE. Here are 2 solutions for the boot code and the app code (using their conventions) that give 8MHz PEE bus frequency with an 8MHz crystal.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;John&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Boot: 8MHz Bus (PEE) with 8MHz crystal&lt;/P&gt;&lt;P style="text-align: left; text-indent: 0in;"&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;MCGC2 = 0x36;&amp;nbsp;&amp;nbsp; -&amp;gt; 0011 0110&amp;nbsp; : BDIV=0,RANGE=1,HGO=1,LP=0,EREFS=1,ERCLKEN=1,EREFSTEN=0&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="text-align: left; text-indent: 0in;"&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;while &lt;/SPAN&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;((MCGSC &amp;amp; 0x02u) != 0x02u) {}&amp;nbsp;&amp;nbsp; -&amp;gt; &lt;/SPAN&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;OSCINIT=1&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="text-align: left; text-indent: 0in;"&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;MCGC3 = 0x11; -&amp;gt; 0001 0001 : &lt;/SPAN&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;LOLIE=0,PLLS=0,CME=0,DIV32=1,VDIV=0001&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="text-align: left; text-indent: 0in;"&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;MCGC1 &lt;/SPAN&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;= &lt;/SPAN&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;0x&lt;/SPAN&gt;&lt;SPAN style="color: red; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;98&lt;/SPAN&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;; &lt;/SPAN&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;-&amp;gt;&lt;SPAN style="color: red; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;1001 &lt;/SPAN&gt;&lt;SPAN style="color: red; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;1000 &lt;/SPAN&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;: &lt;/SPAN&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;CLKS=10&lt;/SPAN&gt;&lt;SPAN style="color: red; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;,RDIV=011&lt;/SPAN&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;,IREFS=0,IRCLKEN=0,IREFSTEN=0 (DIV32:RDIV=&amp;gt;/256)&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="text-align: left; text-indent: 0in;"&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;while ((MCGSC &amp;amp; 0x10u) == 0x10u) {}&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt; &lt;/SPAN&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;IREFST=1&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="text-align: left; text-indent: 0in;"&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;while ((&lt;/SPAN&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;MCGSC&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;&amp;amp; 0x0Cu) == &lt;/SPAN&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;0x08u&lt;/SPAN&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;) {}&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt; &lt;/SPAN&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;CLKST=10&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="text-align: left; text-indent: 0in;"&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;MCGC3 = &lt;/SPAN&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;0x&lt;/SPAN&gt;&lt;SPAN style="color: red; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;44&lt;/SPAN&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;; &lt;/SPAN&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;-&amp;gt;&lt;SPAN style="color: red; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;0100 &lt;/SPAN&gt;&lt;SPAN style="color: red; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;0100 &lt;/SPAN&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;: &lt;/SPAN&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;LOLIE=0,PLLS=1,CME=0,DIV32=0,&lt;/SPAN&gt;&lt;SPAN style="color: red; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;VDIV=0100&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="text-align: left; text-indent: 0in;"&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;while&lt;/SPAN&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;((MCGSC &amp;amp; 0x20u) == 0x20u) {}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt; &lt;/SPAN&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;PLLST=1&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="text-align: left; text-indent: 0in;"&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;while((MCGSC &amp;amp; 0x40u) == 0x40u) {}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt; &lt;/SPAN&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;LOCK=1&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="text-align: left; text-indent: 0in;"&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;MCGC1&lt;/SPAN&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;&amp;nbsp; = &lt;/SPAN&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;0x&lt;/SPAN&gt;&lt;SPAN style="color: red; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;18&lt;/SPAN&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;; &lt;/SPAN&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;-&amp;gt;&lt;SPAN style="color: red; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;0001 &lt;/SPAN&gt;&lt;SPAN style="color: red; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;1000 &lt;/SPAN&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;: &lt;/SPAN&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;CLKS=00,&lt;/SPAN&gt;&lt;SPAN style="color: red; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;RDIV=011&lt;/SPAN&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;,IREFS=0,IRCLKEN=0,IREFSTEN=0&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="text-align: left; text-indent: 0in;"&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;while&lt;/SPAN&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;((MCGSC &amp;amp; 0x0Cu) == 0x0C) {}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt; &lt;/SPAN&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;CLKST=11&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="text-align: left; text-indent: 0in;"&gt;&lt;/P&gt;&lt;P style="text-align: left; text-indent: 0in;"&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;Application: 8MHz Bus (PEE) with 8MHz crystal&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="text-align: left; text-indent: 0in;"&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;MCGTRM = 0xFFAF;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="text-align: left; text-indent: 0in;"&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;MCGSC = 0xFFAE;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="text-align: left; text-indent: 0in;"&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;MCGC2 &lt;/SPAN&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;= 0x36;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* MCGC2: BDIV=0,RANGE=1,HGO=1,LP=0,EREFS=1,ERCLKEN=1,EREFSTEN=0 */&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="text-align: left; text-indent: 0in;"&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;While &lt;/SPAN&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;(!MCGSC_OSCINIT) {}&amp;nbsp;&amp;nbsp; // wait until external reference is stable&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="text-align: left; text-indent: 0in;"&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;MCGC3 &lt;/SPAN&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;|= 0x10;&amp;nbsp;&amp;nbsp; /* MCGC3: DIV32=1 */&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="text-align: left; text-indent: 0in;"&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;MCGC1 &lt;/SPAN&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;= 0x98;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* MCGC1: CLKS=2,RDIV=3,IREFS=0,IRCLKEN=0,IREFSTEN=0 */&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="text-align: left; text-indent: 0in;"&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;While &lt;/SPAN&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;(MCGSC_IREFST) {}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // wait until external reference is selected &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="text-align: left; text-indent: 0in;"&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;While &lt;/SPAN&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;((MGCSC &amp;amp; 0x0C) != 0x08) {}&amp;nbsp; // wait until external clock is selected as a bus clock reference&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="text-align: left; text-indent: 0in;"&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;MCGC2 &lt;/SPAN&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;= 0x3E;&amp;nbsp;&amp;nbsp; /* MCGC2: BDIV=0,RANGE=1,HGO=1,LP=1,EREFS=1,ERCLKEN=1,EREFSTEN=0 */&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="text-align: left; text-indent: 0in;"&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;MCGC3 &lt;/SPAN&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;= &lt;/SPAN&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;0x44;&lt;/SPAN&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* MCGC3: &lt;/SPAN&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;LOLIE=0,PLLS=1,CME=0,DIV32=0,VDIV=4&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;*/&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="text-align: left; text-indent: 0in;"&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;MCGC2 &lt;/SPAN&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;&amp;amp;= ~0x08;&amp;nbsp;&amp;nbsp; /* MCGC2: LP=0 */&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="text-align: left; text-indent: 0in;"&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;While &lt;/SPAN&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;(!MCGSC_PLLST) {}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // wait until PLL is &lt;/SPAN&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;selected&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="text-align: left; text-indent: 0in;"&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;While &lt;/SPAN&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;(!MCGSC_LOCK) {}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // wait until PLL is locked &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="text-align: left; text-indent: 0in;"&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;MCGC1 &lt;/SPAN&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;= &lt;/SPAN&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;0x18;&lt;/SPAN&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* MCGC1: &lt;/SPAN&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;CLKS=0,RDIV=3,IREFS=0,IRCLKEN=0,IREFSTEN=0&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;*/&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="text-align: left; text-indent: 0in;"&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;While &lt;/SPAN&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;((MCGSC &amp;amp; 0x0C) != 0x0C) {}&amp;nbsp; // wait until PLL clock is selected as a bus clock reference&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="text-align: left; text-indent: 0in;"&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;/* now in PEE with 8MHz crystal, &lt;/SPAN&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;fpll_ref&lt;/SPAN&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;=1MHz&lt;/SPAN&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;, &lt;/SPAN&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;fbus&lt;/SPAN&gt;&lt;SPAN style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;=8MHz */&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 21 Jun 2016 14:51:09 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/DZ128-code-stuck-issue-during-MCG-init/m-p/541476#M22068</guid>
      <dc:creator>john_suchyta</dc:creator>
      <dc:date>2016-06-21T14:51:09Z</dc:date>
    </item>
  </channel>
</rss>

