<?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: SAI I2S blocking kl17, EDMA vs DMA in Kinetis Microcontrollers</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/SAI-I2S-blocking-kl17-EDMA-vs-DMA/m-p/485823#M29818</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;'K' series parts (even K10) have an SAI with more capable bus modes including MANY analog channels per RX/TX pair in a TDM or AC97 mode.&amp;nbsp; The DMA to such a channel can be configured to do ALL channel (de-)interleave and double-buffering. For reference, see also:&lt;/P&gt;&lt;P&gt;&lt;A href="https://community.nxp.com/thread/81904"&gt;is there any demo code for using I2S?&lt;/A&gt; &lt;/P&gt;&lt;P&gt;BUT unfortunately in that post, my code was made for the 'Ver 1' ('Z') silicon, and the I2S/SAI changed significantly going into V2 silicon, so the setup of that interface is NOT going to directly apply to current devices...&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 03 May 2016 21:24:17 GMT</pubDate>
    <dc:creator>egoodii</dc:creator>
    <dc:date>2016-05-03T21:24:17Z</dc:date>
    <item>
      <title>SAI I2S blocking kl17, EDMA vs DMA</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/SAI-I2S-blocking-kl17-EDMA-vs-DMA/m-p/485821#M29816</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have a few questions surrounding the attached simple example project transmitting I2S data against an MKL17Z256VFM4. First, is it possible to transmit continuously without delay using a circular ping pong DMA buffer &lt;STRONG&gt;without using 2 DMA channels&lt;/STRONG&gt;? Does that require EDMA (not on MKL17)? Why doesn't the __asm("bkpt #0") breakpoint in main ever trigger (why does SAI_DRV_SendDataDma block?)&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This looks good…&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="148239_148239.PNG"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/121496i8CB2C789EC5556C3/image-size/large?v=v2&amp;amp;px=999" role="button" title="148239_148239.PNG" alt="148239_148239.PNG" /&gt;&lt;/span&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="Capture1.PNG"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/55975i4D26C654AA83FE0B/image-size/large?v=v2&amp;amp;px=999" role="button" title="Capture1.PNG" alt="Capture1.PNG" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;zoomed out - not so good:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="148240_148240.PNG"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/121497i17402AA84A1F4FD4/image-size/large?v=v2&amp;amp;px=999" role="button" title="148240_148240.PNG" alt="148240_148240.PNG" /&gt;&lt;/span&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="Capture2.PNG"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/56057iA74D1D13045153BA/image-size/large?v=v2&amp;amp;px=999" role="button" title="Capture2.PNG" alt="Capture2.PNG" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;It looks like I could create a ping pong buffer using 2 dma channels per RX and 2 channels per TX like the sample code from &lt;A _jive_internal="true" data-containerid="2019" data-containertype="14" data-objectid="81904" data-objecttype="1" href="https://community.nxp.com/thread/81904"&gt;is there any demo code for using I2S?&lt;/A&gt; , but I'm going to need all 4 dma channels on the MKL17 for my application (1 for SAI/I2S tx, 1 for SAI/I2S rx, 1 for FlexIO/TDM tx, 1 for FlexIO/TDM rx).&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Edit:&lt;/STRONG&gt; To clarify my application, I need to:&lt;/P&gt;&lt;P&gt;- Implement a 4-channel TDM driver using FlexIO&lt;/P&gt;&lt;P&gt;- Forward 2 (L,R) incoming I2S channels to outgoing TDM&lt;/P&gt;&lt;P&gt;- Forward 3 (L, R, Mic) incoming TDM channels to two outgoing I2S channels (one SAI, one FlexIO)&lt;/P&gt;&lt;P&gt;- No processing, just conversion between digital audio standards&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm interested in the viability of this on an &lt;STRONG&gt;MKL17.&lt;/STRONG&gt; &lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Jake Jennings&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Original Attachment has been moved to: &lt;A _jive_internal="true" href="https://community.nxp.com/docs/DOC-337342"&gt;test-sai-i2s-dma.zip&lt;/A&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 28 Apr 2016 17:43:56 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/SAI-I2S-blocking-kl17-EDMA-vs-DMA/m-p/485821#M29816</guid>
      <dc:creator>jacobjennings</dc:creator>
      <dc:date>2016-04-28T17:43:56Z</dc:date>
    </item>
    <item>
      <title>Re: SAI I2S blocking kl17, EDMA vs DMA</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/SAI-I2S-blocking-kl17-EDMA-vs-DMA/m-p/485822#M29817</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;To achieve 2x i2s TX, 1x i2s RX, TDM4 TX and TDM4 RX on one chip, I have drawn the following conclusions:&lt;/P&gt;&lt;P&gt;- Most chips have 1 SAI module which supports only 2 channels L/R, 1x RX, 1x TX&lt;/P&gt;&lt;P&gt;- Higher end chips have SAI module that supports left-aligned TDM, but still 1x RX 1x TX&lt;/P&gt;&lt;P&gt;- With basic DMA, for continuous conversion, you must use 2 channels to make a ping-pong buffer&lt;/P&gt;&lt;P&gt;- With enhanced eDMA, you can set up ping-pong buffers with a single eDMA channel&lt;/P&gt;&lt;P&gt;- FlexIO could be used for i2s, but chips with one SAI module AND FlexIO all only have 4 channels of basic DMA (not eDMA) except K8x&lt;/P&gt;&lt;P&gt;- 4 is not enough DMA channels for continuous conversion&lt;/P&gt;&lt;P&gt;- K8x is the only option for this application&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Unfortunately, going from a KL17 to a K8x chip is a serious cost increase. Any advice or corrections are welcome. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Jake&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 03 May 2016 19:38:56 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/SAI-I2S-blocking-kl17-EDMA-vs-DMA/m-p/485822#M29817</guid>
      <dc:creator>jacobjennings</dc:creator>
      <dc:date>2016-05-03T19:38:56Z</dc:date>
    </item>
    <item>
      <title>Re: SAI I2S blocking kl17, EDMA vs DMA</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/SAI-I2S-blocking-kl17-EDMA-vs-DMA/m-p/485823#M29818</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;'K' series parts (even K10) have an SAI with more capable bus modes including MANY analog channels per RX/TX pair in a TDM or AC97 mode.&amp;nbsp; The DMA to such a channel can be configured to do ALL channel (de-)interleave and double-buffering. For reference, see also:&lt;/P&gt;&lt;P&gt;&lt;A href="https://community.nxp.com/thread/81904"&gt;is there any demo code for using I2S?&lt;/A&gt; &lt;/P&gt;&lt;P&gt;BUT unfortunately in that post, my code was made for the 'Ver 1' ('Z') silicon, and the I2S/SAI changed significantly going into V2 silicon, so the setup of that interface is NOT going to directly apply to current devices...&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 03 May 2016 21:24:17 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/SAI-I2S-blocking-kl17-EDMA-vs-DMA/m-p/485823#M29818</guid>
      <dc:creator>egoodii</dc:creator>
      <dc:date>2016-05-03T21:24:17Z</dc:date>
    </item>
    <item>
      <title>Re: SAI I2S blocking kl17, EDMA vs DMA</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/SAI-I2S-blocking-kl17-EDMA-vs-DMA/m-p/485824#M29819</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;The TDM support in K series is nice, but I need to run 2X TDM and 3X I2S (1 rx 2 tx) simultaneously which does not seem possible until K8x&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 03 May 2016 21:48:50 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/SAI-I2S-blocking-kl17-EDMA-vs-DMA/m-p/485824#M29819</guid>
      <dc:creator>jacobjennings</dc:creator>
      <dc:date>2016-05-03T21:48:50Z</dc:date>
    </item>
    <item>
      <title>Re: SAI I2S blocking kl17, EDMA vs DMA</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/SAI-I2S-blocking-kl17-EDMA-vs-DMA/m-p/485825#M29820</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;The ADAU1761 DSP I am using only has one set of digital TX/RX, which is why I wanted to do I2S &amp;lt;-&amp;gt; TDM4 conversions to interface with several I2S-only components. I think it will be better to switch to the TI C5000 series DSP instead of using the main MCU as a converter.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 03 May 2016 21:53:03 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/SAI-I2S-blocking-kl17-EDMA-vs-DMA/m-p/485825#M29820</guid>
      <dc:creator>jacobjennings</dc:creator>
      <dc:date>2016-05-03T21:53:03Z</dc:date>
    </item>
    <item>
      <title>Re: SAI I2S blocking kl17, EDMA vs DMA</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/SAI-I2S-blocking-kl17-EDMA-vs-DMA/m-p/485826#M29821</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;My mistake: Although most K series have 1 SAI module, some of them support multiple RX/TX lines while sharing clock lines, such as K24, K64&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 12 May 2016 20:17:15 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/SAI-I2S-blocking-kl17-EDMA-vs-DMA/m-p/485826#M29821</guid>
      <dc:creator>jacobjennings</dc:creator>
      <dc:date>2016-05-12T20:17:15Z</dc:date>
    </item>
  </channel>
</rss>

