<?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: Migration from K60 to K61 platform in Kinetis Microcontrollers</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Migration-from-K60-to-K61-platform/m-p/214192#M3645</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;the 100us delay function is not supported on any Kinetis MCU. However there could be no problem in migration of ProcessorExeprt project from K60 -&amp;gt; K61.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;best regards&lt;BR /&gt;Vojtech Filip&lt;BR /&gt;Processor Expert Support Team&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 09 Mar 2012 16:07:43 GMT</pubDate>
    <dc:creator>ProcessorExpert</dc:creator>
    <dc:date>2012-03-09T16:07:43Z</dc:date>
    <item>
      <title>Migration from K60 to K61 platform</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Migration-from-K60-to-K61-platform/m-p/214191#M3644</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I used with TWR-K60 board for develop my project. All SW modules already finished and now I need to move project platform to K61 MCU (this MCU will work in final board). In this project I used with LCD that allowed in LCD demo board, HID keyboard host project (use USB keyboard), I2C, UART, timers and I need to configure K61 MCU for correct work operation of my system.&lt;/P&gt;&lt;P&gt;Can I use with this configuration for K61 without any another changes (in timers configuration, for example, or in LCD, USB HID use). Can I use with CPU function for 100us delay (in Processor Expert for k61 I don't view this function) or I need to configure all peripheries from the beginning?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;For K60 MCU configuration I used two function (as in keyboard_host project for TWR-K60):&lt;/P&gt;&lt;P&gt;void MCU_Init(void)&lt;BR /&gt;{&lt;BR /&gt;// Point the VTOR to the new copy of the vector table&lt;BR /&gt;SCB_VTOR = (uint_32)___VECTOR_RAM;&lt;BR /&gt;//Clear any pending interrupts on USB&lt;BR /&gt;NVICICER2|=(1&amp;lt;&amp;lt;9);&lt;BR /&gt;//Enable interrupts from USB module&lt;BR /&gt;NVICISER2|=(1&amp;lt;&amp;lt;9);&lt;BR /&gt;&lt;BR /&gt;// init pll&lt;BR /&gt;PLL_Init();&lt;BR /&gt;&lt;BR /&gt;// SIM Configuration&lt;BR /&gt;MPU_CESR=0;&lt;BR /&gt;// USB Clock Gating&lt;BR /&gt;SIM_SCGC4|=(SIM_SCGC4_USBOTG_MASK);&lt;BR /&gt;// PLL/FLL selected as CLK source&lt;BR /&gt;SIM_SOPT2 |= SIM_SOPT2_USBSRC_MASK | SIM_SOPT2_PLLFLLSEL_MASK;&lt;BR /&gt;// USB Freq Divider&lt;BR /&gt;SIM_CLKDIV2=0x02;&lt;BR /&gt;// weak pulldowns&lt;BR /&gt;USB0_USBCTRL=0x40;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;and&lt;/P&gt;&lt;P&gt;*****************************************************************************&lt;BR /&gt;* It will configure the MCU to disable STOP and COP Modules.&lt;BR /&gt;* It also set the MCG configuration and bus clock frequency.&lt;BR /&gt;****************************************************************************/&lt;BR /&gt;static void PLL_Init()&lt;BR /&gt;{&lt;BR /&gt;// First move to FBE mode&lt;BR /&gt;// Enable all of the port clocks. These have to be enabled to configure pin muxing options, so most code will need all of these on anyway.&lt;BR /&gt;SIM_SCGC5 |= (SIM_SCGC5_PORTA_MASK&lt;BR /&gt;| SIM_SCGC5_PORTB_MASK&lt;BR /&gt;| SIM_SCGC5_PORTC_MASK&lt;BR /&gt;| SIM_SCGC5_PORTD_MASK&lt;BR /&gt;| SIM_SCGC5_PORTE_MASK );&lt;BR /&gt;#ifdef MCU_MK60N512VMD100&lt;BR /&gt;// Enable external oscillator, RANGE=0, HGO=, EREFS=, LP=, IRCS=&lt;BR /&gt;MCG_C2 = 0;&lt;BR /&gt;#else&lt;BR /&gt;// Enable external oscillator, RANGE=2, HGO=1, EREFS=1, LP=0, IRCS=0&lt;BR /&gt;MCG_C2 = MCG_C2_RANGE(2) | MCG_C2_HGO_MASK | MCG_C2_EREFS_MASK|MCG_C2_IRCS_MASK;&lt;BR /&gt;#endif&lt;BR /&gt;// Select external oscillator and Reference Divider and clear IREFS to start ext osc&lt;BR /&gt;// CLKS=2, FRDIV=3, IREFS=0, IRCLKEN=0, IREFSTEN=0&lt;BR /&gt;MCG_C1 = MCG_C1_CLKS(2) | MCG_C1_FRDIV(3);&lt;/P&gt;&lt;P&gt;#ifndef MCU_MK60N512VMD100&lt;BR /&gt;// wait for oscillator to initialize&lt;BR /&gt;while (!(MCG_S &amp;amp; MCG_S_OSCINIT_MASK)){};&lt;BR /&gt;#endif&lt;/P&gt;&lt;P&gt;// Wait for Reference clock Status bit to clear&lt;BR /&gt;while (MCG_S &amp;amp; MCG_S_IREFST_MASK){};&lt;BR /&gt;// Wait for clock status bits to show clock source is ext ref clk&lt;BR /&gt;while (((MCG_S &amp;amp; MCG_S_CLKST_MASK) &amp;gt;&amp;gt; MCG_S_CLKST_SHIFT) != 0x2){};&lt;/P&gt;&lt;P&gt;#ifdef MCU_MK60N512VMD100&lt;BR /&gt;MCG_C5 = MCG_C5_PRDIV(BSP_REF_CLOCK_DIV - 1);&lt;BR /&gt;#else&lt;BR /&gt;MCG_C5 = MCG_C5_PRDIV(BSP_REF_CLOCK_DIV - 1) | MCG_C5_PLLCLKEN_MASK;&lt;BR /&gt;#endif&lt;BR /&gt;// Ensure MCG_C6 is at the reset default of 0. LOLIE disabled, PLL enabled, clk monitor disabled, PLL VCO divider is clear&lt;BR /&gt;MCG_C6 = 0;&lt;BR /&gt;// Set system options dividers&lt;BR /&gt;SIM_CLKDIV1 = SIM_CLKDIV1_OUTDIV1(BSP_CORE_DIV - 1) | // core/system clock&lt;BR /&gt;SIM_CLKDIV1_OUTDIV2(BSP_BUS_DIV - 1) | // peripheral clock;&lt;BR /&gt;SIM_CLKDIV1_OUTDIV3(BSP_FLEXBUS_DIV - 1) | // FlexBus clock driven to the external pin (FB_CLK)&lt;BR /&gt;SIM_CLKDIV1_OUTDIV4(BSP_FLASH_DIV - 1); // flash clock&lt;BR /&gt;// Set the VCO divider and enable the PLL, LOLIE = 0, PLLS = 1, CME = 0, VDIV&lt;BR /&gt;MCG_C6 = MCG_C6_PLLS_MASK | MCG_C6_VDIV(BSP_CLOCK_MUL - 24); // 2MHz * BSP_CLOCK_MUL&lt;BR /&gt;// wait for PLL status bit to set&lt;BR /&gt;while (!(MCG_S &amp;amp; MCG_S_PLLST_MASK)){};&lt;BR /&gt;// Wait for LOCK bit to set&lt;BR /&gt;while (!(MCG_S &amp;amp; MCG_S_LOCK_MASK)){};&lt;BR /&gt;// Transition into PEE by setting CLKS to 0&lt;BR /&gt;// CLKS=0, FRDIV=3, IREFS=0, IRCLKEN=0, IREFSTEN=0&lt;BR /&gt;MCG_C1 &amp;amp;= ~MCG_C1_CLKS_MASK;&lt;BR /&gt;// Wait for clock status bits to update&lt;BR /&gt;while (((MCG_S &amp;amp; MCG_S_CLKST_MASK) &amp;gt;&amp;gt; MCG_S_CLKST_SHIFT) != 0x3){};&lt;/P&gt;&lt;P&gt;//return 0;&lt;BR /&gt;} //pll_init&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks.&lt;/P&gt;&lt;P&gt;Evgeni.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 08 Mar 2012 05:12:51 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Migration-from-K60-to-K61-platform/m-p/214191#M3644</guid>
      <dc:creator>evgenik</dc:creator>
      <dc:date>2012-03-08T05:12:51Z</dc:date>
    </item>
    <item>
      <title>Re: Migration from K60 to K61 platform</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Migration-from-K60-to-K61-platform/m-p/214192#M3645</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;the 100us delay function is not supported on any Kinetis MCU. However there could be no problem in migration of ProcessorExeprt project from K60 -&amp;gt; K61.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;best regards&lt;BR /&gt;Vojtech Filip&lt;BR /&gt;Processor Expert Support Team&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 09 Mar 2012 16:07:43 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Migration-from-K60-to-K61-platform/m-p/214192#M3645</guid>
      <dc:creator>ProcessorExpert</dc:creator>
      <dc:date>2012-03-09T16:07:43Z</dc:date>
    </item>
    <item>
      <title>Re: Migration from K60 to K61 platform</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Migration-from-K60-to-K61-platform/m-p/214193#M3646</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;this is not exaclty the same thing as delay 100us function, but you might use this one:&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.steinerberg.com/EmbeddedComponents/Wait" rel="nofollow" target="_blank"&gt;http://www.steinerberg.com/EmbeddedComponents/Wait&lt;/A&gt;&lt;/P&gt;&lt;P&gt;I use it instead of the Delay100us() with Kinetis.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Hope this helps.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;BK&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 09 Mar 2012 16:33:46 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Migration-from-K60-to-K61-platform/m-p/214193#M3646</guid>
      <dc:creator>BlackNight</dc:creator>
      <dc:date>2012-03-09T16:33:46Z</dc:date>
    </item>
    <item>
      <title>Migration from K60 to K61 platform</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Migration-from-K60-to-K61-platform/m-p/214194#M3647</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 11 Mar 2012 15:42:41 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Migration-from-K60-to-K61-platform/m-p/214194#M3647</guid>
      <dc:creator>evgenik</dc:creator>
      <dc:date>2012-03-11T15:42:41Z</dc:date>
    </item>
  </channel>
</rss>

