<?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>Layerscape中的主题 LS1021a FTM Quadrature Decoder Filtering</title>
    <link>https://community.nxp.com/t5/Layerscape/LS1021a-FTM-Quadrature-Decoder-Filtering/m-p/779843#M3436</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;We have implemented a Linux driver for the FTM Quadrature Decoder on an LS1021a based platform. The decoder works, but we are unable to enable the channel filtering for PHA and PHB. Our setup consists of the following register writes:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="language-c line-numbers"&gt;&lt;CODE&gt;&lt;SPAN class="comment token"&gt;/* working setup without filtering */&lt;/SPAN&gt;
&lt;SPAN class="token function"&gt;ftm_write&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;ftm_base&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; FTM_MODE&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; FTM_MODE_WPDIS &lt;SPAN class="operator token"&gt;|&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;/* disable write protect */&lt;/SPAN&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; FTM_MODE_FTMEN&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;/* enable FTM */&lt;/SPAN&gt;
&lt;SPAN class="token function"&gt;ftm_write&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;ftm_base&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; FTM_CNTIN&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0x0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;/* zero init value */&lt;/SPAN&gt;
&lt;SPAN class="token function"&gt;ftm_write&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;ftm_base&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; FTM_MOD&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0xffff&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;/* max overflow value */&lt;/SPAN&gt;
&lt;SPAN class="token function"&gt;ftm_write&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;ftm_base&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; FTM_CNT&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0x0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&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; &lt;SPAN class="comment token"&gt;/* set counter value */&lt;/SPAN&gt;
&lt;SPAN class="token function"&gt;ftm_write&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;ftm_base&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; FTM_SC&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; FTM_SC_PS_1&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;/* prescale with x1 */&lt;/SPAN&gt;
&lt;SPAN class="token function"&gt;ftm_write&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;ftm_base&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; FTM_QDCTRL&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; FTM_QDCTRL_QUADEN&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;/* select quad mode */&lt;/SPAN&gt;‍‍‍‍‍‍‍
&lt;SPAN class="token function"&gt;ftm_write&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;ftm_base&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; FTM_MODE&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; FTM_MODE_FTMEN&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;/* enable FTM (enable WP) */&lt;/SPAN&gt;‍‍‍‍‍‍‍‍‍&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;According to the reference manual, filtering is enabled by configuring the filter values in FTM_FILTER, and set the two enable bits in FTM_QDCTRL:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="language-c line-numbers"&gt;&lt;CODE&gt;&lt;SPAN class="comment token"&gt;/* Filter enable bits in FTM_QDCTRL aren't updated */&lt;/SPAN&gt;
&lt;SPAN class="token function"&gt;ftm_write&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;ftm_base&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; FTM_MODE&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; FTM_MODE_WPDIS &lt;SPAN class="operator token"&gt;|&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;/* disable write protect */&lt;/SPAN&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; FTM_MODE_FTMEN&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;/* enable FTM */&lt;/SPAN&gt;
&lt;SPAN class="token function"&gt;ftm_write&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;ftm_base&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; FTM_CNTIN&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0x0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;/* zero init value */&lt;/SPAN&gt;
&lt;SPAN class="token function"&gt;ftm_write&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;ftm_base&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; FTM_MOD&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0xffff&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;/* max overflow value */&lt;/SPAN&gt;
&lt;SPAN class="token function"&gt;ftm_write&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;ftm_base&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; FTM_CNT&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0x0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&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; &lt;SPAN class="comment token"&gt;/* set counter value */&lt;/SPAN&gt;
&lt;SPAN class="token function"&gt;ftm_write&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;ftm_base&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; FTM_SC&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; FTM_SC_PS_1&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;/* prescale with x1 */&lt;/SPAN&gt;
&lt;SPAN class="token function"&gt;ftm_write&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;ftm_base&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; FTM_FILTER&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0xff&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;/* max filter on PHA and PHB */&lt;/SPAN&gt;

&lt;SPAN class="comment token"&gt;/* this write seems to have no effect on the two filter bits? */&lt;/SPAN&gt;
&lt;SPAN class="token function"&gt;ftm_write&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;ftm_base&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; FTM_QDCTRL&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; FTM_QDCTRL_QUADEN &lt;SPAN class="operator token"&gt;|&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;/* select quad mode */&lt;/SPAN&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; FTM_QDCTRL_PHAFLTREN &lt;SPAN class="operator token"&gt;|&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;/* enable PHA filter */&lt;/SPAN&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; FTM_QDCTRL_PHBFLTREN&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;/* enable PHB filter */&lt;/SPAN&gt;

