1117
SPRUH82C – April 2013 – Revised September 2016
Copyright © 2013–2016, Texas Instruments Incorporated
Multichannel Audio Serial Port (McASP)
24.0.21.3.2 Transfers through the DMA Port
CAUTION
To perform internal transfers through the DMA port, clear XBUSEL/RBUSEL bit
to 0 in the respective XFMT/RFMT registers. Failure to do so will result in
software malfunction.
Typically, you will access the McASP XRBUF registers through the DMA port. To access through the DMA
port, simply have the CPU or DMA access the XRBUF through its DMA port location. See your device-
specific data manual for the exact memory address. Through the DMA port, the DMA/CPU can service all
the serializers through a single address. The McASP automatically cycles through the appropriate
serializers.
For transmit operations through the DMA port, the DMA/CPU should write to the same XBUF DMA port
address to service all of the active transmit serializers. In addition, the DMA/CPU should write to the XBUF
for all active transmit serializers in incremental (although not necessarily consecutive) order. For example,
if serializers 0, 4, 5, and 7 are set up as active transmitters, the DMA/CPU should write to the XBUF DMA
port address four times with data for serializers 0, 4, 5, and 7 upon each transmit data ready event. This
exact servicing order must be followed so that data appears in the appropriate serializers.
Similarly, for receive operations through the DMA port, the DMA/CPU should read from the same RBUF
DMA port address to service all of the active receive serializers. In addition, reads from the active receive
serializers through the DMA port return data in incremental (although not necessarily consecutive) order.
For example, if serializers 1, 2, 3, and 6 are set up as active receivers, the DMA/CPU should read from
the RBUF DMA port address four times to obtain data for serializers 1, 2, 3, and 6 in this exact order,
upon each receive data ready event.
When transmitting, the DMA/CPU must write data to each serializer configured as "active" and "transmit"
within each time slot. Failure to do so results in a buffer underrun condition (
Similarly, when receiving, data must be read from each serializer configured as "active" and "receive"
within each time slot. Failure to do results in a buffer overrun condition (
).
To perform internal transfers through the DMA port, clear XBUSEL/RBUSEL bit to 0 in the respective
XFMT/RFMT registers.
24.0.21.3.3 Transfers Through the Peripheral Configuration Bus
CAUTION
The CPU does not support the emulation suspend signal. Therefore, if a data
window is open in the Code Composer Studio™ integrated development
environment to observe the XRBUF locations, the emulation read from the
XRBUF locations causes an undesirable side effect of clearing the RDATA bit
in RSTAT. Furthermore, if you write to the XRBUF through the Code Composer
Studio™ integrated development environment, the emulation write to the
XRBUF locations causes the XDATA bit in XSTAT to be cleared.
To perform internal transfers through the peripheral configuration bus, set
XBUSEL/RBUSEL bit to 1 in the respective XFMT/RFMT registers. Failure to
do so will result in software malfunction.
In this method, the DMA/CPU accesses the XRBUF through the peripheral configuration bus address. The
exact XRBUF address for any particular serializer is determined by adding the offset for that particular
serializer to the base address for the particular McASP (found in the device-specific data manual). XRBUF
for the serializers configured as transmitters is given the name XBUF
n
. For example, the XRBUF
associated with transmit serializer 2 is named XBUF2. Similarly, XRBUF for the serializers configured as
receivers is given the name RBUF
n
.