AFIFO
Host
or DMA
controller
McASP
Rx DMA Req.
Tx DMA Req.
Rx DMA Req.
Tx DMA Req.
Data bus
Data bus
Write FIFO
32
32
Read FIFO
32
32
Peripheral configuration bus
Write FIFO Control Register
Write FIFO Status Register
Read FIFO Control Register
Read FIFO Status Register
1119
SPRUH82C – April 2013 – Revised September 2016
Copyright © 2013–2016, Texas Instruments Incorporated
Multichannel Audio Serial Port (McASP)
McASP Audio FIFO (AFIFO)
The AFIFO contains two FIFOs: one Read FIFO (RFIFO), and one Write FIFO (WFIFO). To ensure
backward compatibility with existing software, both the Read and Write FIFOs are disabled by default. See
for a high-level block diagram of the AFIFO.
The AFIFO may be enabled/disabled and configured via the WFIFOCTL and RFIFOCTL registers. Note
that if the Read or Write FIFO is to be enabled, it must be enabled prior to initializing the receive/transmit
section of the McASP (see
for details).
Figure 24-28. McASP Audio FIFO (AFIFO) Block Diagram
AFIFO Data Transmission
When the Write FIFO is disabled, transmit DMA requests pass through directly from the McASP to the
host/DMA controller. Whether the WFIFO is enabled or disabled, the McASP generates transmit DMA
requests as needed; the AFIFO is “invisible” to the McASP.
When the Write FIFO is enabled, transmit DMA requests from the McASP are sent to the AFIFO, which in
turn generates transmit DMA requests to the host/DMA controller.
If the Write FIFO is enabled, upon a transmit DMA request from the McASP, the WFIFO writes
WNUMDMA
32-bit words to the McASP if and when there are at least
WNUMDMA
words in the Write
FIFO. If there are not, the WFIFO waits until this condition has been satisfied. At that point, it writes
WNUMDMA
words to the McASP. (See description for WFIFOCTL.WNUMDMA in
.)
If the host CPU writes to the Write FIFO, independent of a transmit DMA request, the WFIFO will accept
host writes until full. After this point, excess data will be discarded.
Note that when the WFIFO is first enabled, it will immediately issue a transmit DMA request to the host.
This is because it begins in an empty state, and is therefore ready to accept data.