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.

Can I idle the I/O port while there is an ongoing DMA transaction to/from an i/o port?

1. In other words, will idling the I/O ports (by setting the XPORTI=1 in ICR) disrupt a DMA transaction that uses an i/o port ?

The SPRUFXFA (C5515 DSP system User's Guide) states that setting XPORTI=1 in ICR is used for all CPU I/O memory transactions.

The document indicates MPORTIS applies to DMA, but none of the other bits mention DMA.

2. So does XPORTI apply to the DMA transactions with i/o as well?

  • Hi Dan,

    Danimal said:

    1. In other words, will idling the I/O ports (by setting the XPORTI=1 in ICR) disrupt a DMA transaction that uses an i/o port ?

    The SPRUFXFA (C5515 DSP system User's Guide) states that setting XPORTI=1 in ICR is used for all CPU I/O memory transactions.

    The document indicates MPORTIS applies to DMA, but none of the other bits mention DMA.

    XPORT is the interface between the DSP Core to the IO Memory (peripheral regs). The DMA is independent of the XPORT path to the CPU, so you may idle XPORT and still use the DMA.

    Danimal said:

    2. So does XPORTI apply to the DMA transactions with i/o as well?

    No. DMA transfers to/from I/O memory will continue even with XPORT idled - but you cannot read or write through the I/O Port with the CPU when XPORT is idled.

    Try to set the idle register and then execute the idle command, asm(    idle), to experiment with the idle settings. Please post your findings to the forum for everyone's benefit.

    Regards,
    Mark