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.

DMA to GPIO I/O space

Hi again,

Currently I use the C5515. In my application it might be of great benefit to have DMA on the GPIO I/O space in order to have autonomous data transfer between DSP and an external device.

My question is : is there a DSP in the C55x family which can provide DMA to GPIO I/O space, or even better a DSP with:
- either two 2 SPI running at fCLK = 32 MHz with DMA or
- 4 SPI running at fCLK = 16 MHz with DMA
Or what other combination of DSP/peripheral can provide 4 autonomous channels with at least 16 Mbps per channel?

According to an old post from me (http://e2e.ti.com/support/dsp/tms320c5000_power-efficient_dsps/f/109/p/74661/272875.aspx#272875) the problem is that the C5515's DMA cannot access neither GPIO I/O nor SPI I/O space.

Can the C5509 or the C5505 do this?

Thank you very much for your answers.

Andreas

  • Hi Andreas,

    With the previous C55x family (like the C5509a,...) you can use the McBSP as SPI and use the DMA to access it,

    BR,

    HR

  • Yes, I am using the C5506 with three or four channels of DMA feeding a pair of McBSP ports in SPI mode.  One or two channels of DMA are used to read from memory and write to the SPI output.  Two additional channels of DMA are used to read from the SPI input and write to memory.  The only reason I vary the output channels is application specific.  I just want to confirm that I have successfully run two bidirectional SPI ports via DMA.  The output channels are clocked by the Timer peripheral, and the input channels are clocked by the actual word reception of the McBSP ports.  The C5506 is newer than the C5509A, but I think most aspects of the chips' capabilities are similar.

  • Brian, HR,

    Thank you very much for your answers. This is good news for me.:) But I'm still wondering if similar things are possible by GPIO (just in case I'd have to go >18 channels)... Anyone can help me here?

    Andreas

     

  • If the GPIO were a memory mapped peripheral, it would seem possible to program the DMA to write to that fixed address.  However, in the C5506 at least, GPIO is mapped to I/O space, and I do not believe that DMA can access that space.

    I think you would get very poor performance anyway if you tried to design a communication channel based on GPIO controlled by DMA.  It would seem better to use McBSP, I2C, EMIF, or some other peripheral that is designed for high-level communication.