<?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: K64 SPI - DMA - missing a byte on transfer in Kinetis Microcontrollers</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/K64-SPI-DMA-missing-a-byte-on-transfer/m-p/829806#M50184</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Mike:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for your reply.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The new DMA TCD setting are loaded after DMA IRQ completion is performed and channel is no longer active.&amp;nbsp; The DMA IRQ gives a mutex which eanble thread to run - process acquired SPI data, perform Handshake flow control, then sets new DMA settings.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;New DMA trigger can not occur until after handshake flow control - that is what tells the master that every thing is in place for the next SPI packet to be sent.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Your concern never happens.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Joe&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 29 Dec 2018 05:04:11 GMT</pubDate>
    <dc:creator>JHinkle</dc:creator>
    <dc:date>2018-12-29T05:04:11Z</dc:date>
    <item>
      <title>K64 SPI - DMA - missing a byte on transfer</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/K64-SPI-DMA-missing-a-byte-on-transfer/m-p/829784#M50162</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I have implemented a detection and recovery method - but I would like to understand root-cause of the issue.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Two mcus communicate via SPI.&amp;nbsp; The K64 is the slave.&amp;nbsp; The master's spi clock is 8mhz.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;69 byte Data packets are passed between the two mcus with an external IO pin being used for handshake/flow control.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The K64 (cpu clock is 120mhz) uses DMA to receive the incoming 69 byte packet and fire an interrupt upon completion.&amp;nbsp; Upon processing the packet, the flow control pin is toggled signaling the master to send another 69 byte packet.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Issue:&amp;nbsp; I can receive tens of thousands of these packets without an issue.&amp;nbsp; Then randomly, the process stalls and the stream of packets is halted.&amp;nbsp; Investigating the issue I found the K64 failed to acquire one of the bytes in the packet and the DMA counter is at one - so the DMA IRQ never fires.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Is there a known SPI hardware issue that may be causing this?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have implemented a timeout detection process which resets the SPI's DMA channel and requests the last data packet be resent by the master.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As a side note - question #2.&amp;nbsp; The DMA documentation on the K64 states that once the DMA is engaged, the DMA channel can't be stopped until the inner DMA loop is completed.&amp;nbsp; It also states that CX in the DMA_CR register can be used to cancel the remaining data transfer.&amp;nbsp; My question is why is this not a per channel operation instead of one that is global to all channels.&amp;nbsp; In my case, I have two active dma channels in operation, so when I activate CX to kill the data transfer of my SPI-DMA receive process, I am also affecting the transfer of the other channel.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I found zero information being documented on how to recover from a failed DMA transfer.&amp;nbsp; After a lot of reading and trying different methods to stop the transfer (CX above) - I was able to reset the channel and continue with the flow of my data packets.&amp;nbsp; I suggest NXP think about adding some fault recovery documentation.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Third question/comment.&amp;nbsp; At first I was unable to reset the SPI's DMA channel - so after 10 hours of work I decided to use SPI interrupts instead of DMA.&amp;nbsp; I found time to reply to the IRQ and return was longer than 1 usec so I had to stay within the IRQ function and poll the SPI_SR&amp;nbsp;RFDF status bit or I would get a SPI overrun condition SPI_SR - RFOF being set.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The K64's documentation states the the SPI_SR RFDF would fire an interrupt if any of the 4 FIFO locations was filled.&amp;nbsp; My testing suggested that the IRQ is not firing until the FIFO has more than one location filled - is that true?&amp;nbsp; The documentation also states that writing a one to the SPI_SR RFDF bit will reset it (which is what I did after each read of the SPI_POPR).&amp;nbsp; If there is more than one location filled in the FIFO when a POPR - Set RFDF operational pair is performed, will the K64 reset the RFDF bit immediately since the FIFO is NOT empty?&amp;nbsp; These are questions I was not able to determine based on code execution since I was unable to acquire all 69 data bytes without issue using polling.&amp;nbsp; I went back and finally figured out how to reset the DMA channel.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I know I asked a lot of questions in this post but they all came up in trying to understand why the K64's SPI/DMA would occasionally miss a data byte.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for any comments.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Joe&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 24 Dec 2018 18:07:06 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/K64-SPI-DMA-missing-a-byte-on-transfer/m-p/829784#M50162</guid>
      <dc:creator>JHinkle</dc:creator>
      <dc:date>2018-12-24T18:07:06Z</dc:date>
    </item>
    <item>
      <title>Re: K64 SPI - DMA - missing a byte on transfer</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/K64-SPI-DMA-missing-a-byte-on-transfer/m-p/829785#M50163</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Joe,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I would recommend to refer and use MCUXpresso SDK for K64 provided &amp;lt;fsl_dspi_edma.c&amp;gt; driver.&lt;/P&gt;&lt;P&gt;You could download the MCUXpresso SDK software package from &lt;A href="https://mcuxpresso.nxp.com/en/select"&gt;here&lt;/A&gt;.&lt;/P&gt;&lt;P&gt;The &amp;lt;edma_b2b_transfer&amp;gt; demo located with below path:&lt;/P&gt;&lt;P&gt;..\TWR-K64F120M\boards\twrk64f120m\driver_examples\dspi\edma_b2b_transfer&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please let us know if that driver also has the same issue.&lt;/P&gt;&lt;P&gt;Thank you for the attention.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Have a great day,&lt;BR /&gt;Mike&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>Tue, 25 Dec 2018 08:14:13 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/K64-SPI-DMA-missing-a-byte-on-transfer/m-p/829785#M50163</guid>
      <dc:creator>Hui_Ma</dc:creator>
      <dc:date>2018-12-25T08:14:13Z</dc:date>
    </item>
    <item>
      <title>Re: K64 SPI - DMA - missing a byte on transfer</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/K64-SPI-DMA-missing-a-byte-on-transfer/m-p/829786#M50164</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Mike:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for your reply.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I don't use your SDK.&amp;nbsp; It is designed for general use, and very blotted - hard to read sometimes to.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I do not believe the issue is software.&amp;nbsp; As I stated, I can process millions of bytes thru the channel&amp;nbsp;before this event occurs.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My DMA driver is very simple - as shown below.&amp;nbsp; Once initialized, I only set the DMA destination and byte count.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;[CODE]&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void DMA_Init(void)&lt;BR /&gt;{&lt;/P&gt;&lt;P&gt;SIM_SCGC6 |= SIM_SCGC6_DMAMUX_MASK; // enable mux&lt;BR /&gt; SIM_SCGC7 |= SIM_SCGC7_DMA_MASK; // enable DMA&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt; &lt;/SPAN&gt;DMA_CR = 0;&lt;SPAN&gt; &lt;/SPAN&gt;// dma based on priority - NOT Round Robin&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DMAMUX_CHCFG14 = 0; // disable the channel to configure it &lt;BR /&gt; DMAMUX_CHCFG14 = DMAMUX_CHCFG_SOURCE(17) ; // SPI2 .. page 95&lt;BR /&gt; DMAMUX_CHCFG14 |= DMAMUX_CHCFG_ENBL_MASK ; // enable the mux&lt;/P&gt;&lt;P&gt;&lt;BR /&gt; // fill the TCD area &lt;BR /&gt; DMA_TCD14_SADDR = (dword)&amp;amp;SPI2_POPR;&lt;BR /&gt; DMA_TCD14_SOFF = 0; // no offset&lt;BR /&gt; DMA_TCD14_ATTR = DMA_ATTR_SMOD(0) | DMA_ATTR_SSIZE(0) | DMA_ATTR_DMOD(0) | DMA_ATTR_DSIZE(0); // no circular addressing S&amp;amp;D, 8 bit S&amp;amp;D &lt;BR /&gt; DMA_TCD14_NBYTES_MLNO = 1; // 8bit sample every minor loop &lt;BR /&gt; DMA_TCD14_SLAST = 0; // not needed&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DMA_TCD14_DOFF = 1; // 1 byte each move&lt;BR /&gt; DMA_TCD14_CITER_ELINKNO = 64+5; // total samples&lt;BR /&gt; DMA_TCD14_DLASTSGA = 0; &lt;BR /&gt; DMA_TCD14_CSR = DMA_CSR_INTMAJOR_MASK ; // interrupt when done &lt;BR /&gt; DMA_TCD14_BITER_ELINKNO = 64+5; // no chan links, total samples&lt;/P&gt;&lt;P&gt;&lt;BR /&gt; DMA_SERQ = DMA_SERQ_SERQ(14); // now enable chan .. set start to begin&lt;/P&gt;&lt;P&gt;&lt;BR /&gt; NVIC_SetPriority(DMA14_IRQn, AudioDMA_Priority);&lt;BR /&gt; NVIC_EnableIRQ(DMA14_IRQn);&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;void DMA_Perform_Move(byte *B, dword Cnt)&lt;BR /&gt;{&lt;BR /&gt; &lt;BR /&gt; DMA_TCD14_DADDR = (dword)B;&lt;/P&gt;&lt;P&gt;DMA_TCD14_CITER_ELINKNO = Cnt; // total samples&lt;BR /&gt; DMA_TCD14_BITER_ELINKNO = Cnt; // no chan links, total samples&lt;BR /&gt; &lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;[/CODE]&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;By the way -- what is the correct tags to use to include code as above.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Joe&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 25 Dec 2018 15:39:43 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/K64-SPI-DMA-missing-a-byte-on-transfer/m-p/829786#M50164</guid>
      <dc:creator>JHinkle</dc:creator>
      <dc:date>2018-12-25T15:39:43Z</dc:date>
    </item>
    <item>
      <title>Re: K64 SPI - DMA - missing a byte on transfer</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/K64-SPI-DMA-missing-a-byte-on-transfer/m-p/829787#M50165</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Joe,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1&amp;gt; When the SPI communication issue happen (K64 failed to acquire one of the bytes in the packet), could you debug and provide SPI and DMA module registers value for deep dive analysis?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2&amp;gt; DMA transfer can be cancelled by software with the CR[CX] bit. When a cancel transfer request is recognized, the DMA engine stops processing the channel. The current read/write sequence is allowed to finish. The TCD of a cancelled channel contains the source and destination addresses of the last transfer saved in the TCD. If the channel needs to be restarted, you must re-initialize the TCD.&lt;/P&gt;&lt;P&gt;If there with DMA error status register DMA_ES flag was set?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;3&amp;gt; There with one DMA engine, only one DMA channel can do the transfer at same time.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;4&amp;gt; Which SPI module you are using? The RX FIFO size is different for different SPI module:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_1.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/70990iC219E4009308010E/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_1.png" alt="pastedImage_1.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you for the attention.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Have a great day,&lt;BR /&gt;Mike&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>Wed, 26 Dec 2018 03:35:49 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/K64-SPI-DMA-missing-a-byte-on-transfer/m-p/829787#M50165</guid>
      <dc:creator>Hui_Ma</dc:creator>
      <dc:date>2018-12-26T03:35:49Z</dc:date>
    </item>
    <item>
      <title>Re: K64 SPI - DMA - missing a byte on transfer</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/K64-SPI-DMA-missing-a-byte-on-transfer/m-p/829788#M50166</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Mike:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for your reply.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I will attempt to trap the error (it can take up to 4 hours for it to occur).&amp;nbsp; I always look at the registers to see if I can identify any error - which I did not -- I will capture and have you look.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for the table.&amp;nbsp; I was looking all over the "SPI" chapter for the FIFO size for SPI2.&amp;nbsp; I thought they were different but the SPI chapter said the FIFO was 4 deep (I work with multiple Kinetis parts and thought the K64 might actuall be 4 for all SPIs).&amp;nbsp; Lesson learned -- always check chapter 3 along with specific function chapter.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Your answer 3 above disturbs me as it violates my understanding of DMA:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Mike wrote:&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;3&amp;gt; There with one DMA engine, only one DMA channel can do the transfer at same time.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;I understand that only one DMA transfer can take place at a time - that's why there are priorities.&amp;nbsp; If two DMA channels are active - and each channels has a different time between transfers (say a slow baud UART and a fast SPI - and SPI has higher priority) - I thought that DMA could/would make a UART transfer in between a SPI transfer as long as a SPI transfer was not needed at THAT time slot -- thereby handling both channels at the same time.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;Does your #3 statement above means that once a DMA channel transfer begins - that channel must complete before another channel can start?&amp;nbsp; Can you point out a chapter/page in the K64 manual that describes that behavior?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;22.4.1 eDMA basic data flow - shows the flow thru the various stages of DMA execution.&amp;nbsp; It states:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;In the next cycle, the channel&lt;BR /&gt;arbitration performs, using the fixed-priority or round-robin algorithm. After arbitration is&lt;BR /&gt;complete, the activated channel number is sent through the address path and converted&lt;BR /&gt;into the required address to access the local memory for TCDn.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;I was understanding this to state that there can be multiple active channels making transfers intertwined with each other with arbitration based on priority when both channels want data moved at the same time.&amp;nbsp; That is why I asked about the CX bit since multiple channels to me could be active at the same time. ... Example&amp;nbsp; &lt;SPAN&gt;SPI byte,&amp;nbsp;&lt;SPAN style="background-color: #ffffff;"&gt;SPI byte,&amp;nbsp; UART byte,&amp;nbsp;SPI byte,&amp;nbsp;SPI byte ...&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;Thanks.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;Joe&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 26 Dec 2018 16:36:38 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/K64-SPI-DMA-missing-a-byte-on-transfer/m-p/829788#M50166</guid>
      <dc:creator>JHinkle</dc:creator>
      <dc:date>2018-12-26T16:36:38Z</dc:date>
    </item>
    <item>
      <title>Re: K64 SPI - DMA - missing a byte on transfer</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/K64-SPI-DMA-missing-a-byte-on-transfer/m-p/829789#M50167</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Mike:&lt;/P&gt;&lt;P&gt;By the way --- there is only one DMA channel active during this test so DMA abritration/priority should not come into play.&amp;nbsp; DMA missed a SPI byte and I can confirm it was not at the start of the transfer since first byte acquired is my header start byte and is correct.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;What code/operations can cause a DMA cycle not to occur once a DMA transfer sequence has started since I'm assuming something caused the DMA not to respond to the SPI having data available before the next SPI data came in generating the overwrite flag.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here are the SPI2 and DMA registers trapped at fault.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As you can see - SPI2 had RFOF flag set - but I don't see a DMA error.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SPI2 ..&amp;nbsp; ****************************************&lt;/P&gt;&lt;P&gt;&lt;BR /&gt; SPI2_MCR 0x09010000 &lt;BR /&gt; HALT 0 &lt;BR /&gt; SMPL_PT 0 &lt;BR /&gt; CLR_RXF 0 &lt;BR /&gt; CLR_TXF 0 &lt;BR /&gt; DIS_RXF 0 &lt;BR /&gt; DIS_TXF 0 &lt;BR /&gt; MDIS 0 &lt;BR /&gt; DOZE 0 &lt;BR /&gt; PCSIS 1 &lt;BR /&gt; ROOE 1 &lt;BR /&gt; PCSSE 0 &lt;BR /&gt; MTFE 0 &lt;BR /&gt; FRZ 1 &lt;BR /&gt; DCONF 0 &lt;BR /&gt; CONT_SCKE 0 &lt;BR /&gt; MSTR 0 &lt;BR /&gt; SPI2_TCR 0x10920000 &lt;BR /&gt; SPI_TCNT 0x1092 &lt;BR /&gt; SPI2_CTAR_SLAVE 0x3a000000 &lt;BR /&gt; CPHA 1 &lt;BR /&gt; CPOL 0 &lt;BR /&gt; FMSZ 0x07 &lt;BR /&gt; SPI2_CTAR0 0x3a000000 &lt;BR /&gt; BR 0x0 &lt;BR /&gt; DT 0x0 &lt;BR /&gt; ASC 0x0 &lt;BR /&gt; CSSCK 0x0 &lt;BR /&gt; PBR 0 &lt;BR /&gt; PDT 0 &lt;BR /&gt; PASC 0 &lt;BR /&gt; PCSSCK 0 &lt;BR /&gt; LSBFE 0 &lt;BR /&gt; CPHA 1 &lt;BR /&gt; CPOL 0 &lt;BR /&gt; FMSZ 0x7 &lt;BR /&gt; DBR 0 &lt;BR /&gt; SPI2_CTAR1 0x78000000 &lt;BR /&gt; BR 0x0 &lt;BR /&gt; DT 0x0 &lt;BR /&gt; ASC 0x0 &lt;BR /&gt; CSSCK 0x0 &lt;BR /&gt; PBR 0 &lt;BR /&gt; PDT 0 &lt;BR /&gt; PASC 0 &lt;BR /&gt; PCSSCK 0 &lt;BR /&gt; LSBFE 0 &lt;BR /&gt; CPHA 0 &lt;BR /&gt; CPOL 0 &lt;BR /&gt; FMSZ 0xf &lt;BR /&gt; DBR 0 &lt;BR /&gt; SPI2_SR 0x8a080000 &lt;BR /&gt; POPNXTPTR 0x0 &lt;BR /&gt; RXCTR 0x0 &lt;BR /&gt; TXNXTPTR 0x0 &lt;BR /&gt; TXCTR 0x0 &lt;BR /&gt; RFDF 0 &lt;BR /&gt; RFOF 1&amp;nbsp; &amp;nbsp; ******************************************* Note SPI error&lt;BR /&gt; TFFF 1 &lt;BR /&gt; TFUF 1 &lt;BR /&gt; EOQF 0 &lt;BR /&gt; TXRXS 0 &lt;BR /&gt; TCF 1 &lt;BR /&gt; SPI2_RSER 0x00030000 &lt;BR /&gt; RFDF_DIRS 1 &lt;BR /&gt; RFDF_RE 1 &lt;BR /&gt; RFOF_RE 0 &lt;BR /&gt; TFFF_DIRS 0 &lt;BR /&gt; TFFF_RE 0 &lt;BR /&gt; TFUF_RE 0 &lt;BR /&gt; EOQF_RE 0 &lt;BR /&gt; TCF_RE 0 &lt;BR /&gt; SPI2_PUSHR 0x00000000 &lt;BR /&gt; TXDATA 0x0000 &lt;BR /&gt; PCS 0 &lt;BR /&gt; CTCNT 0 &lt;BR /&gt; EOQ 0 &lt;BR /&gt; CTAS 0 &lt;BR /&gt; CONT 0 &lt;BR /&gt; SPI2_PUSHR_SLAVE 0x00000000 &lt;BR /&gt; TXDATA 0x00000000 &lt;BR /&gt; SPI2_POPR 0x0000001a &lt;BR /&gt; RXDATA 0x0000001a &lt;BR /&gt; SPI2_TXFR0 0x00000000 &lt;BR /&gt; TXDATA 0x0000 &lt;BR /&gt; TXCMD_TXDATA 0x0000 &lt;BR /&gt; SPI2_TXFR1 &lt;BR /&gt; TXDATA &lt;BR /&gt; TXCMD_TXDATA &lt;BR /&gt; SPI2_TXFR2 &lt;BR /&gt; TXDATA &lt;BR /&gt; TXCMD_TXDATA &lt;BR /&gt; SPI2_TXFR3 &lt;BR /&gt; TXDATA &lt;BR /&gt; TXCMD_TXDATA &lt;BR /&gt; SPI2_RXFR0 0x0000001a &lt;BR /&gt; RXDATA 0x0000001a &lt;BR /&gt; SPI2_RXFR1 &lt;BR /&gt; RXDATA &lt;BR /&gt; SPI2_RXFR2 &lt;BR /&gt; RXDATA &lt;BR /&gt; SPI2_RXFR3 &lt;BR /&gt; RXDATA&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;DMA&amp;nbsp; &amp;nbsp;************************************************&lt;BR /&gt; DMA_CR 0x00000000 &lt;BR /&gt; EDBG 0 &lt;BR /&gt; ERCA 0 &lt;BR /&gt; HOE 0 &lt;BR /&gt; HALT 0 &lt;BR /&gt; CLM 0 &lt;BR /&gt; EMLM 0 &lt;BR /&gt; ECX 0 &lt;BR /&gt; CX 0 &lt;BR /&gt; DMA_ES 0x00000000 &lt;BR /&gt; DBE 0 &lt;BR /&gt; SBE 0 &lt;BR /&gt; SGE 0 &lt;BR /&gt; NCE 0 &lt;BR /&gt; DOE 0 &lt;BR /&gt; DAE 0 &lt;BR /&gt; SOE 0 &lt;BR /&gt; SAE 0 &lt;BR /&gt; ERRCHN 0x0 &lt;BR /&gt; CPE 0 &lt;BR /&gt; ECX 0 &lt;BR /&gt; VLD 0 &lt;BR /&gt; DMA_ERQ 0x00004001 &lt;BR /&gt; ERQ0 1 &lt;BR /&gt; ERQ1 0 &lt;BR /&gt; ERQ2 0 &lt;BR /&gt; ERQ3 0 &lt;BR /&gt; ERQ4 0 &lt;BR /&gt; ERQ5 0 &lt;BR /&gt; ERQ6 0 &lt;BR /&gt; ERQ7 0 &lt;BR /&gt; ERQ8 0 &lt;BR /&gt; ERQ9 0 &lt;BR /&gt; ERQ10 0 &lt;BR /&gt; ERQ11 0 &lt;BR /&gt; ERQ12 0 &lt;BR /&gt; ERQ13 0 &lt;BR /&gt; ERQ14 1 &lt;BR /&gt; ERQ15 0 &lt;BR /&gt; DMA_EEI 0x00000000 &lt;BR /&gt; EEI0 0 &lt;BR /&gt; EEI1 0 &lt;BR /&gt; EEI2 0 &lt;BR /&gt; EEI3 0 &lt;BR /&gt; EEI4 0 &lt;BR /&gt; EEI5 0 &lt;BR /&gt; EEI6 0 &lt;BR /&gt; EEI7 0 &lt;BR /&gt; EEI8 0 &lt;BR /&gt; EEI9 0 &lt;BR /&gt; EEI10 0 &lt;BR /&gt; EEI11 0 &lt;BR /&gt; EEI12 0 &lt;BR /&gt; EEI13 0 &lt;BR /&gt; EEI14 0 &lt;BR /&gt; EEI15 0 &lt;BR /&gt; DMA_CEEI &lt;BR /&gt; CEEI &lt;BR /&gt; CAEE &lt;BR /&gt; NOP &lt;BR /&gt; DMA_SEEI &lt;BR /&gt; SEEI &lt;BR /&gt; SAEE &lt;BR /&gt; NOP &lt;BR /&gt; DMA_CERQ &lt;BR /&gt; CERQ &lt;BR /&gt; CAER &lt;BR /&gt; NOP &lt;BR /&gt; DMA_SERQ &lt;BR /&gt; SERQ &lt;BR /&gt; SAER &lt;BR /&gt; NOP &lt;BR /&gt; DMA_CDNE &lt;BR /&gt; CDNE &lt;BR /&gt; CADN &lt;BR /&gt; NOP &lt;BR /&gt; DMA_SSRT &lt;BR /&gt; SSRT &lt;BR /&gt; SAST &lt;BR /&gt; NOP &lt;BR /&gt; DMA_CERR &lt;BR /&gt; CERR &lt;BR /&gt; CAEI &lt;BR /&gt; NOP &lt;BR /&gt; DMA_CINT &lt;BR /&gt; CINT &lt;BR /&gt; CAIR &lt;BR /&gt; NOP &lt;BR /&gt; DMA_INT 0x00000000 &lt;BR /&gt; INT0 0 &lt;BR /&gt; INT1 0 &lt;BR /&gt; INT2 0 &lt;BR /&gt; INT3 0 &lt;BR /&gt; INT4 0 &lt;BR /&gt; INT5 0 &lt;BR /&gt; INT6 0 &lt;BR /&gt; INT7 0 &lt;BR /&gt; INT8 0 &lt;BR /&gt; INT9 0 &lt;BR /&gt; INT10 0 &lt;BR /&gt; INT11 0 &lt;BR /&gt; INT12 0 &lt;BR /&gt; INT13 0 &lt;BR /&gt; INT14 0 &lt;BR /&gt; INT15 0 &lt;BR /&gt; DMA_ERR 0x00000000 &lt;BR /&gt; ERR0 0 &lt;BR /&gt; ERR1 0 &lt;BR /&gt; ERR2 0 &lt;BR /&gt; ERR3 0 &lt;BR /&gt; ERR4 0 &lt;BR /&gt; ERR5 0 &lt;BR /&gt; ERR6 0 &lt;BR /&gt; ERR7 0 &lt;BR /&gt; ERR8 0 &lt;BR /&gt; ERR9 0 &lt;BR /&gt; ERR10 0 &lt;BR /&gt; ERR11 0 &lt;BR /&gt; ERR12 0 &lt;BR /&gt; ERR13 0 &lt;BR /&gt; ERR14 0 &lt;BR /&gt; ERR15 0 &lt;BR /&gt; DMA_HRS 0x00000000 &lt;BR /&gt; HRS0 0 &lt;BR /&gt; HRS1 0 &lt;BR /&gt; HRS2 0 &lt;BR /&gt; HRS3 0 &lt;BR /&gt; HRS4 0 &lt;BR /&gt; HRS5 0 &lt;BR /&gt; HRS6 0 &lt;BR /&gt; HRS7 0 &lt;BR /&gt; HRS8 0 &lt;BR /&gt; HRS9 0 &lt;BR /&gt; HRS10 0 &lt;BR /&gt; HRS11 0 &lt;BR /&gt; HRS12 0 &lt;BR /&gt; HRS13 0 &lt;BR /&gt; HRS14 0 &lt;BR /&gt; HRS15 0 &lt;BR /&gt; DMA_DCHPRI3 0xc3 &lt;BR /&gt; CHPRI 0x3 &lt;BR /&gt; DPA 1 &lt;BR /&gt; ECP 1 &lt;BR /&gt; DMA_DCHPRI2 0xc2 &lt;BR /&gt; CHPRI 0x2 &lt;BR /&gt; DPA 1 &lt;BR /&gt; ECP 1 &lt;BR /&gt; DMA_DCHPRI1 0xc1 &lt;BR /&gt; CHPRI 0x1 &lt;BR /&gt; DPA 1 &lt;BR /&gt; ECP 1 &lt;BR /&gt; DMA_DCHPRI0 0x0e &lt;BR /&gt; CHPRI 0xe &lt;BR /&gt; DPA 0 &lt;BR /&gt; ECP 0 &lt;BR /&gt; DMA_DCHPRI7 0xc7 &lt;BR /&gt; CHPRI 0x7 &lt;BR /&gt; DPA 1 &lt;BR /&gt; ECP 1 &lt;BR /&gt; DMA_DCHPRI6 0xc6 &lt;BR /&gt; CHPRI 0x6 &lt;BR /&gt; DPA 1 &lt;BR /&gt; ECP 1 &lt;BR /&gt; DMA_DCHPRI5 0xc5 &lt;BR /&gt; CHPRI 0x5 &lt;BR /&gt; DPA 1 &lt;BR /&gt; ECP 1 &lt;BR /&gt; DMA_DCHPRI4 0xc4 &lt;BR /&gt; CHPRI 0x4 &lt;BR /&gt; DPA 1 &lt;BR /&gt; ECP 1 &lt;BR /&gt; DMA_DCHPRI11 0xcb &lt;BR /&gt; CHPRI 0xb &lt;BR /&gt; DPA 1 &lt;BR /&gt; ECP 1 &lt;BR /&gt; DMA_DCHPRI10 0xca &lt;BR /&gt; CHPRI 0xa &lt;BR /&gt; DPA 1 &lt;BR /&gt; ECP 1 &lt;BR /&gt; DMA_DCHPRI9 0xc9 &lt;BR /&gt; CHPRI 0x9 &lt;BR /&gt; DPA 1 &lt;BR /&gt; ECP 1 &lt;BR /&gt; DMA_DCHPRI8 0xc8 &lt;BR /&gt; CHPRI 0x8 &lt;BR /&gt; DPA 1 &lt;BR /&gt; ECP 1 &lt;BR /&gt; DMA_DCHPRI15 0xc0 &lt;BR /&gt; CHPRI 0x0 &lt;BR /&gt; DPA 1 &lt;BR /&gt; ECP 1 &lt;BR /&gt; DMA_DCHPRI14 0x0f &lt;BR /&gt; CHPRI 0xf &lt;BR /&gt; DPA 0 &lt;BR /&gt; ECP 0 &lt;BR /&gt; DMA_DCHPRI13 0x0c &lt;BR /&gt; CHPRI 0xc &lt;BR /&gt; DPA 0 &lt;BR /&gt; ECP 0 &lt;BR /&gt; DMA_DCHPRI12 0x0d &lt;BR /&gt; CHPRI 0xd &lt;BR /&gt; DPA 0 &lt;BR /&gt; ECP 0 &lt;BR /&gt; DMA_TCD0_SADDR 0x0008d7ea &lt;BR /&gt; SADDR 0x0008d7ea &lt;BR /&gt; DMA_TCD1_SADDR 0xc207ff66 &lt;BR /&gt; SADDR 0xc207ff66 &lt;BR /&gt; DMA_TCD2_SADDR 0x40804598 &lt;BR /&gt; SADDR 0x40804598 &lt;BR /&gt; DMA_TCD3_SADDR 0x66e7b351 &lt;BR /&gt; SADDR 0x66e7b351 &lt;BR /&gt; DMA_TCD4_SADDR 0x3e1b799a &lt;BR /&gt; SADDR 0x3e1b799a &lt;BR /&gt; DMA_TCD5_SADDR 0x16790c0f &lt;BR /&gt; SADDR 0x16790c0f &lt;BR /&gt; DMA_TCD6_SADDR 0x5b4d323d &lt;BR /&gt; SADDR 0x5b4d323d &lt;BR /&gt; DMA_TCD7_SADDR 0x9242459a &lt;BR /&gt; SADDR 0x9242459a &lt;BR /&gt; DMA_TCD8_SADDR 0xafb481c2 &lt;BR /&gt; SADDR 0xafb481c2 &lt;BR /&gt; DMA_TCD9_SADDR 0xaf9cc4e6 &lt;BR /&gt; SADDR 0xaf9cc4e6 &lt;BR /&gt; DMA_TCD10_SADDR 0xa63040dd &lt;BR /&gt; SADDR 0xa63040dd &lt;BR /&gt; DMA_TCD11_SADDR 0xc02777c1 &lt;BR /&gt; SADDR 0xc02777c1 &lt;BR /&gt; DMA_TCD12_SADDR 0x4324b813 &lt;BR /&gt; SADDR 0x4324b813 &lt;BR /&gt; DMA_TCD13_SADDR 0x1fff837c &lt;BR /&gt; SADDR 0x1fff837c &lt;BR /&gt; DMA_TCD14_SADDR 0x400ac038 &lt;BR /&gt; SADDR 0x400ac038 &lt;BR /&gt; DMA_TCD15_SADDR 0x543e0dac &lt;BR /&gt; SADDR 0x543e0dac &lt;BR /&gt; DMA_TCD0_SOFF 0x0002 &lt;BR /&gt; SOFF 0x0002 &lt;BR /&gt; DMA_TCD1_SOFF 0xba68 &lt;BR /&gt; SOFF 0xba68 &lt;BR /&gt; DMA_TCD2_SOFF 0x1b77 &lt;BR /&gt; SOFF 0x1b77 &lt;BR /&gt; DMA_TCD3_SOFF 0xed0c &lt;BR /&gt; SOFF 0xed0c &lt;BR /&gt; DMA_TCD4_SOFF 0xe7c7 &lt;BR /&gt; SOFF 0xe7c7 &lt;BR /&gt; DMA_TCD5_SOFF 0xce8b &lt;BR /&gt; SOFF 0xce8b &lt;BR /&gt; DMA_TCD6_SOFF 0x4af9 &lt;BR /&gt; SOFF 0x4af9 &lt;BR /&gt; DMA_TCD7_SOFF 0xec53 &lt;BR /&gt; SOFF 0xec53 &lt;BR /&gt; DMA_TCD8_SOFF 0x270b &lt;BR /&gt; SOFF 0x270b &lt;BR /&gt; DMA_TCD9_SOFF 0x20d1 &lt;BR /&gt; SOFF 0x20d1 &lt;BR /&gt; DMA_TCD10_SOFF 0x16fb &lt;BR /&gt; SOFF 0x16fb &lt;BR /&gt; DMA_TCD11_SOFF 0xb5f2 &lt;BR /&gt; SOFF 0xb5f2 &lt;BR /&gt; DMA_TCD12_SOFF 0x0001 &lt;BR /&gt; SOFF 0x0001 &lt;BR /&gt; DMA_TCD13_SOFF 0x0001 &lt;BR /&gt; SOFF 0x0001 &lt;BR /&gt; DMA_TCD14_SOFF 0x0000 &lt;BR /&gt; SOFF 0x0000 &lt;BR /&gt; DMA_TCD15_SOFF 0x45a8 &lt;BR /&gt; SOFF 0x45a8 &lt;BR /&gt; DMA_TCD1_ATTR 0x4442 &lt;BR /&gt; DSIZE 0x2 &lt;BR /&gt; DMOD 0x08 &lt;BR /&gt; SSIZE 4 &lt;BR /&gt; SMOD 8 &lt;BR /&gt; DMA_TCD2_ATTR 0xcc41 &lt;BR /&gt; DSIZE 0x1 &lt;BR /&gt; DMOD 0x08 &lt;BR /&gt; SSIZE 4 &lt;BR /&gt; SMOD 25 &lt;BR /&gt; DMA_TCD3_ATTR 0xb98b &lt;BR /&gt; DSIZE 0x3 &lt;BR /&gt; DMOD 0x11 &lt;BR /&gt; SSIZE 1 &lt;BR /&gt; SMOD 23 &lt;BR /&gt; DMA_TCD4_ATTR 0x10fa &lt;BR /&gt; DSIZE 0x2 &lt;BR /&gt; DMOD 0x1f &lt;BR /&gt; SSIZE 0 &lt;BR /&gt; SMOD 2 &lt;BR /&gt; DMA_TCD5_ATTR 0x1c9e &lt;BR /&gt; DSIZE 0x6 &lt;BR /&gt; DMOD 0x13 &lt;BR /&gt; SSIZE 4 &lt;BR /&gt; SMOD 3 &lt;BR /&gt; DMA_TCD6_ATTR 0xf417 &lt;BR /&gt; DSIZE 0x7 &lt;BR /&gt; DMOD 0x02 &lt;BR /&gt; SSIZE 4 &lt;BR /&gt; SMOD 30 &lt;BR /&gt; DMA_TCD7_ATTR 0x10f0 &lt;BR /&gt; DSIZE 0x0 &lt;BR /&gt; DMOD 0x1e &lt;BR /&gt; SSIZE 0 &lt;BR /&gt; SMOD 2 &lt;BR /&gt; DMA_TCD8_ATTR 0x1139 &lt;BR /&gt; DSIZE 0x1 &lt;BR /&gt; DMOD 0x07 &lt;BR /&gt; SSIZE 1 &lt;BR /&gt; SMOD 2 &lt;BR /&gt; DMA_TCD9_ATTR 0xc3f2 &lt;BR /&gt; DSIZE 0x2 &lt;BR /&gt; DMOD 0x1e &lt;BR /&gt; SSIZE 3 &lt;BR /&gt; SMOD 24 &lt;BR /&gt; DMA_TCD10_ATTR 0xa1af &lt;BR /&gt; DSIZE 0x7 &lt;BR /&gt; DMOD 0x15 &lt;BR /&gt; SSIZE 1 &lt;BR /&gt; SMOD 20 &lt;BR /&gt; DMA_TCD11_ATTR 0x50fd &lt;BR /&gt; DSIZE 0x5 &lt;BR /&gt; DMOD 0x1f &lt;BR /&gt; SSIZE 0 &lt;BR /&gt; SMOD 10 &lt;BR /&gt; DMA_TCD12_ATTR 0x0000 &lt;BR /&gt; DSIZE 0x0 &lt;BR /&gt; DMOD 0x00 &lt;BR /&gt; SSIZE 0 &lt;BR /&gt; SMOD 0 &lt;BR /&gt; DMA_TCD13_ATTR 0x0000 &lt;BR /&gt; DSIZE 0x0 &lt;BR /&gt; DMOD 0x00 &lt;BR /&gt; SSIZE 0 &lt;BR /&gt; SMOD 0 &lt;BR /&gt; DMA_TCD14_ATTR 0x0000 &lt;BR /&gt; DSIZE 0x0 &lt;BR /&gt; DMOD 0x00 &lt;BR /&gt; SSIZE 0 &lt;BR /&gt; SMOD 0 &lt;BR /&gt; DMA_TCD15_ATTR 0x481d &lt;BR /&gt; DSIZE 0x5 &lt;BR /&gt; DMOD 0x03 &lt;BR /&gt; SSIZE 0 &lt;BR /&gt; SMOD 9 &lt;BR /&gt; DMA_TCD0_NBYTES_MLOFFYES 0x00000002 &lt;BR /&gt; NBYTES 0x002 &lt;BR /&gt; MLOFF 0x00000 &lt;BR /&gt; DMLOE 0 &lt;BR /&gt; SMLOE 0 &lt;BR /&gt; DMA_TCD1_NBYTES_MLOFFYES 0xa48263de &lt;BR /&gt; NBYTES 0x3de &lt;BR /&gt; MLOFF 0x92098 &lt;BR /&gt; DMLOE 0 &lt;BR /&gt; SMLOE 1 &lt;BR /&gt; DMA_TCD2_NBYTES_MLOFFYES 0x5314f91a &lt;BR /&gt; NBYTES 0x11a &lt;BR /&gt; MLOFF 0x4c53e &lt;BR /&gt; DMLOE 1 &lt;BR /&gt; SMLOE 0 &lt;BR /&gt; DMA_TCD3_NBYTES_MLOFFYES 0x9f133d4c &lt;BR /&gt; NBYTES 0x14c &lt;BR /&gt; MLOFF 0x7c4cf &lt;BR /&gt; DMLOE 0 &lt;BR /&gt; SMLOE 1 &lt;BR /&gt; DMA_TCD4_NBYTES_MLOFFYES 0x852a6dd4 &lt;BR /&gt; NBYTES 0x1d4 &lt;BR /&gt; MLOFF 0x14a9b &lt;BR /&gt; DMLOE 0 &lt;BR /&gt; SMLOE 1 &lt;BR /&gt; DMA_TCD5_NBYTES_MLOFFYES 0x59b408da &lt;BR /&gt; NBYTES 0x0da &lt;BR /&gt; MLOFF 0x66d02 &lt;BR /&gt; DMLOE 1 &lt;BR /&gt; SMLOE 0 &lt;BR /&gt; DMA_TCD6_NBYTES_MLOFFYES 0x65730cb4 &lt;BR /&gt; NBYTES 0x0b4 &lt;BR /&gt; MLOFF 0x95cc3 &lt;BR /&gt; DMLOE 1 &lt;BR /&gt; SMLOE 0 &lt;BR /&gt; DMA_TCD7_NBYTES_MLOFFYES 0x4ae54542 &lt;BR /&gt; NBYTES 0x142 &lt;BR /&gt; MLOFF 0x2b951 &lt;BR /&gt; DMLOE 1 &lt;BR /&gt; SMLOE 0 &lt;BR /&gt; DMA_TCD8_NBYTES_MLOFFYES 0x17f320b8 &lt;BR /&gt; NBYTES 0x0b8 &lt;BR /&gt; MLOFF 0x5fcc8 &lt;BR /&gt; DMLOE 0 &lt;BR /&gt; SMLOE 0 &lt;BR /&gt; DMA_TCD9_NBYTES_MLOFFYES 0xc3345b7b &lt;BR /&gt; NBYTES 0x37b &lt;BR /&gt; MLOFF 0x0cd16 &lt;BR /&gt; DMLOE 1 &lt;BR /&gt; SMLOE 1 &lt;BR /&gt; DMA_TCD10_NBYTES_MLOFFYES 0xf85fdbe5 &lt;BR /&gt; NBYTES 0x3e5 &lt;BR /&gt; MLOFF 0xe17f6 &lt;BR /&gt; DMLOE 1 &lt;BR /&gt; SMLOE 1 &lt;BR /&gt; DMA_TCD11_NBYTES_MLOFFYES 0xe1b14c14 &lt;BR /&gt; NBYTES 0x014 &lt;BR /&gt; MLOFF 0x86c53 &lt;BR /&gt; DMLOE 1 &lt;BR /&gt; SMLOE 1 &lt;BR /&gt; DMA_TCD12_NBYTES_MLOFFYES 0x00000001 &lt;BR /&gt; NBYTES 0x001 &lt;BR /&gt; MLOFF 0x00000 &lt;BR /&gt; DMLOE 0 &lt;BR /&gt; SMLOE 0 &lt;BR /&gt; DMA_TCD13_NBYTES_MLOFFYES 0x00000001 &lt;BR /&gt; NBYTES 0x001 &lt;BR /&gt; MLOFF 0x00000 &lt;BR /&gt; DMLOE 0 &lt;BR /&gt; SMLOE 0 &lt;BR /&gt; DMA_TCD14_NBYTES_MLOFFYES 0x00000001&lt;BR /&gt; NBYTES 0x001 &lt;BR /&gt; MLOFF 0x00000 &lt;BR /&gt; DMLOE 0 &lt;BR /&gt; SMLOE 0 &lt;BR /&gt; DMA_TCD15_NBYTES_MLOFFYES 0x3c96eacf &lt;BR /&gt; NBYTES 0x2cf &lt;BR /&gt; MLOFF 0xf25ba &lt;BR /&gt; DMLOE 0 &lt;BR /&gt; SMLOE 0 &lt;BR /&gt; DMA_TCD0_NBYTES_MLOFFNO 0x00000002 &lt;BR /&gt; NBYTES 0x00000002 &lt;BR /&gt; DMLOE 0 &lt;BR /&gt; SMLOE 0 &lt;BR /&gt; DMA_TCD1_NBYTES_MLOFFNO 0xa48263de &lt;BR /&gt; NBYTES 0x248263de &lt;BR /&gt; DMLOE 0 &lt;BR /&gt; SMLOE 1 &lt;BR /&gt; DMA_TCD2_NBYTES_MLOFFNO 0x5314f91a &lt;BR /&gt; NBYTES 0x1314f91a &lt;BR /&gt; DMLOE 1 &lt;BR /&gt; SMLOE 0 &lt;BR /&gt; DMA_TCD3_NBYTES_MLOFFNO 0x9f133d4c &lt;BR /&gt; NBYTES 0x1f133d4c &lt;BR /&gt; DMLOE 0 &lt;BR /&gt; SMLOE 1 &lt;BR /&gt; DMA_TCD4_NBYTES_MLOFFNO 0x852a6dd4 &lt;BR /&gt; NBYTES 0x052a6dd4 &lt;BR /&gt; DMLOE 0 &lt;BR /&gt; SMLOE 1 &lt;BR /&gt; DMA_TCD5_NBYTES_MLOFFNO 0x59b408da &lt;BR /&gt; NBYTES 0x19b408da &lt;BR /&gt; DMLOE 1 &lt;BR /&gt; SMLOE 0 &lt;BR /&gt; DMA_TCD6_NBYTES_MLOFFNO 0x65730cb4 &lt;BR /&gt; NBYTES 0x25730cb4 &lt;BR /&gt; DMLOE 1 &lt;BR /&gt; SMLOE 0 &lt;BR /&gt; DMA_TCD7_NBYTES_MLOFFNO 0x4ae54542 &lt;BR /&gt; NBYTES 0x0ae54542 &lt;BR /&gt; DMLOE 1 &lt;BR /&gt; SMLOE 0 &lt;BR /&gt; DMA_TCD8_NBYTES_MLOFFNO 0x17f320b8 &lt;BR /&gt; NBYTES 0x17f320b8 &lt;BR /&gt; DMLOE 0 &lt;BR /&gt; SMLOE 0 &lt;BR /&gt; DMA_TCD9_NBYTES_MLOFFNO 0xc3345b7b &lt;BR /&gt; NBYTES 0x03345b7b &lt;BR /&gt; DMLOE 1 &lt;BR /&gt; SMLOE 1 &lt;BR /&gt; DMA_TCD10_NBYTES_MLOFFNO 0xf85fdbe5 &lt;BR /&gt; NBYTES 0x385fdbe5 &lt;BR /&gt; DMLOE 1 &lt;BR /&gt; SMLOE 1 &lt;BR /&gt; DMA_TCD11_NBYTES_MLOFFNO 0xe1b14c14 &lt;BR /&gt; NBYTES 0x21b14c14 &lt;BR /&gt; DMLOE 1 &lt;BR /&gt; SMLOE 1 &lt;BR /&gt; DMA_TCD12_NBYTES_MLOFFNO 0x00000001 &lt;BR /&gt; NBYTES 0x00000001 &lt;BR /&gt; DMLOE 0 &lt;BR /&gt; SMLOE 0 &lt;BR /&gt; DMA_TCD13_NBYTES_MLOFFNO 0x00000001 &lt;BR /&gt; NBYTES 0x00000001 &lt;BR /&gt; DMLOE 0 &lt;BR /&gt; SMLOE 0 &lt;BR /&gt; DMA_TCD14_NBYTES_MLOFFNO 0x00000001 &lt;BR /&gt; NBYTES 0x00000001 &lt;BR /&gt; DMLOE 0 &lt;BR /&gt; SMLOE 0 &lt;BR /&gt; DMA_TCD15_NBYTES_MLOFFNO 0x3c96eacf &lt;BR /&gt; NBYTES 0x3c96eacf &lt;BR /&gt; DMLOE 0 &lt;BR /&gt; SMLOE 0 &lt;BR /&gt; DMA_TCD0_NBYTES_MLNO 0x00000002 &lt;BR /&gt; NBYTES 0x00000002 &lt;BR /&gt; DMA_TCD1_NBYTES_MLNO 0xa48263de &lt;BR /&gt; NBYTES 0xa48263de &lt;BR /&gt; DMA_TCD2_NBYTES_MLNO 0x5314f91a &lt;BR /&gt; NBYTES 0x5314f91a &lt;BR /&gt; DMA_TCD3_NBYTES_MLNO 0x9f133d4c &lt;BR /&gt; NBYTES 0x9f133d4c &lt;BR /&gt; DMA_TCD4_NBYTES_MLNO 0x852a6dd4 &lt;BR /&gt; NBYTES 0x852a6dd4 &lt;BR /&gt; DMA_TCD5_NBYTES_MLNO 0x59b408da &lt;BR /&gt; NBYTES 0x59b408da &lt;BR /&gt; DMA_TCD6_NBYTES_MLNO 0x65730cb4 &lt;BR /&gt; NBYTES 0x65730cb4 &lt;BR /&gt; DMA_TCD7_NBYTES_MLNO 0x4ae54542 &lt;BR /&gt; NBYTES 0x4ae54542 &lt;BR /&gt; DMA_TCD8_NBYTES_MLNO 0x17f320b8 &lt;BR /&gt; NBYTES 0x17f320b8 &lt;BR /&gt; DMA_TCD9_NBYTES_MLNO 0xc3345b7b &lt;BR /&gt; NBYTES 0xc3345b7b &lt;BR /&gt; DMA_TCD10_NBYTES_MLNO 0xf85fdbe5 &lt;BR /&gt; NBYTES 0xf85fdbe5 &lt;BR /&gt; DMA_TCD11_NBYTES_MLNO 0xe1b14c14 &lt;BR /&gt; NBYTES 0xe1b14c14 &lt;BR /&gt; DMA_TCD12_NBYTES_MLNO 0x00000001 &lt;BR /&gt; NBYTES 0x00000001 &lt;BR /&gt; DMA_TCD13_NBYTES_MLNO 0x00000001 &lt;BR /&gt; NBYTES 0x00000001 &lt;BR /&gt; DMA_TCD14_NBYTES_MLNO 0x00000001 &lt;BR /&gt; NBYTES 0x00000001 &lt;BR /&gt; DMA_TCD15_NBYTES_MLNO 0x3c96eacf &lt;BR /&gt; NBYTES 0x3c96eacf &lt;BR /&gt; DMA_TCD0_SLAST 0x00000000 &lt;BR /&gt; SLAST 0x00000000 &lt;BR /&gt; DMA_TCD1_SLAST 0xd56d50df &lt;BR /&gt; SLAST 0xd56d50df &lt;BR /&gt; DMA_TCD2_SLAST 0xc58ffb9e &lt;BR /&gt; SLAST 0xc58ffb9e &lt;BR /&gt; DMA_TCD3_SLAST 0xac0c668b &lt;BR /&gt; SLAST 0xac0c668b &lt;BR /&gt; DMA_TCD4_SLAST 0x6d52a635 &lt;BR /&gt; SLAST 0x6d52a635 &lt;BR /&gt; DMA_TCD5_SLAST 0x2d0f8bcf &lt;BR /&gt; SLAST 0x2d0f8bcf &lt;BR /&gt; DMA_TCD6_SLAST 0xa7b2e9cb &lt;BR /&gt; SLAST 0xa7b2e9cb &lt;BR /&gt; DMA_TCD7_SLAST 0x959d85a9 &lt;BR /&gt; SLAST 0x959d85a9 &lt;BR /&gt; DMA_TCD8_SLAST 0x3cd71f9e &lt;BR /&gt; SLAST 0x3cd71f9e &lt;BR /&gt; DMA_TCD9_SLAST 0x59d9239a &lt;BR /&gt; SLAST 0x59d9239a &lt;BR /&gt; DMA_TCD10_SLAST 0x325b9323 &lt;BR /&gt; SLAST 0x325b9323 &lt;BR /&gt; DMA_TCD11_SLAST 0x845f27e0 &lt;BR /&gt; SLAST 0x845f27e0 &lt;BR /&gt; DMA_TCD12_SLAST 0x00000000 &lt;BR /&gt; SLAST 0x00000000 &lt;BR /&gt; DMA_TCD13_SLAST 0x00000000 &lt;BR /&gt; SLAST 0x00000000 &lt;BR /&gt; DMA_TCD14_SLAST 0x00000000 &lt;BR /&gt; SLAST 0x00000000 &lt;BR /&gt; DMA_TCD15_SLAST 0x3aaab7e4 &lt;BR /&gt; SLAST 0x3aaab7e4 &lt;BR /&gt; DMA_TCD0_DADDR 0x4002f020 &lt;BR /&gt; DADDR 0x4002f020 &lt;BR /&gt; DMA_TCD1_DADDR 0x8e8da340 &lt;BR /&gt; DADDR 0x8e8da340 &lt;BR /&gt; DMA_TCD2_DADDR 0x70ba8037 &lt;BR /&gt; DADDR 0x70ba8037 &lt;BR /&gt; DMA_TCD3_DADDR 0x24a4c678 &lt;BR /&gt; DADDR 0x24a4c678 &lt;BR /&gt; DMA_TCD4_DADDR 0xd1cd113e &lt;BR /&gt; DADDR 0xd1cd113e &lt;BR /&gt; DMA_TCD5_DADDR 0xd2a20d18 &lt;BR /&gt; DADDR 0xd2a20d18 &lt;BR /&gt; DMA_TCD6_DADDR 0xf1809c39 &lt;BR /&gt; DADDR 0xf1809c39 &lt;BR /&gt; DMA_TCD7_DADDR 0x5e102cd7 &lt;BR /&gt; DADDR 0x5e102cd7 &lt;BR /&gt; DMA_TCD8_DADDR 0x438da19f &lt;BR /&gt; DADDR 0x438da19f &lt;BR /&gt; DMA_TCD9_DADDR 0x51020001 &lt;BR /&gt; DADDR 0x51020001 &lt;BR /&gt; DMA_TCD10_DADDR 0x640a9dca &lt;BR /&gt; DADDR 0x640a9dca &lt;BR /&gt; DMA_TCD11_DADDR 0x75404c13 &lt;BR /&gt; DADDR 0x75404c13 &lt;BR /&gt; DMA_TCD12_DADDR 0x4002d034 &lt;BR /&gt; DADDR 0x4002d034 &lt;BR /&gt; DMA_TCD13_DADDR 0x4002c034 &lt;BR /&gt; DADDR 0x4002c034 &lt;BR /&gt; DMA_TCD14_DADDR 0x20001380 &lt;BR /&gt; DADDR 0x20001380 &lt;BR /&gt; DMA_TCD15_DADDR 0x622590b5 &lt;BR /&gt; DADDR 0x622590b5 &lt;BR /&gt; DMA_TCD0_DOFF 0x0000 &lt;BR /&gt; DOFF 0x0000 &lt;BR /&gt; DMA_TCD1_DOFF 0xc260 &lt;BR /&gt; DOFF 0xc260 &lt;BR /&gt; DMA_TCD2_DOFF 0x2cea &lt;BR /&gt; DOFF 0x2cea &lt;BR /&gt; DMA_TCD3_DOFF 0x3829 &lt;BR /&gt; DOFF 0x3829 &lt;BR /&gt; DMA_TCD4_DOFF 0x1389 &lt;BR /&gt; DOFF 0x1389 &lt;BR /&gt; DMA_TCD5_DOFF 0x32e5 &lt;BR /&gt; DOFF 0x32e5 &lt;BR /&gt; DMA_TCD6_DOFF 0x1d15 &lt;BR /&gt; DOFF 0x1d15 &lt;BR /&gt; DMA_TCD7_DOFF 0x6a3d &lt;BR /&gt; DOFF 0x6a3d &lt;BR /&gt; DMA_TCD8_DOFF 0x6225 &lt;BR /&gt; DOFF 0x6225 &lt;BR /&gt; DMA_TCD9_DOFF 0x7d3b &lt;BR /&gt; DOFF 0x7d3b &lt;BR /&gt; DMA_TCD10_DOFF 0x6d00 &lt;BR /&gt; DOFF 0x6d00 &lt;BR /&gt; DMA_TCD11_DOFF 0x026b &lt;BR /&gt; DOFF 0x026b &lt;BR /&gt; DMA_TCD12_DOFF 0x0000 &lt;BR /&gt; DOFF 0x0000 &lt;BR /&gt; DMA_TCD13_DOFF 0x0000 &lt;BR /&gt; DOFF 0x0000 &lt;BR /&gt; DMA_TCD14_DOFF 0x0001 &lt;BR /&gt; DOFF 0x0001 &lt;BR /&gt; DMA_TCD15_DOFF 0x007d &lt;BR /&gt; DOFF 0x007d &lt;BR /&gt; DMA_TCD0_CITER_ELINKYES 0x01e9 &lt;BR /&gt; CITER 0x1e9 &lt;BR /&gt; LINKCH 0x0 &lt;BR /&gt; ELINK 0 &lt;BR /&gt; DMA_TCD1_CITER_ELINKYES 0x0f1b &lt;BR /&gt; CITER 0x11b &lt;BR /&gt; LINKCH 0x7 &lt;BR /&gt; ELINK 0 &lt;BR /&gt; DMA_TCD2_CITER_ELINKYES 0x0cd5 &lt;BR /&gt; CITER 0x0d5 &lt;BR /&gt; LINKCH 0x6 &lt;BR /&gt; ELINK 0 &lt;BR /&gt; DMA_TCD3_CITER_ELINKYES 0xb256 &lt;BR /&gt; CITER 0x056 &lt;BR /&gt; LINKCH 0x9 &lt;BR /&gt; ELINK 1 &lt;BR /&gt; DMA_TCD4_CITER_ELINKYES 0x6253 &lt;BR /&gt; CITER 0x053 &lt;BR /&gt; LINKCH 0x1 &lt;BR /&gt; ELINK 0 &lt;BR /&gt; DMA_TCD5_CITER_ELINKYES 0xedf9 &lt;BR /&gt; CITER 0x1f9 &lt;BR /&gt; LINKCH 0x6 &lt;BR /&gt; ELINK 1 &lt;BR /&gt; DMA_TCD6_CITER_ELINKYES 0xc203 &lt;BR /&gt; CITER 0x003 &lt;BR /&gt; LINKCH 0x1 &lt;BR /&gt; ELINK 1 &lt;BR /&gt; DMA_TCD7_CITER_ELINKYES 0x6688 &lt;BR /&gt; CITER 0x088 &lt;BR /&gt; LINKCH 0x3 &lt;BR /&gt; ELINK 0 &lt;BR /&gt; DMA_TCD8_CITER_ELINKYES 0x42db &lt;BR /&gt; CITER 0x0db &lt;BR /&gt; LINKCH 0x1 &lt;BR /&gt; ELINK 0 &lt;BR /&gt; DMA_TCD9_CITER_ELINKYES 0x5963 &lt;BR /&gt; CITER 0x163 &lt;BR /&gt; LINKCH 0xc &lt;BR /&gt; ELINK 0 &lt;BR /&gt; DMA_TCD10_CITER_ELINKYES 0xe4da &lt;BR /&gt; CITER 0x0da &lt;BR /&gt; LINKCH 0x2 &lt;BR /&gt; ELINK 1 &lt;BR /&gt; DMA_TCD11_CITER_ELINKYES 0x220d &lt;BR /&gt; CITER 0x00d &lt;BR /&gt; LINKCH 0x1 &lt;BR /&gt; ELINK 0 &lt;BR /&gt; DMA_TCD12_CITER_ELINKYES 0xe242 &lt;BR /&gt; CITER 0x042 &lt;BR /&gt; LINKCH 0x1 &lt;BR /&gt; ELINK 1 &lt;BR /&gt; DMA_TCD13_CITER_ELINKYES 0x0014 &lt;BR /&gt; CITER 0x014 &lt;BR /&gt; LINKCH 0x0 &lt;BR /&gt; ELINK 0 &lt;BR /&gt; DMA_TCD14_CITER_ELINKYES 0x0001 &lt;BR /&gt; CITER 0x001 &lt;BR /&gt; LINKCH 0x0 &lt;BR /&gt; ELINK 0 &lt;BR /&gt; DMA_TCD15_CITER_ELINKYES 0x2404 &lt;BR /&gt; CITER 0x004 &lt;BR /&gt; LINKCH 0x2 &lt;BR /&gt; ELINK 0 &lt;BR /&gt; DMA_TCD0_CITER_ELINKNO 0x01e9 &lt;BR /&gt; CITER 0x01e9 &lt;BR /&gt; ELINK 0 &lt;BR /&gt; DMA_TCD1_CITER_ELINKNO 0x0f1b &lt;BR /&gt; CITER 0x0f1b &lt;BR /&gt; ELINK 0 &lt;BR /&gt; DMA_TCD2_CITER_ELINKNO 0x0cd5 &lt;BR /&gt; CITER 0x0cd5 &lt;BR /&gt; ELINK 0 &lt;BR /&gt; DMA_TCD3_CITER_ELINKNO 0xb256 &lt;BR /&gt; CITER 0x3256 &lt;BR /&gt; ELINK 1 &lt;BR /&gt; DMA_TCD4_CITER_ELINKNO 0x6253 &lt;BR /&gt; CITER 0x6253 &lt;BR /&gt; ELINK 0 &lt;BR /&gt; DMA_TCD5_CITER_ELINKNO 0xedf9 &lt;BR /&gt; CITER 0x6df9 &lt;BR /&gt; ELINK 1 &lt;BR /&gt; DMA_TCD6_CITER_ELINKNO 0xc203 &lt;BR /&gt; CITER 0x4203 &lt;BR /&gt; ELINK 1 &lt;BR /&gt; DMA_TCD7_CITER_ELINKNO 0x6688 &lt;BR /&gt; CITER 0x6688 &lt;BR /&gt; ELINK 0 &lt;BR /&gt; DMA_TCD8_CITER_ELINKNO 0x42db &lt;BR /&gt; CITER 0x42db &lt;BR /&gt; ELINK 0 &lt;BR /&gt; DMA_TCD9_CITER_ELINKNO 0x5963 &lt;BR /&gt; CITER 0x5963 &lt;BR /&gt; ELINK 0 &lt;BR /&gt; DMA_TCD10_CITER_ELINKNO 0xe4da &lt;BR /&gt; CITER 0x64da &lt;BR /&gt; ELINK 1 &lt;BR /&gt; DMA_TCD11_CITER_ELINKNO 0x220d &lt;BR /&gt; CITER 0x220d &lt;BR /&gt; ELINK 0 &lt;BR /&gt; DMA_TCD12_CITER_ELINKNO 0xe242 &lt;BR /&gt; CITER 0x6242 &lt;BR /&gt; ELINK 1 &lt;BR /&gt; DMA_TCD13_CITER_ELINKNO 0x0014 &lt;BR /&gt; CITER 0x0014 &lt;BR /&gt; ELINK 0 &lt;BR /&gt; DMA_TCD14_CITER_ELINKNO 0x0001&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; *************************** 1 byte missed in transfer&lt;BR /&gt; CITER 0x0001 &lt;BR /&gt; ELINK 0 &lt;BR /&gt; DMA_TCD15_CITER_ELINKNO 0x2404 &lt;BR /&gt; CITER 0x2404 &lt;BR /&gt; ELINK 0 &lt;BR /&gt; DMA_TCD0_DLASTSGA 0x00000000 &lt;BR /&gt; DLASTSGA 0x00000000 &lt;BR /&gt; DMA_TCD1_DLASTSGA 0xc331765d &lt;BR /&gt; DLASTSGA 0xc331765d &lt;BR /&gt; DMA_TCD2_DLASTSGA 0x808ba709 &lt;BR /&gt; DLASTSGA 0x808ba709 &lt;BR /&gt; DMA_TCD3_DLASTSGA 0x45d76024 &lt;BR /&gt; DLASTSGA 0x45d76024 &lt;BR /&gt; DMA_TCD4_DLASTSGA 0xe44ee69d &lt;BR /&gt; DLASTSGA 0xe44ee69d &lt;BR /&gt; DMA_TCD5_DLASTSGA 0x1bc8669d &lt;BR /&gt; DLASTSGA 0x1bc8669d &lt;BR /&gt; DMA_TCD6_DLASTSGA 0x81d8c40d &lt;BR /&gt; DLASTSGA 0x81d8c40d &lt;BR /&gt; DMA_TCD7_DLASTSGA 0x9dc6ad05 &lt;BR /&gt; DLASTSGA 0x9dc6ad05 &lt;BR /&gt; DMA_TCD8_DLASTSGA 0xa2a9fe41 &lt;BR /&gt; DLASTSGA 0xa2a9fe41 &lt;BR /&gt; DMA_TCD9_DLASTSGA 0xc1fab35b &lt;BR /&gt; DLASTSGA 0xc1fab35b &lt;BR /&gt; DMA_TCD10_DLASTSGA 0x63d5982e &lt;BR /&gt; DLASTSGA 0x63d5982e &lt;BR /&gt; DMA_TCD11_DLASTSGA 0x5a1c65fb &lt;BR /&gt; DLASTSGA 0x5a1c65fb &lt;BR /&gt; DMA_TCD12_DLASTSGA 0x00000000 &lt;BR /&gt; DLASTSGA 0x00000000 &lt;BR /&gt; DMA_TCD13_DLASTSGA 0x00000000 &lt;BR /&gt; DLASTSGA 0x00000000 &lt;BR /&gt; DMA_TCD14_DLASTSGA 0x00000000 &lt;BR /&gt; DLASTSGA 0x00000000 &lt;BR /&gt; DMA_TCD15_DLASTSGA 0x809d462c &lt;BR /&gt; DLASTSGA 0x809d462c &lt;BR /&gt; DMA_TCD0_CSR 0x0002 &lt;BR /&gt; START 0 &lt;BR /&gt; INTMAJOR 1 &lt;BR /&gt; INTHALF 0 &lt;BR /&gt; DREQ 0 &lt;BR /&gt; ESG 0 &lt;BR /&gt; MAJORELINK 0 &lt;BR /&gt; ACTIVE 0 &lt;BR /&gt; DONE 0 &lt;BR /&gt; MAJORLINKCH 0x0 &lt;BR /&gt; BWC 0 &lt;BR /&gt; DMA_TCD1_CSR 0xe306 &lt;BR /&gt; START 0 &lt;BR /&gt; INTMAJOR 1 &lt;BR /&gt; INTHALF 1 &lt;BR /&gt; DREQ 0 &lt;BR /&gt; ESG 0 &lt;BR /&gt; MAJORELINK 0 &lt;BR /&gt; ACTIVE 0 &lt;BR /&gt; DONE 0 &lt;BR /&gt; MAJORLINKCH 0x3 &lt;BR /&gt; BWC 3 &lt;BR /&gt; DMA_TCD2_CSR 0xc428 &lt;BR /&gt; START 0 &lt;BR /&gt; INTMAJOR 0 &lt;BR /&gt; INTHALF 0 &lt;BR /&gt; DREQ 1 &lt;BR /&gt; ESG 0 &lt;BR /&gt; MAJORELINK 1 &lt;BR /&gt; ACTIVE 0 &lt;BR /&gt; DONE 0 &lt;BR /&gt; MAJORLINKCH 0x4 &lt;BR /&gt; BWC 3 &lt;BR /&gt; DMA_TCD3_CSR 0x1a3a &lt;BR /&gt; START 0 &lt;BR /&gt; INTMAJOR 1 &lt;BR /&gt; INTHALF 0 &lt;BR /&gt; DREQ 1 &lt;BR /&gt; ESG 1 &lt;BR /&gt; MAJORELINK 1 &lt;BR /&gt; ACTIVE 0 &lt;BR /&gt; DONE 0 &lt;BR /&gt; MAJORLINKCH 0xa &lt;BR /&gt; BWC 0 &lt;BR /&gt; DMA_TCD4_CSR 0x223e &lt;BR /&gt; START 0 &lt;BR /&gt; INTMAJOR 1 &lt;BR /&gt; INTHALF 1 &lt;BR /&gt; DREQ 1 &lt;BR /&gt; ESG 1 &lt;BR /&gt; MAJORELINK 1 &lt;BR /&gt; ACTIVE 0 &lt;BR /&gt; DONE 0 &lt;BR /&gt; MAJORLINKCH 0x2 &lt;BR /&gt; BWC 0 &lt;BR /&gt; DMA_TCD5_CSR 0xf632 &lt;BR /&gt; START 0 &lt;BR /&gt; INTMAJOR 1 &lt;BR /&gt; INTHALF 0 &lt;BR /&gt; DREQ 0 &lt;BR /&gt; ESG 1 &lt;BR /&gt; MAJORELINK 1 &lt;BR /&gt; ACTIVE 0 &lt;BR /&gt; DONE 0 &lt;BR /&gt; MAJORLINKCH 0x6 &lt;BR /&gt; BWC 3 &lt;BR /&gt; DMA_TCD6_CSR 0xed04 &lt;BR /&gt; START 0 &lt;BR /&gt; INTMAJOR 0 &lt;BR /&gt; INTHALF 1 &lt;BR /&gt; DREQ 0 &lt;BR /&gt; ESG 0 &lt;BR /&gt; MAJORELINK 0 &lt;BR /&gt; ACTIVE 0 &lt;BR /&gt; DONE 0 &lt;BR /&gt; MAJORLINKCH 0xd &lt;BR /&gt; BWC 3 &lt;BR /&gt; DMA_TCD7_CSR 0xc032 &lt;BR /&gt; START 0 &lt;BR /&gt; INTMAJOR 1 &lt;BR /&gt; INTHALF 0 &lt;BR /&gt; DREQ 0 &lt;BR /&gt; ESG 1 &lt;BR /&gt; MAJORELINK 1 &lt;BR /&gt; ACTIVE 0 &lt;BR /&gt; DONE 0 &lt;BR /&gt; MAJORLINKCH 0x0 &lt;BR /&gt; BWC 3 &lt;BR /&gt; DMA_TCD8_CSR 0x3a32 &lt;BR /&gt; START 0 &lt;BR /&gt; INTMAJOR 1 &lt;BR /&gt; INTHALF 0 &lt;BR /&gt; DREQ 0 &lt;BR /&gt; ESG 1 &lt;BR /&gt; MAJORELINK 1 &lt;BR /&gt; ACTIVE 0 &lt;BR /&gt; DONE 0 &lt;BR /&gt; MAJORLINKCH 0xa &lt;BR /&gt; BWC 0 &lt;BR /&gt; DMA_TCD9_CSR 0xe50e &lt;BR /&gt; START 0 &lt;BR /&gt; INTMAJOR 1 &lt;BR /&gt; INTHALF 1 &lt;BR /&gt; DREQ 1 &lt;BR /&gt; ESG 0 &lt;BR /&gt; MAJORELINK 0 &lt;BR /&gt; ACTIVE 0 &lt;BR /&gt; DONE 0 &lt;BR /&gt; MAJORLINKCH 0x5 &lt;BR /&gt; BWC 3 &lt;BR /&gt; DMA_TCD10_CSR 0x6f02 &lt;BR /&gt; START 0 &lt;BR /&gt; INTMAJOR 1 &lt;BR /&gt; INTHALF 0 &lt;BR /&gt; DREQ 0 &lt;BR /&gt; ESG 0 &lt;BR /&gt; MAJORELINK 0 &lt;BR /&gt; ACTIVE 0 &lt;BR /&gt; DONE 0 &lt;BR /&gt; MAJORLINKCH 0xf &lt;BR /&gt; BWC 1 &lt;BR /&gt; DMA_TCD11_CSR 0xef2e &lt;BR /&gt; START 0 &lt;BR /&gt; INTMAJOR 1 &lt;BR /&gt; INTHALF 1 &lt;BR /&gt; DREQ 1 &lt;BR /&gt; ESG 0 &lt;BR /&gt; MAJORELINK 1 &lt;BR /&gt; ACTIVE 0 &lt;BR /&gt; DONE 0 &lt;BR /&gt; MAJORLINKCH 0xf &lt;BR /&gt; BWC 3 &lt;BR /&gt; DMA_TCD12_CSR 0x0002 &lt;BR /&gt; START 0 &lt;BR /&gt; INTMAJOR 1 &lt;BR /&gt; INTHALF 0 &lt;BR /&gt; DREQ 0 &lt;BR /&gt; ESG 0 &lt;BR /&gt; MAJORELINK 0 &lt;BR /&gt; ACTIVE 0 &lt;BR /&gt; DONE 0 &lt;BR /&gt; MAJORLINKCH 0x0 &lt;BR /&gt; BWC 0 &lt;BR /&gt; DMA_TCD13_CSR 0x0002 &lt;BR /&gt; START 0 &lt;BR /&gt; INTMAJOR 1 &lt;BR /&gt; INTHALF 0 &lt;BR /&gt; DREQ 0 &lt;BR /&gt; ESG 0 &lt;BR /&gt; MAJORELINK 0 &lt;BR /&gt; ACTIVE 0 &lt;BR /&gt; DONE 0 &lt;BR /&gt; MAJORLINKCH 0x0 &lt;BR /&gt; BWC 0 &lt;BR /&gt; DMA_TCD14_CSR 0x0002 &lt;BR /&gt; START 0 &lt;BR /&gt; INTMAJOR 1 &lt;BR /&gt; INTHALF 0 &lt;BR /&gt; DREQ 0 &lt;BR /&gt; ESG 0 &lt;BR /&gt; MAJORELINK 0 &lt;BR /&gt; ACTIVE 0 &lt;BR /&gt; DONE 0 &lt;BR /&gt; MAJORLINKCH 0x0 &lt;BR /&gt; BWC 0 &lt;BR /&gt; DMA_TCD15_CSR 0xe90c &lt;BR /&gt; START 0 &lt;BR /&gt; INTMAJOR 0 &lt;BR /&gt; INTHALF 1 &lt;BR /&gt; DREQ 1 &lt;BR /&gt; ESG 0 &lt;BR /&gt; MAJORELINK 0 &lt;BR /&gt; ACTIVE 0 &lt;BR /&gt; DONE 0 &lt;BR /&gt; MAJORLINKCH 0x9 &lt;BR /&gt; BWC 3 &lt;BR /&gt; DMA_TCD0_BITER_ELINKYES 0x0800 &lt;BR /&gt; BITER 0x000 &lt;BR /&gt; LINKCH 0x4 &lt;BR /&gt; ELINK 0 &lt;BR /&gt; DMA_TCD1_BITER_ELINKYES 0xa673 &lt;BR /&gt; BITER 0x073 &lt;BR /&gt; LINKCH 0x3 &lt;BR /&gt; ELINK 1 &lt;BR /&gt; DMA_TCD2_BITER_ELINKYES 0x5573 &lt;BR /&gt; BITER 0x173 &lt;BR /&gt; LINKCH 0xa &lt;BR /&gt; ELINK 0 &lt;BR /&gt; DMA_TCD3_BITER_ELINKYES 0x1339 &lt;BR /&gt; BITER 0x139 &lt;BR /&gt; LINKCH 0x9 &lt;BR /&gt; ELINK 0 &lt;BR /&gt; DMA_TCD4_BITER_ELINKYES 0x41d6 &lt;BR /&gt; BITER 0x1d6 &lt;BR /&gt; LINKCH 0x0 &lt;BR /&gt; ELINK 0 &lt;BR /&gt; DMA_TCD5_BITER_ELINKYES 0x853b &lt;BR /&gt; BITER 0x13b &lt;BR /&gt; LINKCH 0x2 &lt;BR /&gt; ELINK 1 &lt;BR /&gt; DMA_TCD6_BITER_ELINKYES 0x1ec2 &lt;BR /&gt; BITER 0x0c2 &lt;BR /&gt; LINKCH 0xf &lt;BR /&gt; ELINK 0 &lt;BR /&gt; DMA_TCD7_BITER_ELINKYES 0xf269 &lt;BR /&gt; BITER 0x069 &lt;BR /&gt; LINKCH 0x9 &lt;BR /&gt; ELINK 1 &lt;BR /&gt; DMA_TCD8_BITER_ELINKYES 0x1a88 &lt;BR /&gt; BITER 0x088 &lt;BR /&gt; LINKCH 0xd &lt;BR /&gt; ELINK 0 &lt;BR /&gt; DMA_TCD9_BITER_ELINKYES 0xbf8a &lt;BR /&gt; BITER 0x18a &lt;BR /&gt; LINKCH 0xf &lt;BR /&gt; ELINK 1 &lt;BR /&gt; DMA_TCD10_BITER_ELINKYES 0x781e &lt;BR /&gt; BITER 0x01e &lt;BR /&gt; LINKCH 0xc &lt;BR /&gt; ELINK 0 &lt;BR /&gt; DMA_TCD11_BITER_ELINKYES 0xb28d &lt;BR /&gt; BITER 0x08d &lt;BR /&gt; LINKCH 0x9 &lt;BR /&gt; ELINK 1 &lt;BR /&gt; DMA_TCD12_BITER_ELINKYES 0x4f8b &lt;BR /&gt; BITER 0x18b &lt;BR /&gt; LINKCH 0x7 &lt;BR /&gt; ELINK 0 &lt;BR /&gt; DMA_TCD13_BITER_ELINKYES 0x0018 &lt;BR /&gt; BITER 0x018 &lt;BR /&gt; LINKCH 0x0 &lt;BR /&gt; ELINK 0 &lt;BR /&gt; DMA_TCD14_BITER_ELINKYES 0x0045 &lt;BR /&gt; BITER 0x045 &lt;BR /&gt; LINKCH 0x0 &lt;BR /&gt; ELINK 0 &lt;BR /&gt; DMA_TCD15_BITER_ELINKYES 0xdab0 &lt;BR /&gt; BITER 0x0b0 &lt;BR /&gt; LINKCH 0xd &lt;BR /&gt; ELINK 1 &lt;BR /&gt; DMA_TCD1_BITER_ELINKNO 0xa673 &lt;BR /&gt; BITER 0x2673 &lt;BR /&gt; ELINK 1 &lt;BR /&gt; DMA_TCD2_BITER_ELINKNO 0x5573 &lt;BR /&gt; BITER 0x5573 &lt;BR /&gt; ELINK 0 &lt;BR /&gt; DMA_TCD3_BITER_ELINKNO 0x1339 &lt;BR /&gt; BITER 0x1339 &lt;BR /&gt; ELINK 0 &lt;BR /&gt; DMA_TCD4_BITER_ELINKNO 0x41d6 &lt;BR /&gt; BITER 0x41d6 &lt;BR /&gt; ELINK 0 &lt;BR /&gt; DMA_TCD5_BITER_ELINKNO 0x853b &lt;BR /&gt; BITER 0x053b &lt;BR /&gt; ELINK 1 &lt;BR /&gt; DMA_TCD6_BITER_ELINKNO 0x1ec2 &lt;BR /&gt; BITER 0x1ec2 &lt;BR /&gt; ELINK 0 &lt;BR /&gt; DMA_TCD7_BITER_ELINKNO 0xf269 &lt;BR /&gt; BITER 0x7269 &lt;BR /&gt; ELINK 1 &lt;BR /&gt; DMA_TCD8_BITER_ELINKNO 0x1a88 &lt;BR /&gt; BITER 0x1a88 &lt;BR /&gt; ELINK 0 &lt;BR /&gt; DMA_TCD9_BITER_ELINKNO 0xbf8a &lt;BR /&gt; BITER 0x3f8a &lt;BR /&gt; ELINK 1 &lt;BR /&gt; DMA_TCD10_BITER_ELINKNO 0x781e &lt;BR /&gt; BITER 0x781e &lt;BR /&gt; ELINK 0 &lt;BR /&gt; DMA_TCD11_BITER_ELINKNO 0xb28d &lt;BR /&gt; BITER 0x328d &lt;BR /&gt; ELINK 1 &lt;BR /&gt; DMA_TCD12_BITER_ELINKNO 0x4f8b &lt;BR /&gt; BITER 0x4f8b &lt;BR /&gt; ELINK 0 &lt;BR /&gt; DMA_TCD13_BITER_ELINKNO 0x0018 &lt;BR /&gt; BITER 0x0018 &lt;BR /&gt; ELINK 0 &lt;BR /&gt; DMA_TCD14_BITER_ELINKNO 0x0045 &lt;BR /&gt; BITER 0x0045 &lt;BR /&gt; ELINK 0 &lt;BR /&gt; DMA_TCD15_BITER_ELINKNO 0xdab0 &lt;BR /&gt; BITER 0x5ab0 &lt;BR /&gt; ELINK 1 &lt;BR /&gt; DMA_TCD0_BITER_ELINKNO &lt;BR /&gt; BITER &lt;BR /&gt; ELINK &lt;BR /&gt; DMA_TCD0_ATTR &lt;BR /&gt; DSIZE &lt;BR /&gt; DMOD &lt;BR /&gt; SSIZE &lt;BR /&gt; SMOD&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 26 Dec 2018 18:57:45 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/K64-SPI-DMA-missing-a-byte-on-transfer/m-p/829789#M50167</guid>
      <dc:creator>JHinkle</dc:creator>
      <dc:date>2018-12-26T18:57:45Z</dc:date>
    </item>
    <item>
      <title>Re: K64 SPI - DMA - missing a byte on transfer</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/K64-SPI-DMA-missing-a-byte-on-transfer/m-p/829790#M50168</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Joe,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;About eDMA handling multiple transfer requests, please check &lt;A href="https://www.nxp.com/docs/en/application-note/AN4765.pdf"&gt;AN4765 &lt;/A&gt;chapter 3.1 for detailed info.&lt;/P&gt;&lt;P&gt;Although the AN4765 for MPC57xx eDMA module, which also be suitable for K64 eDMA module.&lt;/P&gt;&lt;P&gt;Wish it helps.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Have a great day,&lt;BR /&gt;Mike&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>Thu, 27 Dec 2018 01:53:19 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/K64-SPI-DMA-missing-a-byte-on-transfer/m-p/829790#M50168</guid>
      <dc:creator>Hui_Ma</dc:creator>
      <dc:date>2018-12-27T01:53:19Z</dc:date>
    </item>
    <item>
      <title>Re: K64 SPI - DMA - missing a byte on transfer</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/K64-SPI-DMA-missing-a-byte-on-transfer/m-p/829791#M50169</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Joe,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I checked the DMA_TCD14_CSR register value is&amp;nbsp;&amp;nbsp; 0x2.&lt;/P&gt;&lt;P&gt;Could you try to enable [DREQ] bit also? Set DMA_TCD14_CSR register value to 0xA.&lt;/P&gt;&lt;P&gt;Please try if it could fix the issue.&lt;/P&gt;&lt;P&gt;Wish it helps.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Have a great day,&lt;BR /&gt;Mike&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>Thu, 27 Dec 2018 02:37:21 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/K64-SPI-DMA-missing-a-byte-on-transfer/m-p/829791#M50169</guid>
      <dc:creator>Hui_Ma</dc:creator>
      <dc:date>2018-12-27T02:37:21Z</dc:date>
    </item>
    <item>
      <title>Re: K64 SPI - DMA - missing a byte on transfer</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/K64-SPI-DMA-missing-a-byte-on-transfer/m-p/829792#M50170</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks Mike for link to&amp;nbsp;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;A data-content-finding="Community" href="https://community.nxp.com/external-link.jspa?url=https%3A%2F%2Fwww.nxp.com%2Fdocs%2Fen%2Fapplication-note%2FAN4765.pdf" rel="nofollow" style="color: #3d9ce7; background-color: #ffffff; border: 0px; text-decoration: underline; padding: 0px calc(12px + 0.35ex) 0px 0px;" target="_blank"&gt;&lt;SPAN style="background-color: #ffffff; color: #3d9ce7; border-image: initial; border-color: initial; text-decoration-style: initial; border-style: initial; text-decoration-color: initial; padding-right: calc(12px + 0.35ex);"&gt;&lt;SPAN style="text-decoration: underline;"&gt;AN4765&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #3d9ce7; background-color: #ffffff; border: 0px; text-decoration: underline; padding: 0px calc(12px + 0.35ex) 0px 0px;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/A&gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You blew my understanding out the window.&amp;nbsp; IMO - DMA kind of sucks now since I can't use it to process two "incoming"&amp;nbsp; data streams that may be active at the same time.&amp;nbsp; Looks like interrupt processing may still be the best practice if the data rate allows for it -- at least then I can acquire multiple streams at the same time.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The explanation in&amp;nbsp;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;A class="" data-content-finding="Community" href="https://community.nxp.com/external-link.jspa?url=https%3A%2F%2Fwww.nxp.com%2Fdocs%2Fen%2Fapplication-note%2FAN4765.pdf" rel="nofollow" style="color: #3d9ce7; background-color: #ffffff; border: 0px; text-decoration: underline; padding: 0px calc(12px + 0.35ex) 0px 0px;" target="_blank"&gt;AN4765&lt;/A&gt;should be&amp;nbsp;&lt;SPAN style="background-color: #ffffff; color: #51626f;"&gt;&amp;nbsp;included as a link in most the the users manuals that have DMA capabilities.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks again for that clarification - luckily I never had two streams being transferred at the same time -- but now I can properly use it in the future.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Joe&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 27 Dec 2018 02:43:13 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/K64-SPI-DMA-missing-a-byte-on-transfer/m-p/829792#M50170</guid>
      <dc:creator>JHinkle</dc:creator>
      <dc:date>2018-12-27T02:43:13Z</dc:date>
    </item>
    <item>
      <title>Re: K64 SPI - DMA - missing a byte on transfer</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/K64-SPI-DMA-missing-a-byte-on-transfer/m-p/829793#M50171</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Joe,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The DMA handling multiple transfer is quite similar as Interrupt handler.&lt;/P&gt;&lt;P&gt;Whatever priority-preemption and round-robin mode, it need to consider the low priority request has chance to occupy the DMA engine. DMA can do two data streams, while it need system level balance.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Have a great day,&lt;BR /&gt;Mike&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>Thu, 27 Dec 2018 03:34:04 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/K64-SPI-DMA-missing-a-byte-on-transfer/m-p/829793#M50171</guid>
      <dc:creator>Hui_Ma</dc:creator>
      <dc:date>2018-12-27T03:34:04Z</dc:date>
    </item>
    <item>
      <title>Re: K64 SPI - DMA - missing a byte on transfer</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/K64-SPI-DMA-missing-a-byte-on-transfer/m-p/829794#M50172</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Mike:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I back up.&amp;nbsp; I don't know if we are referring to different operations but i'm of the opinion that my original understanding of the DMA transfer is/was correct.&amp;nbsp; I reread AN4765 after it occurred to me that currently I am running multiple data stream simultaneously with DMA.&amp;nbsp; I run an Audio I2S continiously with DMA and also push data out two SPI ports - all at the same time.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AN4765 talks about "transfer".&amp;nbsp; I thought it was talking about completing a "transfer process as defined by the TCD" which was NOT to my understanding.&amp;nbsp; It is talking about individual data transfer requests - not complete TCD requests.&amp;nbsp; Since I am using "fixed" priority, I am only allowed one level of preemption so two data streams can operate at the same time.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This discussion was a detour from my original question as to why the DMA missed a SPI data transfer request.&amp;nbsp; The detour occured when I asked why the CX (cancel TCD transfer request) was global thereby affect multiple channels.&amp;nbsp; I guess that question is still open because as stated above, you can have multiple active channels.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Joe&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 27 Dec 2018 15:46:59 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/K64-SPI-DMA-missing-a-byte-on-transfer/m-p/829794#M50172</guid>
      <dc:creator>JHinkle</dc:creator>
      <dc:date>2018-12-27T15:46:59Z</dc:date>
    </item>
    <item>
      <title>Re: K64 SPI - DMA - missing a byte on transfer</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/K64-SPI-DMA-missing-a-byte-on-transfer/m-p/829795#M50173</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Mike:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I question your direction on setting the DREQ bit.&amp;nbsp; My under standing is that if that bit is set, then the channel becomes inactive at the completion of the defined TCD process.&amp;nbsp; That would require me to enable the channel every time I wanted to start a new TCD.&amp;nbsp; Today, I leave the channel active and just write a new destination and new CITER/BITER values.&amp;nbsp; I know the channel is "inactive" from a SPI hardware perspective because I have handshaking for flow control.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;What are your thoughts as to why setting this bit might be helpful?&amp;nbsp; Is it because the current SDK sets that bit which I can see why since the SDK is written for general use and is not always written for performance.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I really appreciate your helping on this Mike - Thanks again.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Joe&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 27 Dec 2018 15:56:51 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/K64-SPI-DMA-missing-a-byte-on-transfer/m-p/829795#M50173</guid>
      <dc:creator>JHinkle</dc:creator>
      <dc:date>2018-12-27T15:56:51Z</dc:date>
    </item>
    <item>
      <title>Re: K64 SPI - DMA - missing a byte on transfer</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/K64-SPI-DMA-missing-a-byte-on-transfer/m-p/829796#M50174</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Joe - I've used K64F DMA on SPI extensively without dropping bytes. And it is AOK to run multiple DMA simultaneously despite strange replies above. First thing is: check &lt;SPAN style="text-decoration: underline;"&gt;&lt;STRONG&gt;really&lt;/STRONG&gt;&lt;/SPAN&gt; carefully that the electrical connection and grounding between the 2 MCU is perfect. Any problem with grounding or termination can lead to this kind of strange behavior, for example patch wires in air (rather than proper PCB connection)...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope that helps, Best Regards, Dave&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PS: I also was surprised by the CX in the DMA_CR register affecting all channels. If you need to reset a specific channel, beware that any update is asynchronous with DMA and you may need to test/reset repeatedly; I needed this in related DMA code:&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Amazingly, despite documentation, once every few minutes of runtime the major link enable below doesn't work.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Repeating it twice gets ten minutes, Yikes...&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while( ! (DMA0-&amp;gt;TCD[1].CSR &amp;amp; DMA_CSR_MAJORELINK_MASK) ) {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Note: The user must clear the TCD.done bit before writing the TCD.major.e_link or TCD.e_sg bits.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DMA0-&amp;gt;CDNE = 1/*DMA channel#*/; // clear the DONE bit so we can update DMA channel 1 (linking after CNV)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DMA0-&amp;gt;TCD[1].CSR |= DMA_CSR_MAJORELINK_MASK; // set the MAJORELINK bit so CNV chains to ADC initiation&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;PPS: When you're testing, it might be prudent to send known values, so you can find out &lt;SPAN style="text-decoration: underline;"&gt;which&lt;/SPAN&gt; byte got lost, and/or whether any data got garbled... Is it always the same byte missing? Data corruption?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 27 Dec 2018 18:55:13 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/K64-SPI-DMA-missing-a-byte-on-transfer/m-p/829796#M50174</guid>
      <dc:creator>davenadler</dc:creator>
      <dc:date>2018-12-27T18:55:13Z</dc:date>
    </item>
    <item>
      <title>Re: K64 SPI - DMA - missing a byte on transfer</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/K64-SPI-DMA-missing-a-byte-on-transfer/m-p/829797#M50175</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks for your comments Dave.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The two micros are on the same pcb so no trace/connection concerns.&amp;nbsp; The SPI clearly shows that a data byte was not acquired by DMA prior to the next one coming in.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Micro1 has access to a 65meg data file that it must pass to micro2 for processing.&amp;nbsp; The transfer process breaks the 65 Megabytes into 64 byte blocks and transfers them via SPI where the K64 is the slave in this case.&amp;nbsp; Block transfer is flow controlled by another IO pin --- which means it takes about 1,000,000 block transfer to move the data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The issue is if I do approx 10 complete 65MB file transfers, one 64 byte block out of the 10 million blocks transferred will have this issue - trying to find out what could affect DMA to miss the SPI request to transfer data.&amp;nbsp; Currently I have direct traces for the SPI signals between the two micros - I did not consider 8 mhz clock that fast to add inline 50 ohms resistors to help control transmission line affects -- which I may do in the next board turn.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I questioned CX because it is part of the CSR register which affects all channels.&amp;nbsp; The documentation states that setting the CX bit will make the DMA assume it completed its TCD task.&amp;nbsp; I did find that the CX bit did not seem to work on a channel if the channel was enabled.&amp;nbsp; In my recovery function, I disable the channel, set the CX bit and then wait for it to go to zero, then enable it -- which works.&amp;nbsp; If THAT is really how it works then I can see it as a global only working on channels NOT enabled and NOT affecting channels that are enabled.&amp;nbsp; If my last statement is true, then I suggest the documentation be more clear on how this bit actually works and how to properly use it.&amp;nbsp; I made some assumptions and different test to come to the conclusion I stated above.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Joe&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 27 Dec 2018 20:38:56 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/K64-SPI-DMA-missing-a-byte-on-transfer/m-p/829797#M50175</guid>
      <dc:creator>JHinkle</dc:creator>
      <dc:date>2018-12-27T20:38:56Z</dc:date>
    </item>
    <item>
      <title>Re: K64 SPI - DMA - missing a byte on transfer</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/K64-SPI-DMA-missing-a-byte-on-transfer/m-p/829798#M50176</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Sounds like the electrical situation is OK and you've got decent PCB, signals, and power/ground with appropriate bypass caps everywhere. If it were me, next thing I'd do is:&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;Put the scope/logic analyzer on the SPI with a trigger on the 'block ready' signal. Let it run until there's an error and make sure not to again trigger; now the last xfer is on the scope. Is the data &lt;SPAN style="text-decoration: underline;"&gt;&lt;STRONG&gt;sent&lt;/STRONG&gt;&lt;/SPAN&gt; properly on the bus? Assumes you have a scope or logic analyzer up to the task (SPI decode etc) as I have here...&lt;/LI&gt;&lt;LI&gt;Send controlled test data and record what is missing and/or garbled. If the error is not random this will give a clue as to the problem source...&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;Hope that helps; let us know what you find,&lt;BR /&gt;Best Regards, Dave&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 27 Dec 2018 21:23:50 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/K64-SPI-DMA-missing-a-byte-on-transfer/m-p/829798#M50176</guid>
      <dc:creator>davenadler</dc:creator>
      <dc:date>2018-12-27T21:23:50Z</dc:date>
    </item>
    <item>
      <title>Re: K64 SPI - DMA - missing a byte on transfer</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/K64-SPI-DMA-missing-a-byte-on-transfer/m-p/829799#M50177</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks for the reply Dave.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I had thought about trapping the SPI transfer with both scope and logic analyzer but concluded it would give me SPI signal data but that data would not help identify root cause -- here's why.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The captured scope and logic analyzer data would tell me if a SPI issue occurred (missing or garbled data).&amp;nbsp; But the issue is not SPI since the SPI captured all of the data.&amp;nbsp; The issue is that the DMA did not read the received SPI data before the next SPI data was fully clocked in (flag RFOF set).&amp;nbsp; All of the related SPI to DMA signals are inside the mcu - not exposed to any pins or signals.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As I see it ..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#1.&amp;nbsp; Upon clocking in the SPI data - did the SPI set the RFDF flag - if not why? -- this is one byte/transfer request out of 650 million bytes.&amp;nbsp; If this did not get set internally then NO DMA transfer would be requested.&lt;/P&gt;&lt;P&gt;#2.&amp;nbsp; If the SPI had set the RFDF flag - why did the DMA not proceed with a data transfer?&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I say that because I know 69 bytes were transmitted via SPI.&amp;nbsp; I know the DMA moved 68 bytes with the first byte being correct (that removes concern of start conditions). SPI shows RFOF set meaning that SPI did receive/clock in all 69 bytes - DMA did not transfer one of them - DMA moved 68 and is waiting for one more transfer request to finish the current TCD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you see it differently - please let me know.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks again for your comments.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Joe&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 27 Dec 2018 22:31:58 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/K64-SPI-DMA-missing-a-byte-on-transfer/m-p/829799#M50177</guid>
      <dc:creator>JHinkle</dc:creator>
      <dc:date>2018-12-27T22:31:58Z</dc:date>
    </item>
    <item>
      <title>Re: K64 SPI - DMA - missing a byte on transfer</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/K64-SPI-DMA-missing-a-byte-on-transfer/m-p/829800#M50178</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Sorry, I missed the point that the missing byte is the last byte and sitting in the SPI but not transferred by DMA. Hmmmm... let me look into that...&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 27 Dec 2018 22:35:53 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/K64-SPI-DMA-missing-a-byte-on-transfer/m-p/829800#M50178</guid>
      <dc:creator>davenadler</dc:creator>
      <dc:date>2018-12-27T22:35:53Z</dc:date>
    </item>
    <item>
      <title>Re: K64 SPI - DMA - missing a byte on transfer</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/K64-SPI-DMA-missing-a-byte-on-transfer/m-p/829801#M50179</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;No - I think we are still disconnected.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I know the first byte of the SPI packet was transferred I do not know which of the remaining 68 were missed.&amp;nbsp; The SPI shows RFDF as cleared which would indicate the last byte was transferred but shows RDOF set meaning one of the middle 67 bytes were missed by the DMA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;That's my puzzle - why one out of 650 million bytes was missed by DMA?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Joe&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 27 Dec 2018 22:54:12 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/K64-SPI-DMA-missing-a-byte-on-transfer/m-p/829801#M50179</guid>
      <dc:creator>JHinkle</dc:creator>
      <dc:date>2018-12-27T22:54:12Z</dc:date>
    </item>
    <item>
      <title>Re: K64 SPI - DMA - missing a byte on transfer</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/K64-SPI-DMA-missing-a-byte-on-transfer/m-p/829802#M50180</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;OK: RFDF cleared simply means there's nothing in the FIFO (ie, everything received without error was DMA'ed).&lt;/P&gt;&lt;P&gt;But RDOF means the SPI RX FIFO (only 1 deep on SPI2) overflowed. Freescale documentation says:&lt;BR /&gt;&lt;EM&gt; Indicates an overflow condition in the RX FIFO. The field is set when the RX FIFO and shift register are full and a transfer is initiated. &lt;BR /&gt;The bit remains set until it is cleared by writing a 1 to it.&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;RDOF could mean one of several things though...&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;The DMA didn't service the transfer fast enough. Could conceivably happen if you set DMA priority too low WRT other activities (but as you point out 8MHz isn't exactly blazing fast; only a byte per &lt;SPAN style="text-decoration: line-through;"&gt;millisecond&lt;/SPAN&gt; microsecond), or more likely if DMA was somehow disabled for a while??&lt;/LI&gt;&lt;LI&gt;Long shot, but possibly too many clocks, or CS de-asserted/re-asserted when unexpected?&lt;/LI&gt;&lt;LI&gt;DMA update wasn't properly sync'd at start of the current block. The DMA module has internal registers for memory locations you see and as I found they can get out of sync. How exactly do you update the buffer pointers and counts? If you do this on a DMA block-completion interrupt without disabling/re-enabling DMA things could get a bit woolly (hope I explained that OK).&lt;/LI&gt;&lt;LI&gt;The overflow bit stays set until cleared, so the byte lost could have been anywhere in the block.&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;Are you certain that the first byte of the block is received AOK? If there was a sync issue seems like the first byte would be the one to get lost.&lt;BR /&gt;Also, its curious that a TX underflow is reported (TFUF=1 above).&lt;BR /&gt;This is curious! Nothing in the errata about SPI, and DMA bugs don't seem relevant to this issue...&lt;BR /&gt;Grasping at straws here, sorry...&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 27 Dec 2018 22:59:39 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/K64-SPI-DMA-missing-a-byte-on-transfer/m-p/829802#M50180</guid>
      <dc:creator>davenadler</dc:creator>
      <dc:date>2018-12-27T22:59:39Z</dc:date>
    </item>
    <item>
      <title>Re: K64 SPI - DMA - missing a byte on transfer</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/K64-SPI-DMA-missing-a-byte-on-transfer/m-p/829803#M50181</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Dave:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Comments on your post.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#1.&amp;nbsp; You got timing wrong - 1 byte every microsec - not millisec.&amp;nbsp; Only channel active so no priority issue.&lt;/P&gt;&lt;P&gt;#2.&amp;nbsp; Two many clock or CS mishap would be identified in SPI status registers - SPI shows all 69 bytes successfully received.&lt;/P&gt;&lt;P&gt;#3.&amp;nbsp; DMA started outside of DMA IRQ.&amp;nbsp; After current data packet is processed the function (see code at top of post) is called setting buffer address and expected byte count.&amp;nbsp; After DMA is set to receive next packet, I toggle my Flow-Control IO pin which tells the other micro to start transmitting the next packet.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#4.&amp;nbsp; RFOF - as stated any of the 67 middle bytes between the first and last were missed by DMA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am positive the first byte is received.&amp;nbsp; The packet has header info which is correct.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TFUF means that a transmit could have occurred during a SPI transfer but no transmit data was supplied to the SPI xmit data register.&amp;nbsp; That is a valid flag because I don't transmit any data - only receive.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I was hoping NXP would identify a SPI or DMA errata on this subject since I would like to understand root-cause.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have implemented a detection and recovery process that works well so I'm not dead in the water with an issue -- just an unanswered question.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Joe&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 27 Dec 2018 23:56:10 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/K64-SPI-DMA-missing-a-byte-on-transfer/m-p/829803#M50181</guid>
      <dc:creator>JHinkle</dc:creator>
      <dc:date>2018-12-27T23:56:10Z</dc:date>
    </item>
  </channel>
</rss>

