This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

OMAP-L138 EMIFA Timing Diagram for DMA Transactions

Dear TI,

I need help on the EMIFA Timing when I have a DMA Transaction. I have attached an analyzer shot where the following are the symbols:

DO = Interrupt to the DSP

D1 = Chip Select

D2 = Write Strobe

D3 = Read Strobe (output enable)

You can see that before the interrupt that there is always a chipselect for each read/write transaction.   During a DMA read transaction (the interrupt launches a DMA routine) the chipselect is held active during a sequence.   However, we have another DMA transaction to write data out (image not attached, since I forgot to save it) and during that there is a chip select pulse for each write (e.g. chip select is not held active for contiguous write enable).  I have dug through the 1800 spruh77 and found no reference that this should occur.  You can see form our config below there should be at least on turnaround cycle but yet on the DMA read we are seeing zero. 

 

My guess this is 100% expected..but where in the documentation does it say it?

 

void C6748_init_emifa( void )

{

    /* CS2: FPGA */

    AEMIF->A1CR = 0

            | (1 << 26)     /* W_SETUP = 1 */

            | (3 << 20)     /* W_STROBE = 3 */

            | (1 << 17)     /* W_HOLD = 1 */

            | (0 << 13)     /* R_SETUP = 0 */

            | (6 << 7)      /* R_STROBE = 6 */

            | (0 << 4)      /* R_HOLD = 0 */

            | (0 << 2)      /* TA = 0 (1 cycle turn-around) */

            | (1 << 0)      /* ASIZE = 1 (16-bit device) */

            ;

  • Can you post the EDMA parameter sets for the reads and writes in question?  My explanation given what I've heard so far would come down to EDMA command optimization.  In other words, the way you've programmed the EDMA will have an effect on the number of transfer requests that are sent to the EMIF.  I think that ultimately if there is a "gap" between the EDMA requests then you will see the chip select de-assert.  In the case of an "optimized" transfer you will not see any such gaps as you might end up with just one big data request to the EMIF.  I might be able to confirm if I see your exact parameter sets.