&lt;SPAN class="token function"&gt;ftm_write&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;ftm_base&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; FTM_MODE&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; FTM_MODE_FTMEN&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;/* enable FTM (enable WP) */&lt;/SPAN&gt;‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;When reading back the FTM_QDCTRL register only bit zero is set (FTM_QDCTRL_QUADEN), and the rest is zero. We have tried setting other bits in the same register (i.e. FTM_QDCTRL_PHAPOL and FTM_QDCTRL_PHBPOL), which works fine.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have tried initializing the same registers on the LS1021a-twr evaluation board running the freescale BSP with the same results.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Is there some inter-register dependency for PHAFLTREN and PHAFLTREN that we have missed?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Martin&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 11 Jan 2018 14:06:31 GMT</pubDate>
    <dc:creator>martinhundebøll</dc:creator>
    <dc:date>2018-01-11T14:06:31Z</dc:date>
    <item>
      <title>LS1021a FTM Quadrature Decoder Filtering</title>
      <link>https://community.nxp.com/t5/Layerscape/LS1021a-FTM-Quadrature-Decoder-Filtering/m-p/779843#M3436</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;We have implemented a Linux driver for the FTM Quadrature Decoder on an LS1021a based platform. The decoder works, but we are unable to enable the channel filtering for PHA and PHB. Our setup consists of the following register writes:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="language-c line-numbers"&gt;&lt;CODE&gt;&lt;SPAN class="comment token"&gt;/* working setup without filtering */&lt;/SPAN&gt;
&lt;SPAN class="token function"&gt;ftm_write&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;ftm_base&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; FTM_MODE&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; FTM_MODE_WPDIS &lt;SPAN class="operator token"&gt;|&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;/* disable write protect */&lt;/SPAN&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; FTM_MODE_FTMEN&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;/* enable FTM */&lt;/SPAN&gt;
&lt;SPAN class="token function"&gt;ftm_write&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;ftm_base&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; FTM_CNTIN&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0x0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;/* zero init value */&lt;/SPAN&gt;
&lt;SPAN class="token function"&gt;ftm_write&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;ftm_base&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; FTM_MOD&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0xffff&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;/* max overflow value */&lt;/SPAN&gt;
&lt;SPAN class="token function"&gt;ftm_write&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;ftm_base&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; FTM_CNT&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0x0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&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; &lt;SPAN class="comment token"&gt;/* set counter value */&lt;/SPAN&gt;
&lt;SPAN class="token function"&gt;ftm_write&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;ftm_base&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; FTM_SC&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; FTM_SC_PS_1&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;/* prescale with x1 */&lt;/SPAN&gt;
&lt;SPAN class="token function"&gt;ftm_write&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;ftm_base&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; FTM_QDCTRL&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; FTM_QDCTRL_QUADEN&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;/* select quad mode */&lt;/SPAN&gt;‍‍‍‍‍‍‍
&lt;SPAN class="token function"&gt;ftm_write&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;ftm_base&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; FTM_MODE&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; FTM_MODE_FTMEN&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;/* enable FTM (enable WP) */&lt;/SPAN&gt;‍‍‍‍‍‍‍‍‍&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;According to the reference manual, filtering is enabled by configuring the filter values in FTM_FILTER, and set the two enable bits in FTM_QDCTRL:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="language-c line-numbers"&gt;&lt;CODE&gt;&lt;SPAN class="comment token"&gt;/* Filter enable bits in FTM_QDCTRL aren't updated */&lt;/SPAN&gt;
&lt;SPAN class="token function"&gt;ftm_write&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;ftm_base&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; FTM_MODE&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; FTM_MODE_WPDIS &lt;SPAN class="operator token"&gt;|&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;/* disable write protect */&lt;/SPAN&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; FTM_MODE_FTMEN&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;/* enable FTM */&lt;/SPAN&gt;
&lt;SPAN class="token function"&gt;ftm_write&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;ftm_base&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; FTM_CNTIN&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0x0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;/* zero init value */&lt;/SPAN&gt;
&lt;SPAN class="token function"&gt;ftm_write&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;ftm_base&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; FTM_MOD&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0xffff&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;/* max overflow value */&lt;/SPAN&gt;
&lt;SPAN class="token function"&gt;ftm_write&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;ftm_base&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; FTM_CNT&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0x0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&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; &lt;SPAN class="comment token"&gt;/* set counter value */&lt;/SPAN&gt;
&lt;SPAN class="token function"&gt;ftm_write&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;ftm_base&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; FTM_SC&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; FTM_SC_PS_1&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;/* prescale with x1 */&lt;/SPAN&gt;
&lt;SPAN class="token function"&gt;ftm_write&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;ftm_base&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; FTM_FILTER&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0xff&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;/* max filter on PHA and PHB */&lt;/SPAN&gt;

