<?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 Kinetis DMAMUX Errata Clarification Sought in Kinetis Microcontrollers</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Kinetis-DMAMUX-Errata-Clarification-Sought/m-p/322789#M14658</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi, in the Errata 1N86B, Section e4588: DMAMUX: When using PIT with "always enabled", there is mentioned a workaround involving mysterious &lt;STRONG&gt;"DMASREQ=channel"&lt;/STRONG&gt;. Could you, please, explain what it means (e.g. any DMAMUX or DMA register(s) like DMA_SERQ, and the corresponding value(s))? Thanks.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sun, 22 Jun 2014 22:03:32 GMT</pubDate>
    <dc:creator>hexman</dc:creator>
    <dc:date>2014-06-22T22:03:32Z</dc:date>
    <item>
      <title>Kinetis DMAMUX Errata Clarification Sought</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Kinetis-DMAMUX-Errata-Clarification-Sought/m-p/322789#M14658</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi, in the Errata 1N86B, Section e4588: DMAMUX: When using PIT with "always enabled", there is mentioned a workaround involving mysterious &lt;STRONG&gt;"DMASREQ=channel"&lt;/STRONG&gt;. Could you, please, explain what it means (e.g. any DMAMUX or DMA register(s) like DMA_SERQ, and the corresponding value(s))? Thanks.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 22 Jun 2014 22:03:32 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Kinetis-DMAMUX-Errata-Clarification-Sought/m-p/322789#M14658</guid>
      <dc:creator>hexman</dc:creator>
      <dc:date>2014-06-22T22:03:32Z</dc:date>
    </item>
    <item>
      <title>Re: Kinetis DMAMUX Errata Clarification Sought</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Kinetis-DMAMUX-Errata-Clarification-Sought/m-p/322790#M14659</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 don't use the PIT like this so didn't need to use the workaround but I am 99% sure that it just means&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;DMA_TCDn_CSR |= DMA_TCD_CSR_DREQ;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;DMAMUX_CHCFGn &amp;amp;= ~(DMAMUX_CHCFG_ENBL);&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;DMAMUX_CHCFGn |=&amp;nbsp; DMAMUX_CHCFG_ENBL;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Whereby the DMAMUX_CHCFGn register has a 6 bit DMA channel source (slot) which I think is being referred to by "DMASREQ=channel". In fact I don't know which channel number is entered initially when using the periodic triggering function (maybe it doesn't matter?).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As I understand the errata, the PIT can still be used to trigger a single major loop operation of 1 but then requires the interrupt to be handled. If the minor loop count is also 1 it then requires an interrupt for each DMA transfer, which would cancel much of the DMA operation benefit. If there is still a free FTM module or the LPTMR available these could possibly be used instead of PITs(?) to trigger DMA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Mark&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 23 Jun 2014 15:28:47 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Kinetis-DMAMUX-Errata-Clarification-Sought/m-p/322790#M14659</guid>
      <dc:creator>mjbcswitzerland</dc:creator>
      <dc:date>2014-06-23T15:28:47Z</dc:date>
    </item>
    <item>
      <title>Re: Kinetis DMAMUX Errata Clarification Sought</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Kinetis-DMAMUX-Errata-Clarification-Sought/m-p/322791#M14660</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Mark,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;finally got time to check this. It seems that the&lt;STRONG&gt; &lt;SPAN style="text-decoration: underline;"&gt;DMASREQ is a typo and actually means the DMA_SERQ register with its DMA channel enable bits&lt;/SPAN&gt;&lt;/STRONG&gt;. Additionally, without the clearing and re-enabling the ENBL bit in DMAMUX0_CHCFGn, the PIT trigger will be simply ignored and the DMA channel will work totally unimpeded.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;However, I got a &lt;SPAN style="text-decoration: underline;"&gt;&lt;STRONG&gt;different code for the DREQ bit&lt;/STRONG&gt;&lt;/SPAN&gt;. I set it BEFORE the very first start/activation of the DMA channel. Also in the DMA DONE interrupt I re-enable the automatically cleared DMA request enable bit ERQn in the DMA_ERQ register. Without re-enabling the ERQn, the DMA channel will simply stop. Asking the Freescale engineers, please, have a look at this!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;// enable DREQ and major loop interrupt BEFORE any DMA channel action&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;DMA_TCDn_CSR = DMA_CSR_DREQ_MASK | DMA_CSR_INTMAJOR_MASK;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;// DMAn interrupt handler&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;void DMAn_ISR (void) {&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="line-height: 1.5em; font-size: 10pt;"&gt;&lt;STRONG&gt;&amp;nbsp; DMA_CINT = DMA_CINT_CINT(n); // clear DMAn INTn flag&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="line-height: 1.5em; font-size: 10pt;"&gt;&lt;STRONG&gt;&lt;BR /&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="line-height: 1.5em; font-size: 10pt;"&gt;&lt;STRONG&gt;&amp;nbsp; // deassert DMAn request workaround&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp; DMAMUX0_CHCFGn &amp;amp;= ~DMAMUX_CHCFG_ENBL_MASK; // clear ENBL&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp; DMAMUX0_CHCFGn |=&amp;nbsp; DMAMUX_CHCFG_ENBL_MASK; // set ENBL&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp; DMA_SERQ = DMA_SERQ_SERQ(n); // re-enable DMAn request enable bit (set ERQn bit in DMA_ERQ)&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;&lt;STRONG&gt;}&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 29 Jun 2014 20:43:27 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Kinetis-DMAMUX-Errata-Clarification-Sought/m-p/322791#M14660</guid>
      <dc:creator>hexman</dc:creator>
      <dc:date>2014-06-29T20:43:27Z</dc:date>
    </item>
    <item>
      <title>Re: Kinetis DMAMUX Errata Clarification Sought</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Kinetis-DMAMUX-Errata-Clarification-Sought/m-p/322792#M14661</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Hexman,&lt;/P&gt;&lt;P&gt;Thank you very much for your focus on Freescale Kinetis product. I'm glad to provide service for you.&lt;/P&gt;&lt;P&gt;I've taked your Service Request:1-1850625733. I was also a little confused with the meaning of "&lt;STRONG&gt;DMASREQ=channel" &lt;/STRONG&gt;after had a brief look through the Errata 1N86B.&lt;/P&gt;&lt;P&gt;However I think the &lt;STRONG&gt;DMASREQ &lt;/STRONG&gt;is doc error and it should be &lt;STRONG&gt;SERQ&lt;/STRONG&gt; in DMA_SERQ register after I reviewed it again.&lt;/P&gt;&lt;P&gt;About the workaround, the difference between your workaround and the workaround provided in the Errata 1N86B 's the location of &lt;STRONG&gt;set the DMA_TCDn_CSR[DREQ] bit.&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;In my opinion, both methods are ok and you could try these both methods.&lt;/P&gt;&lt;P&gt;I'm looking forward your test result.&lt;BR /&gt;Have a great day,&lt;BR /&gt;Ping&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>Thu, 03 Jul 2014 03:38:11 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Kinetis-DMAMUX-Errata-Clarification-Sought/m-p/322792#M14661</guid>
      <dc:creator>jeremyzhou</dc:creator>
      <dc:date>2014-07-03T03:38:11Z</dc:date>
    </item>
    <item>
      <title>Re: Kinetis DMAMUX Errata Clarification Sought</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Kinetis-DMAMUX-Errata-Clarification-Sought/m-p/322793#M14662</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Jeremy,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;According to my tests, setting the DREQ bit only in the DMAn interrupt service routine will allow the DMAn channel to immediately restart one or more times until the CPU handles the DMAn interrupt and finally sets the DREQ bit.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;On the contrary, when the &lt;STRONG&gt;DREQ bit is set BEFORE any DMAn action&lt;/STRONG&gt;, the DMAn channel correctly stops right after the first pass (major loop completed).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So I will stick to my solution. The Errata 1N86B needs to be corrected.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hexman&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 03 Jul 2014 11:42:38 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Kinetis-DMAMUX-Errata-Clarification-Sought/m-p/322793#M14662</guid>
      <dc:creator>hexman</dc:creator>
      <dc:date>2014-07-03T11:42:38Z</dc:date>
    </item>
    <item>
      <title>Re: Kinetis DMAMUX Errata Clarification Sought</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Kinetis-DMAMUX-Errata-Clarification-Sought/m-p/322794#M14663</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Hexman,&lt;/P&gt;&lt;P&gt;Thanks for your reply.&lt;/P&gt;&lt;P&gt;I was wondering if you could upload your code, then I could test this code too.&lt;/P&gt;&lt;P&gt;I promise I will update you immediately when I get the test result and report this issue if the test result just like your description.&lt;BR /&gt;Have a great day,&lt;BR /&gt;Ping&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>Fri, 04 Jul 2014 02:06:44 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Kinetis-DMAMUX-Errata-Clarification-Sought/m-p/322794#M14663</guid>
      <dc:creator>jeremyzhou</dc:creator>
      <dc:date>2014-07-04T02:06:44Z</dc:date>
    </item>
  </channel>
</rss>

