<?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: Has anyone generated a PWM signal for a Kinetis without using PE? in MQX Software Solutions</title>
    <link>https://community.nxp.com/t5/MQX-Software-Solutions/Has-anyone-generated-a-PWM-signal-for-a-Kinetis-without-using-PE/m-p/271399#M8328</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Monica,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It's an uphill climb, the prototype PWMs working and now trying to integrate:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;DRM135SW (PWM)&lt;/LI&gt;&lt;LI&gt;AN4652 (Interrupt based I2C) &lt;/LI&gt;&lt;LI&gt;lwadc (multiple channels per ADC)&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;into my MQX bsp build.&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Once that's done, I will do more to characterize the PWM operation&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanx for asking,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;myke&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 24 Jun 2013 14:08:57 GMT</pubDate>
    <dc:creator>myke_predko</dc:creator>
    <dc:date>2013-06-24T14:08:57Z</dc:date>
    <item>
      <title>Has anyone generated a PWM signal for a Kinetis without using PE?</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Has-anyone-generated-a-PWM-signal-for-a-Kinetis-without-using-PE/m-p/271396#M8325</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Folks,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I think the command line says it all - I want to generate PWMs for the K20 in my project that is running MQX 4.0.&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There seems to be a couple of threads discussing how to do it with Processor Expert, but I would like to do it without - has anybody been able to do this?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanx,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;myke&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 03 Jun 2013 19:45:30 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Has-anyone-generated-a-PWM-signal-for-a-Kinetis-without-using-PE/m-p/271396#M8325</guid>
      <dc:creator>myke_predko</dc:creator>
      <dc:date>2013-06-03T19:45:30Z</dc:date>
    </item>
    <item>
      <title>Re: Has anyone generated a PWM signal for a Kinetis without using PE?</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Has-anyone-generated-a-PWM-signal-for-a-Kinetis-without-using-PE/m-p/271397#M8326</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Myke, check AN4376 and DRM135. DRM135SW zip has source codes, there is FTM0_init() in peripherals.c - Flex Timer 0 initialization for 3-phase PWM signal generation.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 10 Jun 2013 07:57:38 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Has-anyone-generated-a-PWM-signal-for-a-Kinetis-without-using-PE/m-p/271397#M8326</guid>
      <dc:creator>Martin_</dc:creator>
      <dc:date>2013-06-10T07:57:38Z</dc:date>
    </item>
    <item>
      <title>Re: Has anyone generated a PWM signal for a Kinetis without using PE?</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Has-anyone-generated-a-PWM-signal-for-a-Kinetis-without-using-PE/m-p/271398#M8327</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;A href="http://cache.freescale.com/files/microcontrollers/doc/ref_manual/DRM135SW.zip?fsrch=1&amp;amp;sr=1" style="color: #017bba; text-decoration: underline; font-family: arial, sans-serif; font-size: 12px; background-color: #ececec;"&gt;&lt;STRONG&gt;DRM135SW&lt;/STRONG&gt;&lt;/A&gt;&lt;SPAN style="color: #51626f; font-family: arial, sans-serif; font-size: 12px; background-color: #ececec;"&gt;&amp;nbsp; :smileywink:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; font-family: arial, sans-serif; font-size: 12px; background-color: #ececec;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;How is the project going Myke?&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 20 Jun 2013 23:36:54 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Has-anyone-generated-a-PWM-signal-for-a-Kinetis-without-using-PE/m-p/271398#M8327</guid>
      <dc:creator>Monica</dc:creator>
      <dc:date>2013-06-20T23:36:54Z</dc:date>
    </item>
    <item>
      <title>Re: Has anyone generated a PWM signal for a Kinetis without using PE?</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Has-anyone-generated-a-PWM-signal-for-a-Kinetis-without-using-PE/m-p/271399#M8328</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Monica,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It's an uphill climb, the prototype PWMs working and now trying to integrate:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;DRM135SW (PWM)&lt;/LI&gt;&lt;LI&gt;AN4652 (Interrupt based I2C) &lt;/LI&gt;&lt;LI&gt;lwadc (multiple channels per ADC)&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;into my MQX bsp build.&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Once that's done, I will do more to characterize the PWM operation&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanx for asking,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;myke&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 24 Jun 2013 14:08:57 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Has-anyone-generated-a-PWM-signal-for-a-Kinetis-without-using-PE/m-p/271399#M8328</guid>
      <dc:creator>myke_predko</dc:creator>
      <dc:date>2013-06-24T14:08:57Z</dc:date>
    </item>
    <item>
      <title>Re: Has anyone generated a PWM signal for a Kinetis without using PE?</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Has-anyone-generated-a-PWM-signal-for-a-Kinetis-without-using-PE/m-p/271400#M8329</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;GREAT!&lt;/P&gt;&lt;P&gt;Thanks for the update and keep the hard work along! :smileygrin:&lt;/P&gt;&lt;P&gt;We'll be around!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards,&lt;/P&gt;&lt;P&gt;Monica.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 24 Jun 2013 14:53:38 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Has-anyone-generated-a-PWM-signal-for-a-Kinetis-without-using-PE/m-p/271400#M8329</guid>
      <dc:creator>Monica</dc:creator>
      <dc:date>2013-06-24T14:53:38Z</dc:date>
    </item>
    <item>
      <title>Re: Has anyone generated a PWM signal for a Kinetis without using PE?</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Has-anyone-generated-a-PWM-signal-for-a-Kinetis-without-using-PE/m-p/271401#M8330</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Monica and Martin,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I've spent some time with the DRM135SW with problems writing to the PWM Count registers.&amp;nbsp; I've slightly modified the DRM135SW FTM0_init method in "peripherals_init" to output on FTM0_CH4 (PTD4) and FTM0_CH5 (PTDE) of the TWRK20D72M.&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;What I am trying to do is two PWM outputs running automatically based on the FTM0 clock - I want to control the PWM duty cycles seperately by writing to the FTM0_C4V/_C5V registers (which I believe are the compare values).&amp;nbsp; Going further, I will get the actual PWM frequency I'm looking for as well as write dynamically to the _C4V/_C5V registers to change the duty cycle of the outputs (they are controlling DC motors).&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;With the code below, there are no problems with the execution of the code (there was until I enabled the clock to FTM0) BUT the FTM0_C4V and FTM0_C5V registers are not updated by the writes (I tried to enable them using the FTM0_COMBINE register without any luck).&amp;nbsp; Also the output is a solid high output with a periodic partial low (from 3.3V "High") to 1.8V which I guess is the FTM0 timer overflowing/resetting - sorry I haven't been able to get its period, but it seems like it is on the order of 100s of milliseconds to seconds.&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I've left the DRM135SW code in (and commented out when I've modified it) so you can see the changes I've made.&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Any suggestions would be appreciated,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;myke&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-family: 'courier new', courier;"&gt;#define TPM_C 48e6&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; // core clock (only for calculation, I does not afect real clock)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-family: 'courier new', courier;"&gt;#define PWM_FREQ 16000&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; // PWM frequency [Hz] &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-family: 'courier new', courier;"&gt;#define MODULO ( TPM_C / PWM_FREQ ) // calculation the modulo for FTM0 &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker" style="color: #000000; font-family: 'courier new', courier;"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; color: #000000;"&gt;//&amp;nbsp; Enable clock for Flex Timers&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-family: 'courier new', courier; font-size: 10pt; line-height: 1.5em;"&gt;&amp;nbsp; SIM_SCGC6 |= SIM_SCGC6_FTM0_MASK; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-family: 'courier new', courier; font-size: 10pt; line-height: 1.5em;"&gt;&amp;nbsp; FTM0_MODE &amp;amp;= ~FTM_MODE_WPDIS_MASK; /* Disable write protection */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; color: #000000;"&gt;&amp;nbsp; FTM0_MODE |= FTM_MODE_FTMEN_MASK; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-family: 'courier new', courier; font-size: 10pt; line-height: 1.5em;"&gt;&amp;nbsp; FTM0_CONF |= FTM_CONF_BDMMODE(3); // counter run in BDM mode&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-family: 'courier new', courier; font-size: 10pt; line-height: 1.5em;"&gt;&amp;nbsp; FTM0_MODE |= FTM_MODE_FAULTM_MASK | FTM_MODE_FTMEN_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-family: 'courier new', courier; font-size: 10pt; line-height: 1.5em;"&gt;&amp;nbsp; /* Set PWM frequency; MODULO = Fclk/Fpwm */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; color: #000000;"&gt;&amp;nbsp; FTM0_MOD = MODULO;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-family: 'courier new', courier; font-size: 10pt; line-height: 1.5em;"&gt;&amp;nbsp; FTM0_CNTIN = 0x00;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; color: #000000;"&gt;&amp;nbsp; FTM0_SYNCONF |= FTM_SYNCONF_SYNCMODE_MASK; // should be set enhanced PWM sync mode &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-family: 'courier new', courier; font-size: 10pt; line-height: 1.5em;"&gt;&amp;nbsp; /* CTNMAX = 1 - PWM update at counter in max. value */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; color: #000000;"&gt;&amp;nbsp; FTM0_SYNC |= FTM_SYNC_CNTMAX_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; color: #000000;"&gt;&amp;nbsp; FTM0_SYNC |= FTM_SYNC_SWSYNC_MASK;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-family: 'courier new', courier; font-size: 10pt; line-height: 1.5em;"&gt;&amp;nbsp; /* Disable all channels outputs using the OUTPUT MASK feature.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; color: #000000;"&gt;&amp;nbsp;&amp;nbsp; However, the output pins are still driven as GPIO since the&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; color: #000000;"&gt;&amp;nbsp;&amp;nbsp; channel mode is set to FTM channel disabled after RESET */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; color: #000000;"&gt;&amp;nbsp; FTM0_OUTMASK = FTM_OUTMASK_CH7OM_MASK | FTM_OUTMASK_CH6OM_MASK | FTM_OUTMASK_CH5OM_MASK | FTM_OUTMASK_CH4OM_MASK | &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; color: #000000;"&gt;&amp;nbsp;&amp;nbsp; FTM_OUTMASK_CH3OM_MASK | FTM_OUTMASK_CH2OM_MASK | FTM_OUTMASK_CH1OM_MASK | FTM_OUTMASK_CH0OM_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-family: 'courier new', courier; font-size: 10pt; line-height: 1.5em;"&gt;//&amp;nbsp; /* COMBINE = 1 - combine mode set&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; color: #000000;"&gt;//&amp;nbsp; COMP = 1 - complementary PWM set&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; color: #000000;"&gt;//&amp;nbsp; DTEN = 1 - deadtime enabled&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; color: #000000;"&gt;//&amp;nbsp; SYNCEN = 1 - PWM update synchronization enabled&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; color: #000000;"&gt;//&amp;nbsp; FAULTEN = 1 - fault control enabled */&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; color: #000000;"&gt;//&amp;nbsp; FTM0_COMBINE =&amp;nbsp; FTM_COMBINE_FAULTEN0_MASK | FTM_COMBINE_SYNCEN0_MASK | FTM_COMBINE_DTEN0_MASK&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; color: #000000;"&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; | FTM_COMBINE_COMP0_MASK | FTM_COMBINE_COMBINE0_MASK&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; color: #000000;"&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; | FTM_COMBINE_FAULTEN1_MASK | FTM_COMBINE_SYNCEN1_MASK | FTM_COMBINE_DTEN1_MASK&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; color: #000000;"&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; | FTM_COMBINE_COMP1_MASK | FTM_COMBINE_COMBINE1_MASK&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; color: #000000;"&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; | FTM_COMBINE_FAULTEN2_MASK | FTM_COMBINE_SYNCEN2_MASK | FTM_COMBINE_DTEN2_MASK&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; color: #000000;"&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; | FTM_COMBINE_COMP2_MASK | FTM_COMBINE_COMBINE2_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; color: #000000;"&gt;&amp;nbsp; FTM0_COMBINE =&amp;nbsp; FTM_COMBINE_FAULTEN2_MASK | FTM_COMBINE_SYNCEN2_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-family: 'courier new', courier; font-size: 10pt; line-height: 1.5em;"&gt;&amp;nbsp; /* polarity setting, 3ppa driver high sides are active low */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; color: #000000;"&gt;//&amp;nbsp; FTM0_POL = FTM_POL_POL0_MASK | FTM_POL_POL2_MASK | FTM_POL_POL4_MASK ;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-family: 'courier new', courier; font-size: 10pt; line-height: 1.5em;"&gt;&amp;nbsp;&amp;nbsp; /* Dead time = 1 us for 48 MHz core clock */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; color: #000000;"&gt;//&amp;nbsp; FTM0_DEADTIME = 138;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-family: 'courier new', courier; font-size: 10pt; line-height: 1.5em;"&gt;&amp;nbsp;&amp;nbsp; /* Initial setting of value registers */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; color: #000000;"&gt;//&amp;nbsp; FTM0_C0V = 0; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; color: #000000;"&gt;//&amp;nbsp; FTM0_C1V = MODULO/2;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; color: #000000;"&gt;//&amp;nbsp; FTM0_C2V = 0;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; color: #000000;"&gt;//&amp;nbsp; FTM0_C3V = MODULO/2;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; color: #000000;"&gt;//&amp;nbsp; FTM0_C4V = 0;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; color: #000000;"&gt;//&amp;nbsp; FTM0_C5V = MODULO/2;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; color: #000000;"&gt;&amp;nbsp;&amp;nbsp; FTM0_C4V = MODULO / 4;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; color: #000000;"&gt;&amp;nbsp;&amp;nbsp; FTM0_C5V = MODULO / 2;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-family: 'courier new', courier; font-size: 10pt; line-height: 1.5em;"&gt;&amp;nbsp;&amp;nbsp; /* SWSYNC = 1 - set PWM value update. This bit is cleared automatically */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FTM0_SYNC |= FTM_SYNC_SWSYNC_MASK;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-family: 'courier new', courier; font-size: 10pt; line-height: 1.5em;"&gt;&amp;nbsp;&amp;nbsp; /* Main loop */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; color: #000000;"&gt;&amp;nbsp;&amp;nbsp; /* ELSnB:ELSnA = 1:0 Set channel mode to generate positive PWM&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; color: #000000;"&gt;&amp;nbsp;&amp;nbsp; Note:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; color: #000000;"&gt;&amp;nbsp;&amp;nbsp; 1. From this moment the output pins are under FTM control. Since the PWM output is disabled by&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; color: #000000;"&gt;&amp;nbsp;&amp;nbsp; the FTM0OUTMASK register, there is no change on PWM outputs. Before the channel mode is set,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; color: #000000;"&gt;&amp;nbsp;&amp;nbsp; the correct output pin polarity has to be defined.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; color: #000000;"&gt;&amp;nbsp;&amp;nbsp; 2. Even if the odd channels are generated automatically by complementary logic, these channels&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; color: #000000;"&gt;&amp;nbsp;&amp;nbsp; have to set to be in the same channel mode. */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; color: #000000;"&gt;//&amp;nbsp; FTM0_C0SC |= FTM_CnSC_ELSB_MASK ;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; color: #000000;"&gt;//&amp;nbsp; FTM0_C1SC |= FTM_CnSC_ELSB_MASK ;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; color: #000000;"&gt;//&amp;nbsp; FTM0_C2SC |= FTM_CnSC_ELSB_MASK ;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; color: #000000;"&gt;//&amp;nbsp; FTM0_C3SC |= FTM_CnSC_ELSB_MASK ;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; color: #000000;"&gt;&amp;nbsp;&amp;nbsp; FTM0_C4SC |= FTM_CnSC_ELSB_MASK ;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; color: #000000;"&gt;&amp;nbsp;&amp;nbsp; FTM0_C5SC |= FTM_CnSC_ELSB_MASK ;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-family: 'courier new', courier; font-size: 10pt; line-height: 1.5em;"&gt;&amp;nbsp;&amp;nbsp; FTM0_EXTTRIG |= FTM_EXTTRIG_INITTRIGEN_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-family: 'courier new', courier; font-size: 10pt; line-height: 1.5em;"&gt;&amp;nbsp;&amp;nbsp; FTM0_MODE |= FTM_MODE_INIT_MASK; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-family: 'courier new', courier; font-size: 10pt; line-height: 1.5em;"&gt;&amp;nbsp;&amp;nbsp; /* Set system clock as source for FTM0 (CLKS[1:0] = 01) */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; color: #000000;"&gt;&amp;nbsp;&amp;nbsp; FTM0_SC |= FTM_SC_CLKS(1);&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-family: 'courier new', courier; font-size: 10pt; line-height: 1.5em;"&gt;&amp;nbsp;&amp;nbsp; //PORT for FTM0 initialization&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; color: #000000;"&gt;//&amp;nbsp; PORTC_PCR1 = PORT_PCR_MUX(4); // FTM0 CH0&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; color: #000000;"&gt;//&amp;nbsp; PORTC_PCR2 = PORT_PCR_MUX(4); // FTM0 CH1&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; color: #000000;"&gt;//&amp;nbsp; PORTC_PCR3 = PORT_PCR_MUX(4); // FTM0 CH2&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; color: #000000;"&gt;//&amp;nbsp; PORTA_PCR6 = PORT_PCR_MUX(3); // FTM0 CH3&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; color: #000000;"&gt;//&amp;nbsp; PORTA_PCR7 = PORT_PCR_MUX(3); // FTM0 CH4&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; color: #000000;"&gt;//&amp;nbsp; PORTD_PCR5 = PORT_PCR_MUX(4); // FTM0 CH5&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; color: #000000;"&gt;&amp;nbsp;&amp;nbsp; PORTD_PCR4 |= PORT_PCR_MUX(4) | PORT_PCR_DSE_MASK; // FTM0 CH4 with high power operation&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; color: #000000;"&gt;&amp;nbsp;&amp;nbsp; PORTD_PCR5 |= PORT_PCR_MUX(4) | PORT_PCR_DSE_MASK; // FTM0 CH5 with high power operation&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 02 Jul 2013 02:52:40 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Has-anyone-generated-a-PWM-signal-for-a-Kinetis-without-using-PE/m-p/271401#M8330</guid>
      <dc:creator>myke_predko</dc:creator>
      <dc:date>2013-07-02T02:52:40Z</dc:date>
    </item>
    <item>
      <title>Re: Has anyone generated a PWM signal for a Kinetis without using PE?</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Has-anyone-generated-a-PWM-signal-for-a-Kinetis-without-using-PE/m-p/271402#M8331</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Sorry, one correction.&amp;nbsp; In the original post, I noted the output was always high - I just noticed that I had the motor circuit wired in and when I disconnected it, the two FTM0 PWM pins (PTD4 &amp;amp; PTD5) are always low.&amp;nbsp; I suspect that the low pulse is there but can't be seen unless the line is pulled up.&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;myke&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 02 Jul 2013 03:01:39 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Has-anyone-generated-a-PWM-signal-for-a-Kinetis-without-using-PE/m-p/271402#M8331</guid>
      <dc:creator>myke_predko</dc:creator>
      <dc:date>2013-07-02T03:01:39Z</dc:date>
    </item>
    <item>
      <title>Re: Has anyone generated a PWM signal for a Kinetis without using PE?</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Has-anyone-generated-a-PWM-signal-for-a-Kinetis-without-using-PE/m-p/271403#M8332</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Okay, I think I have something working. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I found that the DRM135SW doesn't seem to put the FTM0 Channels into PWM mode (which is why the writes to the _C4V/_C5V registers wouldn't accept the write values) as well as disabling the outputs which prevents them from coming out. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Two questions for you:&lt;/P&gt;&lt;P&gt;1.&amp;nbsp; Could you please review my code below and let me know if you have any concerns or comments for me?&amp;nbsp; It is basically the DRM135SW taken from the FTM0_init method in "peripherals_init.c" with some modifications to enable the FTM0 clock, select the PWMs I am interested in and making the changes specified above. &lt;/P&gt;&lt;P&gt;2.&amp;nbsp; Explain how the code in DRM135SW works?&amp;nbsp; As well as masking the output, I don't see any statements putting the FTM0 channels into PWM mode or turning off the masks of the outputs? &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Next steps are to:&lt;/P&gt;&lt;P&gt;a) Retime operation with the correct clocking available in the TWRK20D72M&lt;/P&gt;&lt;P&gt;b) Change the PWM value dynamically to change the motor speeds&lt;/P&gt;&lt;P&gt;c) Invert the PWM output to allow simple motor reversal&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanx,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;myke&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;#define TPM_C 48e6&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; // core clock (only for calculation, I does not afect real clock)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; font-size: 10pt; line-height: 1.5em;"&gt;#define PWM_FREQ 16000&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; // PWM frequency [Hz]&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;#define MODULO ( TPM_C / PWM_FREQ ) // calculation the modulo for FTM0&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; font-size: 10pt; line-height: 1.5em;"&gt;//&amp;nbsp; Enable clock for Flex Timers&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;// SIM_SCGC6 |= SIM_SCGC6_FTM0_MASK | SIM_SCGC6_FTM1_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&amp;nbsp; SIM_SCGC6 |= SIM_SCGC6_FTM0_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; font-size: 10pt; line-height: 1.5em;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; font-size: 10pt; line-height: 1.5em;"&gt;&amp;nbsp;&amp;nbsp; FTM0_MODE &amp;amp;= ~FTM_MODE_WPDIS_MASK; /* Disable write protection */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&amp;nbsp;&amp;nbsp; FTM0_MODE |= FTM_MODE_FTMEN_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; font-size: 10pt; line-height: 1.5em;"&gt;&amp;nbsp;&amp;nbsp; FTM0_CONF |= FTM_CONF_BDMMODE(3); // counter run in BDM mode&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; font-size: 10pt; line-height: 1.5em;"&gt;&amp;nbsp;&amp;nbsp; FTM0_MODE |= FTM_MODE_FAULTM_MASK | FTM_MODE_FTMEN_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; font-size: 10pt; line-height: 1.5em;"&gt;&amp;nbsp;&amp;nbsp; /* Set PWM frequency; MODULO = Fclk/Fpwm */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&amp;nbsp;&amp;nbsp; FTM0_MOD = MODULO;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; font-size: 10pt; line-height: 1.5em;"&gt;&amp;nbsp;&amp;nbsp; FTM0_CNTIN = 0x00;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; font-size: 10pt; line-height: 1.5em;"&gt;&amp;nbsp;&amp;nbsp; FTM0_SYNCONF |= FTM_SYNCONF_SYNCMODE_MASK; // should be set enhanced PWM sync mode&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; font-size: 10pt; line-height: 1.5em;"&gt;&amp;nbsp;&amp;nbsp; /* CTNMAX = 1 - PWM update at counter in max. value */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&amp;nbsp;&amp;nbsp; FTM0_SYNC |= FTM_SYNC_CNTMAX_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&amp;nbsp;&amp;nbsp; FTM0_SYNC |= FTM_SYNC_SWSYNC_MASK;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; font-size: 10pt; line-height: 1.5em;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Disable all channels outputs using the OUTPUT MASK feature.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&amp;nbsp;&amp;nbsp; However, the output pins are still driven as GPIO since the&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&amp;nbsp;&amp;nbsp; channel mode is set to FTM channel disabled after RESET */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;//&amp;nbsp; FTM0_OUTMASK = FTM_OUTMASK_CH7OM_MASK | FTM_OUTMASK_CH6OM_MASK | FTM_OUTMASK_CH5OM_MASK | FTM_OUTMASK_CH4OM_MASK |&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;//&amp;nbsp; FTM_OUTMASK_CH3OM_MASK | FTM_OUTMASK_CH2OM_MASK | FTM_OUTMASK_CH1OM_MASK | FTM_OUTMASK_CH0OM_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&amp;nbsp;&amp;nbsp; FTM0_OUTMASK = FTM_OUTMASK_CH7OM_MASK | FTM_OUTMASK_CH6OM_MASK | &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&amp;nbsp;&amp;nbsp; FTM_OUTMASK_CH3OM_MASK | FTM_OUTMASK_CH2OM_MASK | FTM_OUTMASK_CH1OM_MASK | FTM_OUTMASK_CH0OM_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; font-size: 10pt; line-height: 1.5em;"&gt;//&amp;nbsp; /* COMBINE = 1 - combine mode set&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;//&amp;nbsp; COMP = 1 - complementary PWM set&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;//&amp;nbsp; DTEN = 1 - deadtime enabled&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;//&amp;nbsp; SYNCEN = 1 - PWM update synchronization enabled&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;//&amp;nbsp; FAULTEN = 1 - fault control enabled */ &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;//&amp;nbsp; FTM0_COMBINE =&amp;nbsp; FTM_COMBINE_FAULTEN0_MASK | FTM_COMBINE_SYNCEN0_MASK | FTM_COMBINE_DTEN0_MASK&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&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; | FTM_COMBINE_COMP0_MASK | FTM_COMBINE_COMBINE0_MASK&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&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; | FTM_COMBINE_FAULTEN1_MASK | FTM_COMBINE_SYNCEN1_MASK | FTM_COMBINE_DTEN1_MASK&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&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; | FTM_COMBINE_COMP1_MASK | FTM_COMBINE_COMBINE1_MASK&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&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; | FTM_COMBINE_FAULTEN2_MASK | FTM_COMBINE_SYNCEN2_MASK | FTM_COMBINE_DTEN2_MASK&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&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; | FTM_COMBINE_COMP2_MASK | FTM_COMBINE_COMBINE2_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&amp;nbsp; //&amp;nbsp; MAP: Put the FTM0 Channels into PWM mode&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&amp;nbsp; FTM0_C4SC |= FTM_CnSC_MSB_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&amp;nbsp; FTM0_C5SC |= FTM_CnSC_MSB_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; font-size: 10pt; line-height: 1.5em;"&gt;&amp;nbsp;&amp;nbsp; /* polarity setting, 3ppa driver high sides are active low */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;//&amp;nbsp; FTM0_POL = FTM_POL_POL0_MASK | FTM_POL_POL2_MASK | FTM_POL_POL4_MASK ;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; font-size: 10pt; line-height: 1.5em;"&gt;&amp;nbsp;&amp;nbsp; /* Dead time = 1 us for 48 MHz core clock */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;//&amp;nbsp; FTM0_DEADTIME = 138;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;//&amp;nbsp; Notes (12) - Just using Channels 4 &amp;amp; 5&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&amp;nbsp;&amp;nbsp; /* Initial setting of value registers */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;//&amp;nbsp; FTM0_C0V = 0;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;//&amp;nbsp; FTM0_C1V = MODULO/2;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;//&amp;nbsp; FTM0_C2V = 0;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;//&amp;nbsp; FTM0_C3V = MODULO/2;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;//&amp;nbsp; FTM0_C4V = 0;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;//&amp;nbsp; FTM0_C5V = MODULO/2;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&amp;nbsp;&amp;nbsp; FTM0_C4V = MODULO / 4;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&amp;nbsp;&amp;nbsp; FTM0_C5V = MODULO / 2;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; font-size: 10pt; line-height: 1.5em;"&gt;&amp;nbsp;&amp;nbsp; /* SWSYNC = 1 - set PWM value update. This bit is cleared automatically */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FTM0_SYNC |= FTM_SYNC_SWSYNC_MASK;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; font-size: 10pt; line-height: 1.5em;"&gt;&amp;nbsp;&amp;nbsp; /* Main loop */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&amp;nbsp;&amp;nbsp; /* ELSnB:ELSnA = 1:0 Set channel mode to generate positive PWM&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&amp;nbsp;&amp;nbsp; Note:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&amp;nbsp;&amp;nbsp; 1. From this moment the output pins are under FTM control. Since the PWM output is disabled by&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&amp;nbsp;&amp;nbsp; the FTM0OUTMASK register, there is no change on PWM outputs. Before the channel mode is set,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&amp;nbsp;&amp;nbsp; the correct output pin polarity has to be defined.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&amp;nbsp;&amp;nbsp; 2. Even if the odd channels are generated automatically by complementary logic, these channels&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&amp;nbsp;&amp;nbsp; have to set to be in the same channel mode. */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;//&amp;nbsp; FTM0_C0SC |= FTM_CnSC_ELSB_MASK ;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;//&amp;nbsp; FTM0_C1SC |= FTM_CnSC_ELSB_MASK ;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;//&amp;nbsp; FTM0_C2SC |= FTM_CnSC_ELSB_MASK ;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;//&amp;nbsp; FTM0_C3SC |= FTM_CnSC_ELSB_MASK ;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&amp;nbsp;&amp;nbsp; FTM0_C4SC |= FTM_CnSC_ELSB_MASK ;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&amp;nbsp;&amp;nbsp; FTM0_C5SC |= FTM_CnSC_ELSB_MASK ;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; font-size: 10pt; line-height: 1.5em;"&gt;&amp;nbsp;&amp;nbsp; FTM0_EXTTRIG |= FTM_EXTTRIG_INITTRIGEN_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; font-size: 10pt; line-height: 1.5em;"&gt;&amp;nbsp;&amp;nbsp; FTM0_MODE |= FTM_MODE_INIT_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; font-size: 10pt; line-height: 1.5em;"&gt;&amp;nbsp;&amp;nbsp; /* Set system clock as source for FTM0 (CLKS[1:0] = 01) */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&amp;nbsp;&amp;nbsp; FTM0_SC |= FTM_SC_CLKS(1); &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; font-size: 10pt; line-height: 1.5em;"&gt;&amp;nbsp;&amp;nbsp; //PORT for FTM0 initialization&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;//&amp;nbsp; PORTC_PCR1 = PORT_PCR_MUX(4); // FTM0 CH0&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;//&amp;nbsp; PORTC_PCR2 = PORT_PCR_MUX(4); // FTM0 CH1&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;//&amp;nbsp; PORTC_PCR3 = PORT_PCR_MUX(4); // FTM0 CH2&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;//&amp;nbsp; PORTA_PCR6 = PORT_PCR_MUX(3); // FTM0 CH3&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;//&amp;nbsp; PORTA_PCR7 = PORT_PCR_MUX(3); // FTM0 CH4&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;//&amp;nbsp; PORTD_PCR5 = PORT_PCR_MUX(4); // FTM0 CH5 &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&amp;nbsp;&amp;nbsp; PORTD_PCR4 |= PORT_PCR_MUX(4) | PORT_PCR_DSE_MASK; // FTM0 CH4 with high power operation&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&amp;nbsp;&amp;nbsp; PORTD_PCR5 |= PORT_PCR_MUX(4) | PORT_PCR_DSE_MASK; // FTM0 CH5 with high power operation&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 02 Jul 2013 03:40:32 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Has-anyone-generated-a-PWM-signal-for-a-Kinetis-without-using-PE/m-p/271403#M8332</guid>
      <dc:creator>myke_predko</dc:creator>
      <dc:date>2013-07-02T03:40:32Z</dc:date>
    </item>
    <item>
      <title>Re: Has anyone generated a PWM signal for a Kinetis without using PE?</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Has-anyone-generated-a-PWM-signal-for-a-Kinetis-without-using-PE/m-p/271404#M8333</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Myke,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The DRM135SW utilize FlexTimer in Complementary mode. You should write only into FTM0_C1V , FTM0_C3V, FTM0_C5V. The channel 2,4 and 6 are generated automatically. Value registers are buffered you should write LDOK bit after you change a values registers. ( for example : FTM0_PWMLOAD = 0x200 ; ) . After inicialization of FlexTimer PWM outputs are disabled. You should write FTM0_OUTMASK = 0; to enable all PWM outputs. I'm not sure but maybe you also need to set sync trigger. FTM0_SYNC |= FTM_SYNC_SWSYNC_MASK;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 02 Jul 2013 06:43:15 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Has-anyone-generated-a-PWM-signal-for-a-Kinetis-without-using-PE/m-p/271404#M8333</guid>
      <dc:creator>ivanlovas</dc:creator>
      <dc:date>2013-07-02T06:43:15Z</dc:date>
    </item>
    <item>
      <title>Re: Has anyone generated a PWM signal for a Kinetis without using PE?</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Has-anyone-generated-a-PWM-signal-for-a-Kinetis-without-using-PE/m-p/271405#M8334</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Junior,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you for the reply. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For my application, I do not require the complementary mode - I was just trying to get two individual PWM channels working. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I did find the &lt;STRONG&gt;FTM0_OUTMASK = 0;&lt;/STRONG&gt; statement - it is used in the &lt;STRONG&gt;ENABLE_PWM_OUTPUT_PADS()&lt;/STRONG&gt; macro.&amp;nbsp; Thanx for the pointer. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;&lt;STRONG&gt;FTM0_PWMLOAD = 0x200;&lt;/STRONG&gt; does &lt;STRONG&gt;NOT&lt;/STRONG&gt; allow writing to the _C4V/_C5V registers.&amp;nbsp; The only thing that I have found that does allow writing is the &lt;STRONG&gt;FTM0_C#SC |= FTM_CnSC_MSB_MASK;&lt;/STRONG&gt; statement (where "#" is "4" and "5" for my application) which puts the channel into PWM mode.&amp;nbsp; This actually makes sense when I look at the datasheet because otherwise I don't see how the FT channels are in PWM mode (unless you know something better).&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;In any case, the code above works and can hopefully be a reference point for other people looking for simple PWM outputs.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;myke&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 02 Jul 2013 16:22:59 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Has-anyone-generated-a-PWM-signal-for-a-Kinetis-without-using-PE/m-p/271405#M8334</guid>
      <dc:creator>myke_predko</dc:creator>
      <dc:date>2013-07-02T16:22:59Z</dc:date>
    </item>
    <item>
      <title>Re: Has anyone generated a PWM signal for a Kinetis without using PE?</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Has-anyone-generated-a-PWM-signal-for-a-Kinetis-without-using-PE/m-p/271406#M8335</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Junior,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;One last comment.&amp;nbsp; To change the _C#V registers of the Kinetis, you must turn off the PWM to the channel to be able to write to the register.&amp;nbsp; For example:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FTM0_SC &amp;amp;= ~FTM_SC_CLKS(1);&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FTM0_C4V = MODULO / 2;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FTM0_SC |= FTM_SC_CLKS(1);&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _time_delay(500);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FTM0_SC &amp;amp;= ~FTM_SC_CLKS(1);&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FTM0_C4V = MODULO;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FTM0_SC |= FTM_SC_CLKS(1);&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Writing to the &lt;STRONG&gt;FTM0_OUTMASK&lt;/STRONG&gt; register didn't update the &lt;STRONG&gt;FTM0_C4V&lt;/STRONG&gt; register, nor did other registers that I tried.&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;myke&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 03 Jul 2013 03:02:39 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Has-anyone-generated-a-PWM-signal-for-a-Kinetis-without-using-PE/m-p/271406#M8335</guid>
      <dc:creator>myke_predko</dc:creator>
      <dc:date>2013-07-03T03:02:39Z</dc:date>
    </item>
    <item>
      <title>Re: Has anyone generated a PWM signal for a Kinetis without using PE?</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Has-anyone-generated-a-PWM-signal-for-a-Kinetis-without-using-PE/m-p/271407#M8336</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Something for the community; I just tried to port the code above to a MK20DN512VLL10 and discovered that it wouldn't work.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The problem is in the statements:&lt;/P&gt;&lt;P style="font-style: inherit; font-family: inherit;"&gt;&lt;SPAN style="font-style: inherit; font-family: 'courier new', courier;"&gt;PORTD_PCR4 |= PORT_PCR_MUX(4) | PORT_PCR_DSE_MASK; // FTM0 CH4 with high power operation&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-style: inherit; font-family: inherit;"&gt;&lt;SPAN style="font-style: inherit; font-family: 'courier new', courier;"&gt;PORTD_PCR5 |= PORT_PCR_MUX(4) | PORT_PCR_DSE_MASK; // FTM0 CH5 with high power operation&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Note that the statements above OR the new mux value and DSE mask to the contents of PCR registers - it does not replace them.&amp;nbsp; For proper operation, the code should be:&lt;/P&gt;&lt;P style="font-style: inherit; font-family: inherit;"&gt;&lt;SPAN style="font-style: inherit; font-family: 'courier new', courier;"&gt;PORTD_PCR4 = PORT_PCR_MUX(4) | PORT_PCR_DSE_MASK; // FTM0 CH4 with high power operation&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-style: inherit; font-family: inherit;"&gt;&lt;SPAN style="font-style: inherit; font-family: 'courier new', courier;"&gt;PORTD_PCR5 = PORT_PCR_MUX(4) | PORT_PCR_DSE_MASK; // FTM0 CH5 with high power operation&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Something to watch for when you get other people's code.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;myke&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 02 Aug 2013 18:25:38 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Has-anyone-generated-a-PWM-signal-for-a-Kinetis-without-using-PE/m-p/271407#M8336</guid>
      <dc:creator>myke_predko</dc:creator>
      <dc:date>2013-08-02T18:25:38Z</dc:date>
    </item>
  </channel>
</rss>

