I am using a C6726B DSP chip in an audio application. I use the McASP
peripheral (in slave mode) to receive 2 8-slot TDM streams on 2
serializer pins.
The audio sample rate is 48 KHz, which generates DMA events every
2.604 uS to the hi-priority dMAX channel. The dMAX engine is
currently depositing data into a 3D ping-pong buffer in Internal RAM.
The dMAX engine is clocked at 125 MHz.
I am looking into the feasibility of changing the input architecture
so that the dMAX engine deposits audio samples into a FIFO that resides
in External RAM (SDRAM). The SDRAM uses CL=2, and clocks at 125 MHz.
My questions at the moment are:
1. What percentage of dMAX capacity will be consumed by this TDM stream?
Your dMAX performance spreadsheet does not provide a calculation
scenario for this configuration.
2. If the hi-priority dMAX channel is using a FIFO for receiving audio
samples from McASP (a FIFO write), can I use the low-priority dMAX
channel to transfer data from that FIFO into Internal RAM (FIFO read)?
I.e. can the hi-priority FIFO channel and the low-priority FIFO channel
share the same FIFO descriptor, without corrupting the descriptor's
contents? The DMA request events would be asynchronous to each other.
3. If the hi-priority dMAX channel is set for a quantum size of 4
elements, and there are 2 McASP serializers to read for each DMA event,
then are other hi-priority DMA transfers locked out during the period
where the 2 McASP serializers are being read by dMAX?
4. If the hi-priority dMAX channel is set for a quantum size of 1, and
McASP generates a DMA request event (with 2 serializers to read), what
will dMAX do in that case - will it only read one of the 2 serializers
in response to a TDM slot DMA event?
5. Would a hi-priority dMAX 'quantum in progress' lock out the low-
priority dMAX engine from reading that same FIFO during the period
where the hi-priority dMAX engine is reading data from the 2 McASP
serializers?