I'm using CCS V4.2 and CSL interfacing the C6474L with a custom ADC. The ADC consists of 1 ADC connected to McBSP0 and 2 ADCs connected in series to McBSP1. ADC Conversion is controlled with a timer output pin. Read operation is controlled by a second timer interrupt with a specific delay following conversion. Reading the single channel is a fairly simple matter with EDMA. The recieve side Param set is using CSL_EDMA3_CHA_REVT0 and the xmit side is controlled by a Param set using a timer event channel. The single channel only requires a single write (EDMA transfer) to DXR for SPI mode to cause the transfer (recieve).
The two channel side introduces a problem. This channel requires three writes to DXR to retrieve all sample bits. The problem in using EDMA by increasing the number of writes fails to wait for DXR to be empty from previous write. While I could use CSL_EDMA3_CHA_XEVT1 instead of a timer to activate the EDMA channel, I would not have control of when the transfer operation is performed. This approach results in a constant on going xmit.
I have considered linking the timer param set to a XEVT1 param set but it appears EDMA is not set up to work this way (not sure). Another possibility would be to add a Timer ISR and Enable the Param set in the ISR for CSL_EDMA3_CHA_XEVT1 then disable it in a TCC ISR. The down side is incurring the overhead of the ISR as the sample rate is increased.
Another possible approach would be to use multiple param sets that perform single writes with each on separate timer, With some trial and error, I should be able to find a balance with sufficient delay between timers for DXR to become empty.
I have also considered the EDMA3TC RDRATE while increasing the delay for EDMA may solve this problem, it would create more problems for other areas that require EDMA in this application.
Are there any other options or a possible way to use linking?