The AASRC mode of the PDMA is similar to the X-Y mode in that X specifies the sample width, any Y specifies the number of FIFO samples to transfer per DMA request, but in addition to this, a programmable FIFO list is supplied that allows a single PDMA channel to transfer data to multiple FIFOs. The FIFO list specifies which FIFOS to access, and in which order to access them. Both AASRC 'stream' and 'group' modes are supported in terms of DMA signalling and the FIFO memory map. When in AASRC mode, the entire PDMA operates exclusively in this mode. AASRC channels to not share the same PDMA as do XY and MCAN channels.
The following addition details apply to the PDMA in AASRC mode:
- Main features:
- Up to 16 independent RX channels and 16 TX channels
- Each channel represents a different data stream to either the paired-DMA or a McASP PDMA
- Each channel can be configured to read or write any of the AASRC FIFOs in any order
- Packing support for 1, 2, 3, and 4 byte samples
- Can directly talk to a McASP using any McASP data format
- Packing sample size is fixed for a given channel
- Supports both 'group' and 'stream' AASRC signaling and FIFO memory maps
- There is a single stream/group mode setting for each PDMA channel
- Additional details:
- Each channel has a 'mask' of which DMA requests must fire to activate the channel
- In stream mode, the mask specifies the all the FIFO DMA requests that must fire
- In group mode, the mask specifies the one group DMA request that must fire
- Each channel specifies an ordered list of how FIFOs should be accessed
- All channels use a common list, specifying a range of entry indices within that list
- This allow each channel to use a varying number of list elements
- The order list can be processed multiple times per DMA request
- The number of samples to be transferred per request must match the configured threshold for the DMA request in the AASRC
- All FIFOs are specified by index only
- In the TX ordering table, the indices are assumed to be TX FIFOs
- In the RX ordering table, the indices are assumed to be RX FIFOs
- If a DMA channel is in group mode, the PDMA assumes the indices referenced by that channel represent group mode FIFOs; otherwise, it assumes stream mode FIFOs
- The PDMA has configured base addressed and inter-FIFO spans such that is can always convert from a FIFO index to the proper Stream or Group mode FIFO address