<?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>LPC MicrocontrollersのトピックLPC43xx - I2S1 Rx -&amp;gt; I2S0 Tx P2P DMA?</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC43xx-I2S1-Rx-gt-I2S0-Tx-P2P-DMA/m-p/615979#M24065</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;On the NGX 4330 Xplorer board, the I2S DMA sample demonstrates nicely using the peripheral to peripheral DMA transfer (GPDMA_TRANSFERTYPE_P2P_CONTROLLER_SrcPERIPHERAL) from the RX to TX paths on the I2S0 peripheral:&amp;nbsp;&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t continue_Flag = 1, bufferUART = 0xFF;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_I2S_DMA_TxCmd(CODEC_I2S_BUS, I2S_DMA_REQUEST_CHANNEL_1, ENABLE, 4);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_I2S_DMA_RxCmd(CODEC_I2S_BUS, I2S_DMA_REQUEST_CHANNEL_2, ENABLE, 4);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Initialize GPDMA controller */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_GPDMA_Init(LPC_GPDMA);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Setting GPDMA interrupt */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;NVIC_DisableIRQ(DMA_IRQn);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;NVIC_SetPriority(DMA_IRQn, ((0x01 &amp;lt;&amp;lt; 3) | 0x01));&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;NVIC_EnableIRQ(DMA_IRQn);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;dmaChannelNum_I2S_Rx = Chip_GPDMA_GetFreeChannel(LPC_GPDMA, I2S_DMA_RX_CHAN);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_GPDMA_Transfer(LPC_GPDMA, dmaChannelNum_I2S_Rx,&lt;BR /&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; I2S_DMA_RX_CHAN,&lt;BR /&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; I2S_DMA_TX_CHAN,&lt;BR /&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; GPDMA_TRANSFERTYPE_P2P_CONTROLLER_SrcPERIPHERAL,&lt;BR /&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; 1);&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;However, in the application I am targeting, I want to connect two different I2S source devices onto the pins of I2S0 and use the pin mux to switch between the two sources.&amp;nbsp; That part is simple enough.&amp;nbsp; I2S1 is used as the transmitter to an I2S amplifier. &amp;nbsp; BEFORE spinning a board I want to determined if it is possible to use the peripheral to peripheral DMA transfer between I2S1 receiver to trigger transfer to the I2S0 transmitter.&amp;nbsp; I'm trying to avoid buffering and transmitting from a buffer if possible.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm assuming the DMA example will work by changing the I2S base peripheral in the Chip_I2S_DMA_RxCmd DMA setup but I it is difficult to test with the NGX Xplorer board.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Does anyone know if this is possible?&amp;nbsp; If so, do you know what the Chip_I2S_DMA_TxCmd( I2S1..) , Chip_I2S_DMA_RxCmd( I2S0..) and Chip_GPDMA_Transfer setup is for triggering between the two I2S peripherals for this scenario?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 23 Nov 2016 15:50:44 GMT</pubDate>
    <dc:creator>nsmith17044</dc:creator>
    <dc:date>2016-11-23T15:50:44Z</dc:date>
    <item>
      <title>LPC43xx - I2S1 Rx -&gt; I2S0 Tx P2P DMA?</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC43xx-I2S1-Rx-gt-I2S0-Tx-P2P-DMA/m-p/615979#M24065</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;On the NGX 4330 Xplorer board, the I2S DMA sample demonstrates nicely using the peripheral to peripheral DMA transfer (GPDMA_TRANSFERTYPE_P2P_CONTROLLER_SrcPERIPHERAL) from the RX to TX paths on the I2S0 peripheral:&amp;nbsp;&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t continue_Flag = 1, bufferUART = 0xFF;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_I2S_DMA_TxCmd(CODEC_I2S_BUS, I2S_DMA_REQUEST_CHANNEL_1, ENABLE, 4);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_I2S_DMA_RxCmd(CODEC_I2S_BUS, I2S_DMA_REQUEST_CHANNEL_2, ENABLE, 4);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Initialize GPDMA controller */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_GPDMA_Init(LPC_GPDMA);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Setting GPDMA interrupt */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;NVIC_DisableIRQ(DMA_IRQn);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;NVIC_SetPriority(DMA_IRQn, ((0x01 &amp;lt;&amp;lt; 3) | 0x01));&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;NVIC_EnableIRQ(DMA_IRQn);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;dmaChannelNum_I2S_Rx = Chip_GPDMA_GetFreeChannel(LPC_GPDMA, I2S_DMA_RX_CHAN);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_GPDMA_Transfer(LPC_GPDMA, dmaChannelNum_I2S_Rx,&lt;BR /&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; I2S_DMA_RX_CHAN,&lt;BR /&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; I2S_DMA_TX_CHAN,&lt;BR /&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; GPDMA_TRANSFERTYPE_P2P_CONTROLLER_SrcPERIPHERAL,&lt;BR /&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; 1);&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;However, in the application I am targeting, I want to connect two different I2S source devices onto the pins of I2S0 and use the pin mux to switch between the two sources.&amp;nbsp; That part is simple enough.&amp;nbsp; I2S1 is used as the transmitter to an I2S amplifier. &amp;nbsp; BEFORE spinning a board I want to determined if it is possible to use the peripheral to peripheral DMA transfer between I2S1 receiver to trigger transfer to the I2S0 transmitter.&amp;nbsp; I'm trying to avoid buffering and transmitting from a buffer if possible.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm assuming the DMA example will work by changing the I2S base peripheral in the Chip_I2S_DMA_RxCmd DMA setup but I it is difficult to test with the NGX Xplorer board.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Does anyone know if this is possible?&amp;nbsp; If so, do you know what the Chip_I2S_DMA_TxCmd( I2S1..) , Chip_I2S_DMA_RxCmd( I2S0..) and Chip_GPDMA_Transfer setup is for triggering between the two I2S peripherals for this scenario?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 23 Nov 2016 15:50:44 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC43xx-I2S1-Rx-gt-I2S0-Tx-P2P-DMA/m-p/615979#M24065</guid>
      <dc:creator>nsmith17044</dc:creator>
      <dc:date>2016-11-23T15:50:44Z</dc:date>
    </item>
    <item>
      <title>Re: LPC43xx - I2S1 Rx -&gt; I2S0 Tx P2P DMA?</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC43xx-I2S1-Rx-gt-I2S0-Tx-P2P-DMA/m-p/615980#M24066</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Nathan,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It is worth trying, P2P DMA&amp;nbsp;transfer spanning different I2S peripheral is supported by DMA, however there could be synchronization issues if clock source settings for the 2 I2S peripherals are different, the 8 word FIFOs in I2S help lower the risk.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;To try it out, just modify the macros to corresponding I2S peripheral address and DMA channel number.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Hope it helps!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best Regards,&lt;BR /&gt;Carlos Mendoza&lt;BR /&gt;Technical Support Engineer&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 09 Dec 2016 16:23:57 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC43xx-I2S1-Rx-gt-I2S0-Tx-P2P-DMA/m-p/615980#M24066</guid>
      <dc:creator>Carlos_Mendoza</dc:creator>
      <dc:date>2016-12-09T16:23:57Z</dc:date>
    </item>
  </channel>
</rss>

