Hi TI
I have two EDMA transfers setup, both of them are missing data in the transfer. So I think it might be a general configuration that I'm missing or have misunderstood.
EDMA 1)
I have a data block of 32 bytes (array) located in internal memory which is to be moved to a circularbuffer in the external DDR ram. I works very well except that I only get 16 bytes in the last transfer when the PARAM is exhausted and reloads.
PARAM 41 + 42:
ui32Option = 0;
ui32Src = 0x10F0F0B4
ui32Dst = 0x83A9A510
ui32BcntAcnt = 0x04B00020
ui32BcntrldLink = 0x04B04540
ui32DstSrcBidx = 0x00200000
ui32Ccnt = 1
ui32DstSrcCidx = 0
I trigger the PARAM 41 by writing:
regui32EmcrH |= 1 << 9;
regui32EsrH |= 1 << 9;
I have manually triggered the transfers via JTAG, and each block of data is transferred correctly except the last block (only half). The reload from PARAM 42 also work fine.
EDMA 2)
The other EDMA is moving half of the data from the circular buffer to another buffer in DDR and is also manually triggered. ACNT = 19200, BCNT=1 and CCNT = 1. I do get all data transferred sometimes, but often there are missing data at the end.
I'm testing by filling the circularbuffer with '1' (no further updates than that), clearing ('0') the receiving buffer and then trigger the transfer.
What have I missed?