<?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 KV10Z32 FTM won't work in Kinetis Microcontrollers</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/KV10Z32-FTM-won-t-work/m-p/343535#M16663</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm trying work with Keil uVision 5 on the KV10Z32 board. However, the FTM won't work properly and performs really weird.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;With the following code, I'm trying to configure TPM0 Ch0 to output a PWM signal on PTE24 and generate interrupt every switching period. However, the FTM would start working and count to some arbitrary value and stop working. I also found that when I enabled ADC and constantly sample with the ADC will enable the FTM counter to work. Besides, even when the FTM0 is counting, I can't even reset the overflow bit in FTM0-&amp;gt;SC because that would lead to hard fault handler.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I've attached the code. Calling the Init_PWM() in main function doesn't start the FTM counter while calling Init_PWM(), Init_ADC() and then starting ADC with ADC0-&amp;gt;SC1[0] = 0x49 will enable the FTM counter.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm desperate for help with this as I've got stuck on this for whole week.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks a lot.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void Init_PWM(void)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp; SIM-&amp;gt;SCGC6 |= SIM_SCGC6_FTM0_MASK;&lt;/P&gt;&lt;P&gt;&amp;nbsp; SIM-&amp;gt;SCGC5 |= (SIM_SCGC5_PORTA_MASK&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | SIM_SCGC5_PORTB_MASK&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | SIM_SCGC5_PORTC_MASK&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | SIM_SCGC5_PORTD_MASK&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | SIM_SCGC5_PORTE_MASK );&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTE-&amp;gt;PCR[24] = PORT_PCR_MUX(3);&lt;/P&gt;&lt;P&gt;&amp;nbsp; FTM0-&amp;gt;MOD=0xffff;&lt;/P&gt;&lt;P&gt;&amp;nbsp; FTM0-&amp;gt;CONTROLS[0].CnV&amp;nbsp; = 100;&lt;/P&gt;&lt;P&gt;&amp;nbsp; FTM0-&amp;gt;SC |= FTM_SC_PS(0) | FTM_SC_CLKS(1) | FTM_SC_TOIE_MASK;&lt;/P&gt;&lt;P&gt;&amp;nbsp; FTM0-&amp;gt;CONTROLS[0].CnSC = FTM_CnSC_MSB_MASK | FTM_CnSC_ELSB_MASK;&lt;/P&gt;&lt;P&gt;&amp;nbsp; NVIC_EnableIRQ(FTM0_IRQn);&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void Init_ADC(void)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp; SIM-&amp;gt;SCGC6 |= (1UL &amp;lt;&amp;lt; SIM_SCGC6_ADC0_SHIFT); &lt;/P&gt;&lt;P&gt;&amp;nbsp; ADC0-&amp;gt;CFG1 = 0x8C; // Select 16 bit resolution&lt;/P&gt;&lt;P&gt;&amp;nbsp; ADC0-&amp;gt;SC2 = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp; NVIC_EnableIRQ (ADC0_IRQn);&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void FTM0_IRQHandler(){&lt;/P&gt;&lt;P&gt;&amp;nbsp; NVIC_ClearPendingIRQ(FTM0_IRQn);&lt;/P&gt;&lt;P&gt;&amp;nbsp; FTM0-&amp;gt;SC &amp;amp;= ~FTM_SC_TOF_MASK;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void ADC0_IRQHandler()&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp; int q;&lt;/P&gt;&lt;P&gt;&amp;nbsp; NVIC_ClearPendingIRQ(ADC0_IRQn);&lt;/P&gt;&lt;P&gt;&amp;nbsp; q=ADC0-&amp;gt;R[0];&lt;/P&gt;&lt;P&gt;&amp;nbsp; ADC0-&amp;gt;SC1[0] = 0x49;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 24 Sep 2014 20:09:51 GMT</pubDate>
    <dc:creator>zhiqu</dc:creator>
    <dc:date>2014-09-24T20:09:51Z</dc:date>
    <item>
      <title>KV10Z32 FTM won't work</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/KV10Z32-FTM-won-t-work/m-p/343535#M16663</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm trying work with Keil uVision 5 on the KV10Z32 board. However, the FTM won't work properly and performs really weird.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;With the following code, I'm trying to configure TPM0 Ch0 to output a PWM signal on PTE24 and generate interrupt every switching period. However, the FTM would start working and count to some arbitrary value and stop working. I also found that when I enabled ADC and constantly sample with the ADC will enable the FTM counter to work. Besides, even when the FTM0 is counting, I can't even reset the overflow bit in FTM0-&amp;gt;SC because that would lead to hard fault handler.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I've attached the code. Calling the Init_PWM() in main function doesn't start the FTM counter while calling Init_PWM(), Init_ADC() and then starting ADC with ADC0-&amp;gt;SC1[0] = 0x49 will enable the FTM counter.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm desperate for help with this as I've got stuck on this for whole week.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks a lot.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void Init_PWM(void)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp; SIM-&amp;gt;SCGC6 |= SIM_SCGC6_FTM0_MASK;&lt;/P&gt;&lt;P&gt;&amp;nbsp; SIM-&amp;gt;SCGC5 |= (SIM_SCGC5_PORTA_MASK&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | SIM_SCGC5_PORTB_MASK&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | SIM_SCGC5_PORTC_MASK&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | SIM_SCGC5_PORTD_MASK&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | SIM_SCGC5_PORTE_MASK );&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTE-&amp;gt;PCR[24] = PORT_PCR_MUX(3);&lt;/P&gt;&lt;P&gt;&amp;nbsp; FTM0-&amp;gt;MOD=0xffff;&lt;/P&gt;&lt;P&gt;&amp;nbsp; FTM0-&amp;gt;CONTROLS[0].CnV&amp;nbsp; = 100;&lt;/P&gt;&lt;P&gt;&amp;nbsp; FTM0-&amp;gt;SC |= FTM_SC_PS(0) | FTM_SC_CLKS(1) | FTM_SC_TOIE_MASK;&lt;/P&gt;&lt;P&gt;&amp;nbsp; FTM0-&amp;gt;CONTROLS[0].CnSC = FTM_CnSC_MSB_MASK | FTM_CnSC_ELSB_MASK;&lt;/P&gt;&lt;P&gt;&amp;nbsp; NVIC_EnableIRQ(FTM0_IRQn);&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void Init_ADC(void)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp; SIM-&amp;gt;SCGC6 |= (1UL &amp;lt;&amp;lt; SIM_SCGC6_ADC0_SHIFT); &lt;/P&gt;&lt;P&gt;&amp;nbsp; ADC0-&amp;gt;CFG1 = 0x8C; // Select 16 bit resolution&lt;/P&gt;&lt;P&gt;&amp;nbsp; ADC0-&amp;gt;SC2 = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp; NVIC_EnableIRQ (ADC0_IRQn);&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void FTM0_IRQHandler(){&lt;/P&gt;&lt;P&gt;&amp;nbsp; NVIC_ClearPendingIRQ(FTM0_IRQn);&lt;/P&gt;&lt;P&gt;&amp;nbsp; FTM0-&amp;gt;SC &amp;amp;= ~FTM_SC_TOF_MASK;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void ADC0_IRQHandler()&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp; int q;&lt;/P&gt;&lt;P&gt;&amp;nbsp; NVIC_ClearPendingIRQ(ADC0_IRQn);&lt;/P&gt;&lt;P&gt;&amp;nbsp; q=ADC0-&amp;gt;R[0];&lt;/P&gt;&lt;P&gt;&amp;nbsp; ADC0-&amp;gt;SC1[0] = 0x49;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 24 Sep 2014 20:09:51 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/KV10Z32-FTM-won-t-work/m-p/343535#M16663</guid>
      <dc:creator>zhiqu</dc:creator>
      <dc:date>2014-09-24T20:09:51Z</dc:date>
    </item>
  </channel>
</rss>