&lt;SPAN class="comment token"&gt;/* this write seems to have no effect on the two filter bits? */&lt;/SPAN&gt;
&lt;SPAN class="token function"&gt;ftm_write&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;ftm_base&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; FTM_QDCTRL&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; FTM_QDCTRL_QUADEN &lt;SPAN class="operator token"&gt;|&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;/* select quad mode */&lt;/SPAN&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; FTM_QDCTRL_PHAFLTREN &lt;SPAN class="operator token"&gt;|&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;/* enable PHA filter */&lt;/SPAN&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; FTM_QDCTRL_PHBFLTREN&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;/* enable PHB filter */&lt;/SPAN&gt;

&lt;SPAN class="token function"&gt;ftm_write&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;ftm_base&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; FTM_MODE&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; FTM_MODE_FTMEN&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;/* enable FTM (enable WP) */&lt;/SPAN&gt;‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;When reading back the FTM_QDCTRL register only bit zero is set (FTM_QDCTRL_QUADEN), and the rest is zero. We have tried setting other bits in the same register (i.e. FTM_QDCTRL_PHAPOL and FTM_QDCTRL_PHBPOL), which works fine.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have tried initializing the same registers on the LS1021a-twr evaluation board running the freescale BSP with the same results.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Is there some inter-register dependency for PHAFLTREN and PHAFLTREN that we have missed?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Martin&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 11 Jan 2018 14:06:31 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Layerscape/LS1021a-FTM-Quadrature-Decoder-Filtering/m-p/779843#M3436</guid>
      <dc:creator>martinhundebøll</dc:creator>
      <dc:date>2018-01-11T14:06:31Z</dc:date>
    </item>
    <item>
      <title>Re: LS1021a FTM Quadrature Decoder Filtering</title>
      <link>https://community.nxp.com/t5/Layerscape/LS1021a-FTM-Quadrature-Decoder-Filtering/m-p/779844#M3437</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;PRE class=""&gt;&lt;CODE&gt;The following is said in LS1021A Reference Manual, Section 21.4.19: 
&lt;/CODE&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;CODE&gt;Writing to the FILTER register has immediate effect and must
be done only when the channels 0, 1, 2, and 3 are not in input
modes. Failure to do this could result in a missing valid signal.&lt;/CODE&gt;&lt;/BLOCKQUOTE&gt;&lt;/PRE&gt;&lt;PRE class=""&gt;&lt;CODE&gt;I do not see where in your code you are changing channel mode. 
The default channel mode is input.&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;BR /&gt;Have a great day,&lt;BR /&gt;Alexander&lt;BR /&gt;TIC&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 15 Jan 2018 06:12:07 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Layerscape/LS1021a-FTM-Quadrature-Decoder-Filtering/m-p/779844#M3437</guid>
      <dc:creator>alexander_yakov</dc:creator>
      <dc:date>2018-01-15T06:12:07Z</dc:date>
    </item>
    <item>
      <title>Re: LS1021a FTM Quadrature Decoder Filtering</title>
      <link>https://community.nxp.com/t5/Layerscape/LS1021a-FTM-Quadrature-Decoder-Filtering/m-p/779845#M3438</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Alexander,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;According to Section 21.4.6 in the reference manual, the module defaults to "Not Used" modes (FTM_CnSC[ELSnB:ELSnA] = 00), which I interpret as "not in input modes".&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have tried setting channels 0, 1, 2, and 3 to "Output Compare modes" by setting FTM_CnSC = 0x14 prior to setting FTM_FILTER:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="language-c line-numbers"&gt;&lt;CODE&gt;&lt;SPAN class="comment token"&gt;/* Filter enable bits in FTM_QDCTRL aren't updated */&lt;/SPAN&gt;
