<?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 GPDMA Configuration for SSP/SPI Transfer in LPC Microcontrollers</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/GPDMA-Configuration-for-SSP-SPI-Transfer/m-p/589213#M21903</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by stanley76726 on Mon Nov 12 06:10:14 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hello,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I modified the GPDMA example from PDL to support P2M transfer mode. My purpose is that SSP0, as a master, can receive 80-byte data to memory, and now SSP1 is simulated to be the slave to transfer 80-byte data by writing the data register (LPC_SSP1-&amp;gt;DR).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;One version of this example configured the DMA transfer size as 8 bytes, because of the limitation of SSP/SPI FIFO buffer size (i think so), where means DMA needs to transfer 10 times. However, re-initialization of channel-related registers (channel config/control, channel enabling registers) is so time-consuming that we cannot afford it (300~400us between two DMA transfers), although it works fine.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Therefore, the other version, i reconfigured the transfer size as 80 bytes, and i thought writing 80-byte data to LPC_SSP1-&amp;gt;DR directly does never work. Therefore, i had it transfer in DMA M2P mode, hoping that DMA controller can handle this automatically. However, it never starts to transfer at all...&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Is it possible for GPDMA controller to transfer 80-byte data from SSP/SPI to memory whenever the FIFO is full or not empty, and to response a terminal count signal while finishing with an interrupt? All of above are done after finishing GPDMA configuration, so that polling to check the SSP FIFO status is unnecessary.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Best Regards,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Stanley&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 15 Jun 2016 19:15:07 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-15T19:15:07Z</dc:date>
    <item>
      <title>GPDMA Configuration for SSP/SPI Transfer</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/GPDMA-Configuration-for-SSP-SPI-Transfer/m-p/589213#M21903</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by stanley76726 on Mon Nov 12 06:10:14 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hello,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I modified the GPDMA example from PDL to support P2M transfer mode. My purpose is that SSP0, as a master, can receive 80-byte data to memory, and now SSP1 is simulated to be the slave to transfer 80-byte data by writing the data register (LPC_SSP1-&amp;gt;DR).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;One version of this example configured the DMA transfer size as 8 bytes, because of the limitation of SSP/SPI FIFO buffer size (i think so), where means DMA needs to transfer 10 times. However, re-initialization of channel-related registers (channel config/control, channel enabling registers) is so time-consuming that we cannot afford it (300~400us between two DMA transfers), although it works fine.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Therefore, the other version, i reconfigured the transfer size as 80 bytes, and i thought writing 80-byte data to LPC_SSP1-&amp;gt;DR directly does never work. Therefore, i had it transfer in DMA M2P mode, hoping that DMA controller can handle this automatically. However, it never starts to transfer at all...&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Is it possible for GPDMA controller to transfer 80-byte data from SSP/SPI to memory whenever the FIFO is full or not empty, and to response a terminal count signal while finishing with an interrupt? All of above are done after finishing GPDMA configuration, so that polling to check the SSP FIFO status is unnecessary.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Best Regards,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Stanley&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 19:15:07 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/GPDMA-Configuration-for-SSP-SPI-Transfer/m-p/589213#M21903</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T19:15:07Z</dc:date>
    </item>
  </channel>
</rss>

