<?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>MPC5xxx中的主题 MPC5746R - DMA on DSPI - Problem with INT_MAJOR</title>
    <link>https://community.nxp.com/t5/MPC5xxx/MPC5746R-DMA-on-DSPI-Problem-with-INT-MAJOR/m-p/1015019#M15219</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi, i configuring eDMA for DSPI_3 and i dont understand why when i active the bit INT_MAJOR of register "DMA_0.TCD[50].WORD_7" it works strange.&lt;BR /&gt;My Configuration is:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-DSPI_3:&lt;BR /&gt;MCR.B.MSTR = 1; (Master)&lt;BR /&gt;MCR.B.XSPI = 0;&lt;BR /&gt;MCR.B.CONT_SCKE = OFF;&lt;BR /&gt;MCR.B.DIS_TXF = 0; (FIFO Enable)&lt;BR /&gt;MCR.B.DIS_RXF = 0; (FIFO &lt;SPAN&gt;Enable&lt;/SPAN&gt;)&lt;BR /&gt;CPOL = 0&lt;BR /&gt;CPHA = 0&lt;BR /&gt;BaudRate: 1MHz&lt;BR /&gt;tCSC, tASC and tDT are exagerated.&lt;BR /&gt;SR.B.TFFF = 1; (FLAG)&lt;/P&gt;&lt;P&gt;RSER.B.TFFF_RE = ON; (Enable interrupt or DMA)&lt;BR /&gt;RSER.B.TFFF_DIRS = 1; (Select DMA)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-I use the interrupt of DMA "Vector # 103 eDMA Channel 50 DMA_INTH[INT50]"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-Channel DMA: DMAMUX_3 -&amp;gt; DSPI_3 TX&lt;BR /&gt;DMAMUX_3.CHCFG[50].B.ENBL = ON;&lt;BR /&gt;DMAMUX_3.CHCFG[50].B.TRIG = 0;&lt;BR /&gt;DMAMUX_3.CHCFG[50].B.SOURCE = 9;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-General DMA: DMA_0&lt;BR /&gt;DMA_0.CR.B.CX = 0;&lt;BR /&gt;DMA_0.CR.B.ECX = 0;&lt;BR /&gt;DMA_0.CR.B.GRP3PRI = 3;&lt;BR /&gt;DMA_0.CR.B.GRP2PRI = 2;&lt;BR /&gt;DMA_0.CR.B.GRP1PRI = 1;&lt;BR /&gt;DMA_0.CR.B.GRP0PRI = 0;&lt;BR /&gt;DMA_0.CR.B.ERGA = 0; //Fixed Channel&lt;BR /&gt;DMA_0.CR.B.ERCA = 0; //Fixed Channel&lt;BR /&gt;DMA_0.CR.B.EMLM = 0; //NBYTES[32 BITS]&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-Priorities: All channels with a unique priority&lt;BR /&gt;DMA_0.DCHPRI[Channel].B.CHPRI = Channel;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-Channel DMA: TCD&lt;BR /&gt;DMA_0.DCHPRI[CanalX].B.ECP = 0; //No suspend or can suspend&lt;BR /&gt;DMA_0.DCHPRI[CanalX].B.DPA = 0;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;-SADDR: Buffer of registers [DSPI_PUSHR_PUSHR_tag]&lt;BR /&gt;-DADDR: DSPI_3.PUSHR.PUSHR.R&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-SMOD: 9 (128 bytes of buffer[DSPI_PUSHR_PUSHR_tag])&lt;BR /&gt;-SOFF: 4&lt;BR /&gt;-SSIZE: 2 (32-bit)&lt;BR /&gt;-SLAST: 0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-DMOD: 0&lt;BR /&gt;-DOFF: 0&lt;BR /&gt;-DSIZE: 2 (32-bit)&lt;BR /&gt;-DLAST: 0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-DREQ: 1 (Disable ERQ[Channel] after Transfer)&lt;BR /&gt;-INT_MAJOR: 1 (Interrupt when finalize Iteration, when CITER = 0)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-No Linker of channels&lt;/P&gt;&lt;P&gt;--------------------------------------------------------------------------------&lt;BR /&gt;When i start a DMA Transfer:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DMA_0.CERQ.R = CanalX;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;DMA_0.TCD[CanalX].WORD_0.B.SADDR = AddressX; //Address = &amp;amp;Buffer(of DSPI_PUSHR_PUSHR_tag)[0]&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;DMA_0.TCD[CanalX].WORD_2.NBYTES.B.NBYTES = NBytesX;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;DMA_0.TCD[CanalX].WORD_7.B.BITER = CiterX;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;DMA_0.TCD[CanalX].WORD_5.B.CITER = CiterX;&lt;BR /&gt; //Activate Interrupt &lt;BR /&gt; DMA_0.CINT.R = 50; //Flags (INTL y INTH)&lt;BR /&gt; DMA_0.TCD[CanalX].WORD_7.B.INT_MAJOR = 1;&lt;BR /&gt; DMA_0.TCD[CanalX].WORD_7.B.INT_HALF = 0;&lt;BR /&gt;DMA_0.SERQ.R = CanalX;&lt;BR /&gt;--------------------------------------------------------------------------------&lt;BR /&gt;In the interrupt i write:&lt;BR /&gt;void SPITransmitComplete_DMAInterrupt()&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; PIN_CONMUTAR(SIUL2_TESTGPIO_5)&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;DMA_0.CINT.R = PORTDMA4TFT_TX; //Flags (INTL y INTH)&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;return;&lt;BR /&gt;}&lt;BR /&gt;--------------------------------------------------------------------------------&lt;BR /&gt;In the images that adjunt, the blue is the pin SCK, the yellow is the pin that conmutes when enters in the interrupt "SPITransmitComplete_DMAInterrupt()".&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If i Set:&lt;BR /&gt;-NBytesX: 4&lt;BR /&gt;-CiterX: 12&lt;BR /&gt;I have the result in 1.jpg&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If i Set:&lt;BR /&gt;-NBytesX: 80&lt;BR /&gt;-CiterX: 1&lt;BR /&gt;I have the result in 2.jpg&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If i Set:&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;-NBytesX:&amp;nbsp;4&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;-CiterX:&amp;nbsp;3&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;i have the result in 3.jpg&lt;/P&gt;&lt;P&gt;--------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;I understand that the interrupt of DMA for INT_MAJOR=1 is that interrupt when CITER=0 or when finish all the bytes to transfer, is it correct?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 12 Feb 2020 13:27:04 GMT</pubDate>
    <dc:creator>demian91</dc:creator>
    <dc:date>2020-02-12T13:27:04Z</dc:date>
    <item>
      <title>MPC5746R - DMA on DSPI - Problem with INT_MAJOR</title>
      <link>https://community.nxp.com/t5/MPC5xxx/MPC5746R-DMA-on-DSPI-Problem-with-INT-MAJOR/m-p/1015019#M15219</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi, i configuring eDMA for DSPI_3 and i dont understand why when i active the bit INT_MAJOR of register "DMA_0.TCD[50].WORD_7" it works strange.&lt;BR /&gt;My Configuration is:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-DSPI_3:&lt;BR /&gt;MCR.B.MSTR = 1; (Master)&lt;BR /&gt;MCR.B.XSPI = 0;&lt;BR /&gt;MCR.B.CONT_SCKE = OFF;&lt;BR /&gt;MCR.B.DIS_TXF = 0; (FIFO Enable)&lt;BR /&gt;MCR.B.DIS_RXF = 0; (FIFO &lt;SPAN&gt;Enable&lt;/SPAN&gt;)&lt;BR /&gt;CPOL = 0&lt;BR /&gt;CPHA = 0&lt;BR /&gt;BaudRate: 1MHz&lt;BR /&gt;tCSC, tASC and tDT are exagerated.&lt;BR /&gt;SR.B.TFFF = 1; (FLAG)&lt;/P&gt;&lt;P&gt;RSER.B.TFFF_RE = ON; (Enable interrupt or DMA)&lt;BR /&gt;RSER.B.TFFF_DIRS = 1; (Select DMA)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-I use the interrupt of DMA "Vector # 103 eDMA Channel 50 DMA_INTH[INT50]"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-Channel DMA: DMAMUX_3 -&amp;gt; DSPI_3 TX&lt;BR /&gt;DMAMUX_3.CHCFG[50].B.ENBL = ON;&lt;BR /&gt;DMAMUX_3.CHCFG[50].B.TRIG = 0;&lt;BR /&gt;DMAMUX_3.CHCFG[50].B.SOURCE = 9;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-General DMA: DMA_0&lt;BR /&gt;DMA_0.CR.B.CX = 0;&lt;BR /&gt;DMA_0.CR.B.ECX = 0;&lt;BR /&gt;DMA_0.CR.B.GRP3PRI = 3;&lt;BR /&gt;DMA_0.CR.B.GRP2PRI = 2;&lt;BR /&gt;DMA_0.CR.B.GRP1PRI = 1;&lt;BR /&gt;DMA_0.CR.B.GRP0PRI = 0;&lt;BR /&gt;DMA_0.CR.B.ERGA = 0; //Fixed Channel&lt;BR /&gt;DMA_0.CR.B.ERCA = 0; //Fixed Channel&lt;BR /&gt;DMA_0.CR.B.EMLM = 0; //NBYTES[32 BITS]&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-Priorities: All channels with a unique priority&lt;BR /&gt;DMA_0.DCHPRI[Channel].B.CHPRI = Channel;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-Channel DMA: TCD&lt;BR /&gt;DMA_0.DCHPRI[CanalX].B.ECP = 0; //No suspend or can suspend&lt;BR /&gt;DMA_0.DCHPRI[CanalX].B.DPA = 0;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;-SADDR: Buffer of registers [DSPI_PUSHR_PUSHR_tag]&lt;BR /&gt;-DADDR: DSPI_3.PUSHR.PUSHR.R&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-SMOD: 9 (128 bytes of buffer[DSPI_PUSHR_PUSHR_tag])&lt;BR /&gt;-SOFF: 4&lt;BR /&gt;-SSIZE: 2 (32-bit)&lt;BR /&gt;-SLAST: 0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-DMOD: 0&lt;BR /&gt;-DOFF: 0&lt;BR /&gt;-DSIZE: 2 (32-bit)&lt;BR /&gt;-DLAST: 0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-DREQ: 1 (Disable ERQ[Channel] after Transfer)&lt;BR /&gt;-INT_MAJOR: 1 (Interrupt when finalize Iteration, when CITER = 0)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-No Linker of channels&lt;/P&gt;&lt;P&gt;--------------------------------------------------------------------------------&lt;BR /&gt;When i start a DMA Transfer:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DMA_0.CERQ.R = CanalX;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;DMA_0.TCD[CanalX].WORD_0.B.SADDR = AddressX; //Address = &amp;amp;Buffer(of DSPI_PUSHR_PUSHR_tag)[0]&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;DMA_0.TCD[CanalX].WORD_2.NBYTES.B.NBYTES = NBytesX;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;DMA_0.TCD[CanalX].WORD_7.B.BITER = CiterX;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;DMA_0.TCD[CanalX].WORD_5.B.CITER = CiterX;&lt;BR /&gt; //Activate Interrupt &lt;BR /&gt; DMA_0.CINT.R = 50; //Flags (INTL y INTH)&lt;BR /&gt; DMA_0.TCD[CanalX].WORD_7.B.INT_MAJOR = 1;&lt;BR /&gt; DMA_0.TCD[CanalX].WORD_7.B.INT_HALF = 0;&lt;BR /&gt;DMA_0.SERQ.R = CanalX;&lt;BR /&gt;--------------------------------------------------------------------------------&lt;BR /&gt;In the interrupt i write:&lt;BR /&gt;void SPITransmitComplete_DMAInterrupt()&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; PIN_CONMUTAR(SIUL2_TESTGPIO_5)&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;DMA_0.CINT.R = PORTDMA4TFT_TX; //Flags (INTL y INTH)&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;return;&lt;BR /&gt;}&lt;BR /&gt;--------------------------------------------------------------------------------&lt;BR /&gt;In the images that adjunt, the blue is the pin SCK, the yellow is the pin that conmutes when enters in the interrupt "SPITransmitComplete_DMAInterrupt()".&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If i Set:&lt;BR /&gt;-NBytesX: 4&lt;BR /&gt;-CiterX: 12&lt;BR /&gt;I have the result in 1.jpg&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If i Set:&lt;BR /&gt;-NBytesX: 80&lt;BR /&gt;-CiterX: 1&lt;BR /&gt;I have the result in 2.jpg&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If i Set:&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;-NBytesX:&amp;nbsp;4&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;-CiterX:&amp;nbsp;3&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;i have the result in 3.jpg&lt;/P&gt;&lt;P&gt;--------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;I understand that the interrupt of DMA for INT_MAJOR=1 is that interrupt when CITER=0 or when finish all the bytes to transfer, is it correct?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 12 Feb 2020 13:27:04 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MPC5xxx/MPC5746R-DMA-on-DSPI-Problem-with-INT-MAJOR/m-p/1015019#M15219</guid>
      <dc:creator>demian91</dc:creator>
      <dc:date>2020-02-12T13:27:04Z</dc:date>
    </item>
    <item>
      <title>Re: MPC5746R - DMA on DSPI - Problem with INT_MAJOR</title>
      <link>https://community.nxp.com/t5/MPC5xxx/MPC5746R-DMA-on-DSPI-Problem-with-INT-MAJOR/m-p/1015020#M15220</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;your understanding is correct, major interrupt is called after all transfers are done (CITER=0).&lt;/P&gt;&lt;P&gt;For your setting; the FIFO should be enabled when DMA is used, so clear DIS_RXF and DIS_TXF bits. You did no show RSER setting but lets assume it is right when some transfers are done.&lt;/P&gt;&lt;P&gt;Finally you should set the DMA in the way you will transfer single word (32bit) per one request, thus you should have the first configuration, i.e.&amp;nbsp;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;NBytes = 4,&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;CiterX= 12.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;BR, Petr&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 13 Feb 2020 09:48:30 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MPC5xxx/MPC5746R-DMA-on-DSPI-Problem-with-INT-MAJOR/m-p/1015020#M15220</guid>
      <dc:creator>PetrS</dc:creator>
      <dc:date>2020-02-13T09:48:30Z</dc:date>
    </item>
  </channel>
</rss>