&lt;SPAN class="token function"&gt;ftm_write&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;ftm_base&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; FTM_MODE&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; FTM_MODE_WPDIS &lt;SPAN class="operator token"&gt;|&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;/* disable write protect */&lt;/SPAN&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; FTM_MODE_FTMEN&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;/* enable FTM */&lt;/SPAN&gt;
&lt;SPAN class="token function"&gt;ftm_write&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;ftm_base&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; FTM_CNTIN&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0x0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;/* zero init value */&lt;/SPAN&gt;
&lt;SPAN class="token function"&gt;ftm_write&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;ftm_base&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; FTM_MOD&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0xffff&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;/* max overflow value */&lt;/SPAN&gt;
&lt;SPAN class="token function"&gt;ftm_write&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;ftm_base&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; FTM_CNT&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0x0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&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; &lt;SPAN class="comment token"&gt;/* set counter value */&lt;/SPAN&gt;
&lt;SPAN class="token function"&gt;ftm_write&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;ftm_base&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; FTM_SC&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; FTM_SC_PS_1&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;/* prescale with x1 */&lt;/SPAN&gt;

&lt;SPAN class="comment token"&gt;/* Set channels 0, 1, 2, and 3 to output compare mode */&lt;/SPAN&gt;
&lt;SPAN class="token function"&gt;ftm_write&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;FTM_C0SC&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0x14&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;/* channel 0 as output compare */&lt;/SPAN&gt;
&lt;SPAN class="token function"&gt;ftm_write&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;FTM_C1SC&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0x14&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;/* channel 1 as output compare */&lt;/SPAN&gt;
&lt;SPAN class="token function"&gt;ftm_write&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;FTM_C2SC&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0x14&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;/* channel 1 as output compare */&lt;/SPAN&gt;
&lt;SPAN class="token function"&gt;ftm_write&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;FTM_C3SC&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0x14&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;/* channel 1 as output compare */&lt;/SPAN&gt;

&lt;SPAN class="token function"&gt;ftm_write&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;ftm_base&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; FTM_FILTER&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0xff&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;/* max filter on PHA and PHB */&lt;/SPAN&gt;

&lt;SPAN class="comment token"&gt;/* this write seems to have no effect on the two filter bits? */&lt;/SPAN&gt;
&lt;SPAN class="token function"&gt;ftm_write&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;ftm_base&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; FTM_QDCTRL&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; FTM_QDCTRL_QUADEN &lt;SPAN class="operator token"&gt;|&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;/* select quad mode */&lt;/SPAN&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; FTM_QDCTRL_PHAFLTREN &lt;SPAN class="operator token"&gt;|&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;/* enable PHA filter */&lt;/SPAN&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; FTM_QDCTRL_PHBFLTREN&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;/* enable PHB filter */&lt;/SPAN&gt;

&lt;SPAN class="token function"&gt;ftm_write&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;ftm_base&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; FTM_MODE&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; FTM_MODE_FTMEN&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;/* enable FTM (enable WP) */&lt;/SPAN&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Changing the channel modes makes no difference regarding the PHxFLTREN bits not being written to the FTM_QDCTRL register.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 15 Jan 2018 08:52:46 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Layerscape/LS1021a-FTM-Quadrature-Decoder-Filtering/m-p/779845#M3438</guid>
      <dc:creator>martinhundebøll</dc:creator>
      <dc:date>2018-01-15T08:52:46Z</dc:date>
    </item>
    <item>
      <title>Re: LS1021a FTM Quadrature Decoder Filtering</title>
      <link>https://community.nxp.com/t5/Layerscape/LS1021a-FTM-Quadrature-Decoder-Filtering/m-p/779846#M3439</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I tried following the example from Section 3.10 ('Quadrature decoder mode') from &lt;A href="http://cache.freescale.com/files/32bit/doc/app_note/AN5142.pdf?fsrch=1&amp;amp;sr=1&amp;amp;pageNum=1" rel="nofollow noopener noreferrer" title="http://cache.freescale.com/files/32bit/doc/app_note/AN5142.pdf?fsrch=1&amp;amp;sr=1&amp;amp;pageNum=1" target="_blank"&gt;http://cache.freescale.com/files/32bit/doc/app_note/AN5142.pdf&lt;/A&gt; (AN5142.PDF), but I still cannot set the filter-enable bits of the QDCTRL register:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="language-c line-numbers"&gt;&lt;CODE&gt;&lt;SPAN class="comment token"&gt;//using FTM1 as quadrature module, enable FTM0 and FTM1 clock&lt;/SPAN&gt;
