<?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 Re: jm60: 4mhz clock initilise code for USB in 8-bit Microcontrollers</title>
    <link>https://community.nxp.com/t5/8-bit-Microcontrollers/jm60-4mhz-clock-initilise-code-for-USB/m-p/210031#M17965</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I use this to setup the JS16 for a 4MHz crystal.&amp;nbsp; Should be similar (if not the same) on JM60.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;// WRL changed to work with 4 MHz xtal, 48 MHz clock for USB&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;void MCG_Init()&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // the MCG is default set to FEI mode, it should be change to FBE mode&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MCGC2 = MCGC2_RANGE_MASK | MCGC2_HGO_MASK | MCGC2_EREFS_MASK | MCGC2_ERCLKEN_MASK;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // loop until the crystal has been initialized&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (!MCGSC_OSCINIT);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // CLKS = 10 to select external reference clock as system clock source&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // RDIV = 111, divide by 128, 4 MHz / 128 = 31.25 kHz, range required by the FLL&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // IREFS = 0, selecting the external reference clock&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MCGC1 = MCGC1_CLKS1_MASK | MCGC1_RDIV2_MASK | MCGC1_RDIV1_MASK | MCGC1_RDIV0_MASK |&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MCGC1_IRCLKEN_MASK | MCGC1_IREFSTEN_MASK;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // loop until the external reference clock is selected&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while ((MCGSC &amp;amp; 0x1C ) != 0x08);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // switch to PBE mode from FBE&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // 2b) RDIV = 001, divide by 2, 4 MHz / 2 = 2 MHz, which is the&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 to 2 MHz range required by the PLL.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MCGC1 = MCGC1_CLKS1_MASK | MCGC1_RDIV0_MASK |&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MCGC1_IRCLKEN_MASK | MCGC1_IREFSTEN_MASK;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // 2c) PLLS = 1, selects the PLL&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; VDIV = 0110, multiply by 24, 2 MHz reference * 24 = 48 MHz&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MCGC3 = MCGC3_PLLS_MASK | MCGC3_VDIV2_MASK | MCGC3_VDIV1_MASK;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // 2e) wait until PLLST is set, indicating source for the PLLS clock is the PLL&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while ((MCGSC &amp;amp; MCGSC_PLLST_MASK) == 0);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // 2f) wait until the PLL is locked&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while ((MCGSC &amp;amp; MCGSC_LOCK_MASK) == 0);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // switch to PEE mode from PBE mode&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // 3a) CLKS = 00, to select output of PLL as the system clock&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MCGC1 &amp;amp;= MCGC1_RDIV0_MASK | MCGC1_IRCLKEN_MASK | MCGC1_IREFSTEN_MASK;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // loop until CLKST = 11, indicating the PLL output is selected&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (MCGSC_CLKST != 3);&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 12 Sep 2009 00:21:20 GMT</pubDate>
    <dc:creator>wrljet</dc:creator>
    <dc:date>2009-09-12T00:21:20Z</dc:date>
    <item>
      <title>jm60: 4mhz clock initilise code for USB</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/jm60-4mhz-clock-initilise-code-for-USB/m-p/210030#M17964</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I am trying to get a JM60 running with its USB port.bus must be 24mhz, MCGOUT = 48mhz.&lt;/P&gt;&lt;P&gt;my external xtal is 4.00mhz.&lt;/P&gt;&lt;P&gt;Is this initilise code correct?&lt;/P&gt;&lt;P&gt;(Especially Not sure about RDIV = 1 )&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MOV&amp;nbsp;&amp;nbsp; #$36,MCGC2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MOV&amp;nbsp;&amp;nbsp; #$08A,MCGC1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;_EntryPoint_L1E:&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BRCLR 1,MCGSC,_EntryPoint_L1E&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; Wait until external reference is stable&lt;BR /&gt;_EntryPoint_L21:&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BRSET 4,MCGSC,_EntryPoint_L21&amp;nbsp; ; Wait until external reference is selected&lt;BR /&gt;_EntryPoint_L24:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;Wait until external clock is selected as a bus clock reference&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LDA&amp;nbsp;&amp;nbsp; MCGSC&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND&amp;nbsp;&amp;nbsp; #$0C&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CMP&amp;nbsp;&amp;nbsp; #8&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BNE&amp;nbsp;&amp;nbsp; _EntryPoint_L24 ;abs = 0024&lt;BR /&gt;&amp;nbsp;;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MOV&amp;nbsp;&amp;nbsp; #$3E,MCGC2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MOV&amp;nbsp;&amp;nbsp; #$08A,MCGC1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MOV&amp;nbsp;&amp;nbsp; #$46,MCGC3&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BCLR&amp;nbsp; 3,MCGC2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;_EntryPoint_L37:&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BRCLR 5,MCGSC,_EntryPoint_L37&amp;nbsp; ; while(!MCGSC_PLLST) Wait until PLL is selected&lt;BR /&gt;_EntryPoint_L3A:&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BRCLR 6,MCGSC,_EntryPoint_L3A ; ;&amp;nbsp;&amp;nbsp; while(!MCGSC_LOCK) Wait until PLL is locked&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MOV&amp;nbsp;&amp;nbsp; #$0A,MCGC1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; Set MCGC1 register&lt;BR /&gt;_EntryPoint_L40:&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LDA&amp;nbsp;&amp;nbsp; MCGSC&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;while((MCGSC &amp;amp; 0x0C) != 0x0C) Wait until PLL clock is selected as a bus clock reference&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND&amp;nbsp;&amp;nbsp; #$0C&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CMP&amp;nbsp;&amp;nbsp; #$0C&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BNE&amp;nbsp;&amp;nbsp; _EntryPoint_L40&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; End of initialization code after reset&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RTS&lt;BR /&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 25 Aug 2009 08:56:35 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/jm60-4mhz-clock-initilise-code-for-USB/m-p/210030#M17964</guid>
      <dc:creator>donw</dc:creator>
      <dc:date>2009-08-25T08:56:35Z</dc:date>
    </item>
    <item>
      <title>Re: jm60: 4mhz clock initilise code for USB</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/jm60-4mhz-clock-initilise-code-for-USB/m-p/210031#M17965</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I use this to setup the JS16 for a 4MHz crystal.&amp;nbsp; Should be similar (if not the same) on JM60.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;// WRL changed to work with 4 MHz xtal, 48 MHz clock for USB&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;void MCG_Init()&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // the MCG is default set to FEI mode, it should be change to FBE mode&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MCGC2 = MCGC2_RANGE_MASK | MCGC2_HGO_MASK | MCGC2_EREFS_MASK | MCGC2_ERCLKEN_MASK;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // loop until the crystal has been initialized&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (!MCGSC_OSCINIT);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // CLKS = 10 to select external reference clock as system clock source&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // RDIV = 111, divide by 128, 4 MHz / 128 = 31.25 kHz, range required by the FLL&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // IREFS = 0, selecting the external reference clock&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MCGC1 = MCGC1_CLKS1_MASK | MCGC1_RDIV2_MASK | MCGC1_RDIV1_MASK | MCGC1_RDIV0_MASK |&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MCGC1_IRCLKEN_MASK | MCGC1_IREFSTEN_MASK;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // loop until the external reference clock is selected&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while ((MCGSC &amp;amp; 0x1C ) != 0x08);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // switch to PBE mode from FBE&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // 2b) RDIV = 001, divide by 2, 4 MHz / 2 = 2 MHz, which is the&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 to 2 MHz range required by the PLL.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MCGC1 = MCGC1_CLKS1_MASK | MCGC1_RDIV0_MASK |&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MCGC1_IRCLKEN_MASK | MCGC1_IREFSTEN_MASK;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // 2c) PLLS = 1, selects the PLL&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; VDIV = 0110, multiply by 24, 2 MHz reference * 24 = 48 MHz&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MCGC3 = MCGC3_PLLS_MASK | MCGC3_VDIV2_MASK | MCGC3_VDIV1_MASK;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // 2e) wait until PLLST is set, indicating source for the PLLS clock is the PLL&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while ((MCGSC &amp;amp; MCGSC_PLLST_MASK) == 0);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // 2f) wait until the PLL is locked&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while ((MCGSC &amp;amp; MCGSC_LOCK_MASK) == 0);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // switch to PEE mode from PBE mode&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // 3a) CLKS = 00, to select output of PLL as the system clock&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MCGC1 &amp;amp;= MCGC1_RDIV0_MASK | MCGC1_IRCLKEN_MASK | MCGC1_IREFSTEN_MASK;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // loop until CLKST = 11, indicating the PLL output is selected&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (MCGSC_CLKST != 3);&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 12 Sep 2009 00:21:20 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/jm60-4mhz-clock-initilise-code-for-USB/m-p/210031#M17965</guid>
      <dc:creator>wrljet</dc:creator>
      <dc:date>2009-09-12T00:21:20Z</dc:date>
    </item>
  </channel>
</rss>

