<?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: FTM module on K70 in Kinetis Microcontrollers</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/FTM-module-on-K70/m-p/690649#M42544</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I found the problem - FTM3_MODE |= FTM_MODE_FTMEN_MASK;&amp;nbsp; the line should be omitted.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 19 Jun 2017 09:39:36 GMT</pubDate>
    <dc:creator>john71</dc:creator>
    <dc:date>2017-06-19T09:39:36Z</dc:date>
    <item>
      <title>FTM module on K70</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/FTM-module-on-K70/m-p/690647#M42542</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I want to generate PWM signal on a pin.&lt;/P&gt;&lt;P&gt;First I configure the module.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void PWM_Init(void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //PTE6 - PWM output - FTM3_CH1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTE_PCR6 = PORT_PCR_MUX(6);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIM_SCGC3 |= SIM_SCGC3_FTM3_MASK;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Turn off FlexTimer 3 and clear any pending Timer Overflow Flag&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (TOF) using the FTM3_SC register (Status and Control register for FlexTimer 3)*/&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FTM3_SC;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FTM3_SC = 0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Disable write protection for FlexTimer 3 using the FTM3_MODE register*/&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FTM3_MODE = FTM_MODE_WPDIS_MASK;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FTM3_MODE |= FTM_MODE_FTMEN_MASK; &lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //frequency 60000000/128 = 2.13us&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FTM3_MOD = 0x01D6;&amp;nbsp;&amp;nbsp;&amp;nbsp; //2.13us * 470 = 1001 us = 1kHz&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //duty cycle&lt;BR /&gt;&amp;nbsp;&amp;nbsp; FTM3_C1V = 0x01D6 / 2; //set duty cycle 50%&amp;nbsp; &lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FTM3_SC = FTM_SC_CLKS(FTM_SC_CLKS_SYSTEM_CLOCK) | FTM_SC_PS(FTM_SC_PS_DIVIDE_BY_128);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Edge-Aligned PWM - clear Output on match&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FTM3_C1SC = 0x028;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Edge-Aligned PWM - set Output on match&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //FTM3_C1SC = 0x024; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void PWM_SetDutyCycle(unsigned int duty_cycle)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned int freq = FTM3_MOD;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (duty_cycle &amp;gt; freq)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FTM3_C1V = duty_cycle;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Then I test it.&lt;/P&gt;&lt;P&gt;while (1)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (duty &amp;gt; 0x01D6)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; duty = 0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; duty += 50;&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;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PWM_SetDutyCycle(duty);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPTMR_delay_ms(1000);&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I see no PWM signal on PTE6.&amp;nbsp; Also FTM3_C1V is always zero, it doesn't change its value.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 19 Jun 2017 07:51:49 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/FTM-module-on-K70/m-p/690647#M42542</guid>
      <dc:creator>john71</dc:creator>
      <dc:date>2017-06-19T07:51:49Z</dc:date>
    </item>
    <item>
      <title>Re: FTM module on K70</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/FTM-module-on-K70/m-p/690648#M42543</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Well...If I pause in debug and manually set the FTM3_C1V - it starts to generate PWM.&lt;/P&gt;&lt;P&gt;The question is - why FTM3_C1V is not updated programmatically?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 19 Jun 2017 09:30:21 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/FTM-module-on-K70/m-p/690648#M42543</guid>
      <dc:creator>john71</dc:creator>
      <dc:date>2017-06-19T09:30:21Z</dc:date>
    </item>
    <item>
      <title>Re: FTM module on K70</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/FTM-module-on-K70/m-p/690649#M42544</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I found the problem - FTM3_MODE |= FTM_MODE_FTMEN_MASK;&amp;nbsp; the line should be omitted.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 19 Jun 2017 09:39:36 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/FTM-module-on-K70/m-p/690649#M42544</guid>
      <dc:creator>john71</dc:creator>
      <dc:date>2017-06-19T09:39:36Z</dc:date>
    </item>
  </channel>
</rss>