SIM_SCGC6&lt;SPAN class="operator token"&gt;|&lt;/SPAN&gt;&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;0x03000000&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;//enable FTM0 and FTM1 module clock&lt;/SPAN&gt;
FTM1_SC&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;0x00&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;//initialize the FTM1 module as quadrature mode&lt;/SPAN&gt;
FTM1_MOD&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;20&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
FTM1_CNTIN&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;0x00&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
FTM1_C0SC&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;0x00&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
FTM1_C1SC&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;0x00&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
FTM1_QDCTRL&lt;SPAN class="operator token"&gt;|&lt;/SPAN&gt;&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;0xC1&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;//enable quadrature mode&lt;/SPAN&gt;
FTM1_MODE&lt;SPAN class="operator token"&gt;|&lt;/SPAN&gt;&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;0x05&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;//enable FTM1 module&lt;/SPAN&gt;
&lt;SPAN class="comment token"&gt;//quadrature mode which PhaseA and PhaseB signal have 90 degree shift&lt;/SPAN&gt;
FTM1_SC&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;0x48&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;//enable counter overflow interrupt&lt;/SPAN&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 15 Jan 2018 12:21:52 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Layerscape/LS1021a-FTM-Quadrature-Decoder-Filtering/m-p/779846#M3439</guid>
      <dc:creator>martinhundebøll</dc:creator>
      <dc:date>2018-01-15T12:21:52Z</dc:date>
    </item>
    <item>
      <title>Re: LS1021a FTM Quadrature Decoder Filtering</title>
      <link>https://community.nxp.com/t5/Layerscape/LS1021a-FTM-Quadrature-Decoder-Filtering/m-p/779847#M3440</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I have been following up on this problem, and nothing seems to change the values of&amp;nbsp;PHAFLTREN and&amp;nbsp;PHBFLTREN, below is how my initialization of the FTM module is done in the kernel driver at boot time. I verify the settings of the FTM_SC registers and the&amp;nbsp;FTM_FILTER to this:&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;ftm-quaddec QDCTRL register: PHAFLTREN=0 PHBFLTREN=0 PHAPOL=0 PHBPOL=0 QUADMODE=0 QUADDIR=0 TOFDIR=0 QUADEN=1 flag=1&lt;BR /&gt;ftm-quaddec C0SC=85 C1SC=85 ftm_filter=ffff&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;I wonder if&amp;nbsp;anybody has gotten these filters working?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;static int initialize_ftm_quaddec(void __iomem *ftm_base)&lt;BR /&gt;{&lt;BR /&gt; uint8_t flag = 0x0;&lt;/P&gt;&lt;P&gt;clear_write_protection(ftm_base);&lt;/P&gt;&lt;P&gt;/* Do not write in the region from the CNTIN register through the&lt;BR /&gt; PWMLOAD register when FTMEN = 0. */&lt;BR /&gt; ftm_write(ftm_base,FTM_MODE, FTM_MODE_FTMEN);&lt;/P&gt;&lt;P&gt;/* Set the CTNIN - MOD range 0x0000-0xFFFF */&lt;BR /&gt; ftm_write(ftm_base,FTM_CNTIN, 0x0);&lt;BR /&gt; ftm_write(ftm_base,FTM_MOD, 0xffff);&lt;BR /&gt; /* Reset CNT to CNTIN by writing any value */&lt;BR /&gt; ftm_write(ftm_base,FTM_CNT, 0x0);&lt;/P&gt;&lt;P&gt;flag = 0x0;&lt;BR /&gt; /* interrupts not used;&amp;nbsp; */&lt;BR /&gt; /* Prescale divide by 1 =&amp;gt; 0 */&lt;BR /&gt; /* Stop the clock CLKS */&lt;BR /&gt; flag |= FTM_SC_PS_1;&lt;BR /&gt; ftm_write(ftm_base,FTM_SC, flag);&lt;/P&gt;&lt;P&gt;/* Set channels 0, 1, 2, and 3 to output compare mode */&lt;BR /&gt; ftm_write(ftm_base, FTM_C0SC, 0x14); /* channel 0 as output compare */&lt;BR /&gt; ftm_write(ftm_base, FTM_C1SC, 0x14); /* channel 1 as output compare */&lt;BR /&gt; ftm_write(ftm_base, FTM_C2SC, 0x14); /* channel 1 as output compare */&lt;BR /&gt; ftm_write(ftm_base, FTM_C3SC, 0x14); /* channel 1 as output compare */&lt;BR /&gt; ftm_write(ftm_base, FTM_FILTER, 0xffff); /* max filter on PHA and PHB */&lt;/P&gt;&lt;P&gt;flag = 0x0;&lt;BR /&gt; /* input filters not used */&lt;BR /&gt; /* use normal polarity */&lt;BR /&gt; /* Phase A and Phase B encoding mode */&lt;BR /&gt; flag |= FTM_QDCTRL_QUADEN; /* QUADEN Enable Quadrature Decode mode */&lt;BR /&gt; flag |= FTM_QDCTRL_PHAFLTREN; /* enable PHA filter */&lt;BR /&gt; flag |= FTM_QDCTRL_PHBFLTREN; /* enable PHB filter */&lt;BR /&gt; ftm_write(ftm_base,FTM_QDCTRL, flag);&lt;BR /&gt; decode_QDCTRL(ftm_base,NULL);&lt;/P&gt;&lt;P&gt;/* Reset channels 0, 1, 2, and 3 to input mode */&lt;BR /&gt; ftm_write(ftm_base, FTM_C0SC, 5); /* channel 0 as input */&lt;BR /&gt; ftm_write(ftm_base, FTM_C1SC, 5); /* channel 1 as input */&lt;BR /&gt; ftm_write(ftm_base, FTM_C2SC, 5); /* channel 1 as input */&lt;BR /&gt; ftm_write(ftm_base, FTM_C3SC, 5); /* channel 1 as input */&lt;/P&gt;&lt;P&gt;decode_QDCTRL(ftm_base,NULL);&lt;BR /&gt; decode_filters(ftm_base,NULL);&lt;/P&gt;&lt;P&gt;/* Unused features and reset to default section */&lt;BR /&gt; ftm_write(ftm_base,FTM_POL, 0x0); /* Define the POL bits. */&lt;BR /&gt; /* all channels active high */&lt;BR /&gt; ftm_write(ftm_base,FTM_FLTCTRL, 0x0); /* all faults disabled */&lt;BR /&gt; ftm_write(ftm_base,FTM_SYNCONF, 0x0); /* disable all sync */&lt;BR /&gt; ftm_write(ftm_base,FTM_SYNC, 0xffff);&lt;/P&gt;&lt;P&gt;/* lock the FTM */&lt;BR /&gt; set_write_protection(ftm_base);&lt;BR /&gt; return 0;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 16 Jan 2018 14:50:44 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Layerscape/LS1021a-FTM-Quadrature-Decoder-Filtering/m-p/779847#M3440</guid>
      <dc:creator>kjeldflarup</dc:creator>
      <dc:date>2018-01-16T14:50:44Z</dc:date>
    </item>
    <item>
      <title>Re: LS1021a FTM Quadrature Decoder Filtering</title>
      <link>https://community.nxp.com/t5/Layerscape/LS1021a-FTM-Quadrature-Decoder-Filtering/m-p/779848#M3441</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;After a longer discussion with NXP support we got this answer:&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;Looks like this is going to be a chip errata. The PHAFLTREN and PHBFLTREN bits are tide to zero internally and these bits can not be set. &lt;BR /&gt;Flextimer cannot use Filter in Quadrature Decoder Mode.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 01 May 2018 06:49:09 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Layerscape/LS1021a-FTM-Quadrature-Decoder-Filtering/m-p/779848#M3441</guid>
      <dc:creator>kjeldflarup</dc:creator>
      <dc:date>2018-05-01T06:49:09Z</dc:date>
    </item>
  </channel>
</rss>

