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.

C6748 Starterware MCASP Rx EDMA Param Set

Other Parts Discussed in Thread: OMAPL138

Greetings,


In the C6748 starterware MCASP example, the initial param set (param 0) for the Rx is set to 1 sample long whereas the initial set for the tx (param 1) is the full buffer length.   The next param set for the rx (param 40) is then set to the full buffer length.  All other param sets are the full buffer length.  When I've played around with this example, I've emperically confirmed the initial rx param set must remain at 1 sample or 1 read FIFO length (when using the fifo).  Any length longer and the program crashes.  However, I cannot find this behavior documented.  Could someone point me to where the mcasp rx param set is documented?


Thanks,

Tobyn

  • Hi Tobyn,

    Thanks for your post.

    Yes, you are correct. The starterware audio application DMA buffer handling is programmed in such a way to work for EDMA ping pong buffer operation.

    The RX paRAM set 0 is initialized to receive the first audio sample in the RX buffer-0 and the paRAM set 0 is linked to linked paRAM set 40.  The paRAM set 40 is linked to paRAM set 41, which is initialized to receive data in RX Buffer 1. The paRAM set 41 is linked back to paRAM set 40 and hence the reception paRAM set is initialized as 0-->40-->41-->40, thereby, the linking does not change as the application executes.

    The EDMA PaRAM set initialization and McASP Tx. and Rx. statemachines are well documented in the below wiki:

    http://processors.wiki.ti.com/index.php/StarterWare_Audio_Application

    Thanks & regards,

    Sivaraj K

    -------------------------------------------------------------------------------------------------------

    Please click the Verify Answer button on this post if it answers your question.

    -------------------------------------------------------------------------------------------------------

  • Why is param set 0 set to transfer only one sample?  It seems to be a limitation in the hardware as the program crashes if set to anything other than 1, but I cannot find this documented in the manual anywhere.


    Thanks,

    Tobyn

  • Hi Tobyn,

    Thanks for your update.

    It is not the hardware limitation instead it is a starterware programming limitation. In C6748, starterware software is provided by TI is programmed in such a way just to give you a preliminary base reference code through which you could enhance/develop the code to suit your own requirement and in general, the starterware package could be used "as-is" to understand the basic McASP audio loopback sample application.

    The same C6748 starterware example code is modified with two buffers (ping, pong) on both tx. and rx. side and accordingly, configure ping pong buffers for 150 stereo samples of 16 or 32 bits/sample. Buffers used in the code are rxbuf_ping, rxbuf_pong, txbuf_ping, txbuf_pong and please check the attched "4784.OMAPL138_StarterWare_McASP_EDMA_PING_PONG.zip" from the below E2E post:

    https://e2e.ti.com/support/dsp/tms320c6000_high_performance_dsps/f/115/p/376334/1325385#pi317286=2

    Thanks & regards,

    Sivaraj K

    -------------------------------------------------------------------------------------------------------

    Please click the Verify Answer button on this post if it answers your question.

    -------------------------------------------------------------------------------------------------------