<?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: I2S using DMA with an LPC4333 in LPC Microcontrollers</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/I2S-using-DMA-with-an-LPC4333/m-p/850718#M33825</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello &lt;A _jive_internal="true" data-content-finding="Community" data-userid="305375" data-username="jonathansmith" href="https://community.nxp.com/people/jonathansmith"&gt;Jonathan Smith&lt;/A&gt;,&lt;/P&gt;&lt;P&gt;- There is a I2S-DMA demo under LPCopen， you can download it at&lt;/P&gt;&lt;P&gt;&lt;A class="link-titled" href="https://www.nxp.com/products/processors-and-microcontrollers/arm-based-processors-and-mcus/lpc-cortex-m-mcus/lpc4300-cortex-m4-m0/lpcopen-software-development-platform-lpc43xx:LPCOPEN-SOFTWARE-FOR-LPC43XX?tab=Design_Tools_Tab" title="https://www.nxp.com/products/processors-and-microcontrollers/arm-based-processors-and-mcus/lpc-cortex-m-mcus/lpc4300-cortex-m4-m0/lpcopen-software-development-platform-lpc43xx:LPCOPEN-SOFTWARE-FOR-LPC43XX?tab=Design_Tools_Tab"&gt;LPCOpen Software for LPC43XX|NXP&lt;/A&gt; .&lt;/P&gt;&lt;P&gt;- About the sequence of memory-to-peripheral DMA flow, you can&amp;nbsp; take a look at LPC43XX User Manual&lt;/P&gt;&lt;P&gt;&lt;EM&gt;" &lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;memory-to-peripheral DMA flow,&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;1. Program and enable the DMA channel.&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;2. Wait for a DMA request.&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;3. The DMA Controller starts transferring data when:&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;– The DMA request goes active.&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;– The DMA stream has the highest pending priority.&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;– The DMA Controller is the bus master of the AHB bus.&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;4. If an error occurs while transferring the data, an error interrupt is generated and&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;disables the DMA stream, and the flow sequence ends.&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;5. Decrement the transfer count if the DMA Controller is performing the flow control.&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;6. If the transfer has completed (indicated by the transfer count reaching 0, if the DMA&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;Controller is performing flow control, or by the peripheral sending a DMA request, if&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;the peripheral is performing flow control):&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;– The DMA Controller responds with a DMA acknowledge.&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;– The terminal count interrupt is generated (this interrupt can be masked).&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;– If the CLLI Register is not 0, then reload the CSRCADDR, CDESTADDR, CLLI,&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;and CCONTROL registers and go to back to step 2.&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;"&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;- After refer to above , if still have question about this, please describe the issue in detail, DMA didn't&lt;/P&gt;&lt;P&gt;transfer data ? Or only transfer some of data ? Or some other problem.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope it helps,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Have a great day,&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>Fri, 04 Jan 2019 08:25:22 GMT</pubDate>
    <dc:creator>Alice_Yang</dc:creator>
    <dc:date>2019-01-04T08:25:22Z</dc:date>
    <item>
      <title>I2S using DMA with an LPC4333</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/I2S-using-DMA-with-an-LPC4333/m-p/850717#M33824</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I want to be able to send sine wave data to an external DAC through I2S0. I have the I2S interface working (using I2S interrupts) but this is causing too much disruption to some legacy comms code, so I want to try DMA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;From what I've read, I think it should be possible to write my sine wave data to contiguous memory. Then setup a DMA transfer to the I2S peripheral to transfer the data. Once this transfer completes, then trigger the DMA interrupt where I can send the sine wave data again. Have I got the right idea? The reason I ask this is that I can't seem to be able to get it to work. Is there a better way to do this?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm using the 'DMA routine for DAC example' in the dac.c example code in kocopen, as a basis for my code.&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 03 Jan 2019 16:14:24 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/I2S-using-DMA-with-an-LPC4333/m-p/850717#M33824</guid>
      <dc:creator>jonathansmith</dc:creator>
      <dc:date>2019-01-03T16:14:24Z</dc:date>
    </item>
    <item>
      <title>Re: I2S using DMA with an LPC4333</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/I2S-using-DMA-with-an-LPC4333/m-p/850718#M33825</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello &lt;A _jive_internal="true" data-content-finding="Community" data-userid="305375" data-username="jonathansmith" href="https://community.nxp.com/people/jonathansmith"&gt;Jonathan Smith&lt;/A&gt;,&lt;/P&gt;&lt;P&gt;- There is a I2S-DMA demo under LPCopen， you can download it at&lt;/P&gt;&lt;P&gt;&lt;A class="link-titled" href="https://www.nxp.com/products/processors-and-microcontrollers/arm-based-processors-and-mcus/lpc-cortex-m-mcus/lpc4300-cortex-m4-m0/lpcopen-software-development-platform-lpc43xx:LPCOPEN-SOFTWARE-FOR-LPC43XX?tab=Design_Tools_Tab" title="https://www.nxp.com/products/processors-and-microcontrollers/arm-based-processors-and-mcus/lpc-cortex-m-mcus/lpc4300-cortex-m4-m0/lpcopen-software-development-platform-lpc43xx:LPCOPEN-SOFTWARE-FOR-LPC43XX?tab=Design_Tools_Tab"&gt;LPCOpen Software for LPC43XX|NXP&lt;/A&gt; .&lt;/P&gt;&lt;P&gt;- About the sequence of memory-to-peripheral DMA flow, you can&amp;nbsp; take a look at LPC43XX User Manual&lt;/P&gt;&lt;P&gt;&lt;EM&gt;" &lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;memory-to-peripheral DMA flow,&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;1. Program and enable the DMA channel.&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;2. Wait for a DMA request.&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;3. The DMA Controller starts transferring data when:&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;– The DMA request goes active.&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;– The DMA stream has the highest pending priority.&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;– The DMA Controller is the bus master of the AHB bus.&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;4. If an error occurs while transferring the data, an error interrupt is generated and&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;disables the DMA stream, and the flow sequence ends.&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;5. Decrement the transfer count if the DMA Controller is performing the flow control.&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;6. If the transfer has completed (indicated by the transfer count reaching 0, if the DMA&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;Controller is performing flow control, or by the peripheral sending a DMA request, if&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;the peripheral is performing flow control):&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;– The DMA Controller responds with a DMA acknowledge.&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;– The terminal count interrupt is generated (this interrupt can be masked).&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;– If the CLLI Register is not 0, then reload the CSRCADDR, CDESTADDR, CLLI,&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;and CCONTROL registers and go to back to step 2.&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;"&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;- After refer to above , if still have question about this, please describe the issue in detail, DMA didn't&lt;/P&gt;&lt;P&gt;transfer data ? Or only transfer some of data ? Or some other problem.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope it helps,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Have a great day,&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>Fri, 04 Jan 2019 08:25:22 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/I2S-using-DMA-with-an-LPC4333/m-p/850718#M33825</guid>
      <dc:creator>Alice_Yang</dc:creator>
      <dc:date>2019-01-04T08:25:22Z</dc:date>
    </item>
  </channel>
</rss>

