SPRUI30H November 2015 – May 2024 DRA745 , DRA746 , DRA750 , DRA756
To perform internal transfers through the DATA port, clear the XBUSEL/RBUSEL bit to 0b0 in the MCASP_TXFMT/MCASP_RXFMT register, respectively. Failure to do so may result in software malfunction.
McASP1, McASP2, and McASP3, whose data ports are accessible directly via L3_MAIN, do not support FIFO/constant addressing modes. Incrementing transfers must be used instead.
In a typical McASP transfer scenario, the DMA Controller write accesses the XRBUFn transmit buffer through the McASP data port (DATA) on L3_MAIN Interconect for McASP1/2/3 and on L4_PER2 Interconect for McASP4/5/6/7/8 . CPU hosts can access both XRBUFn transmit and receive data buffers on their corresponding DATA port address via DATA port corresponding address. To perform transfers through the DATA port, simply have the DMA Controller write the McASP Tx buffer through Interconect DATA port location. Refer to Section 24.6.6.2.5. Although the transfer is passed through an integrated AFIFO transmit/receive buffer, the host (DMA or CPU) must follow the described below procedure to access the data buffers of each serializer, regardless the AFIFO is enabled or disabled. The AFIFO operation is described in Section 24.6.4.11.
For accesses through the DATA port, the DMA/CPU services all the serializers through accessing only a single address. In addition, as can be seen in Section 24.6.6.2.5, the same physical DATA port address is used regardless of a read or write access is performed. The McASP automatically cycles through the active slot transmitting/receiving serializers, internally generating the appropriate offsets.
DATA port allows the DMA/CPU to automatically access only the data buffers. There is no way for DMA/CPU to access the McASP configuration registers addressing their corresponding McASP DATA port.
For transmit operations through the DATA port, the host must always write to the same transmit buffer DATA port address (which is same than the receive buffer DATA port adress) to service all of the active slot transmitting serializers. Regardless of McASP serializer 0 being configured inactive or active, the user software must always configure the destination address to match the DATA port location of TXBUF buffer (See Section 24.6.6.2.5).
In addition, the DMA/CPU must write the buffers of all transmitting serializers in incremental (although not necessarily consecutive) order. For example, if only serializers 1 and 3 are set up as active transmitters, the DMA/CPU should write to the same transmit buffer DATA port address twice - first data for serializer 1 and second data for serializer 3 upon each transmit data ready event. This exact servicing order must be followed so that data appears in the appropriate serializers.
For write transfers through McASP DATA port it is preferable to use DMA on corresponding Interconect. This is because DMAs initiated traffic gets better advantage of the burst transfers supported by DATA port.
For receive operations through the DATA port, the DMA/CPU must always read from the same receive buffer DATA port address (which is same than the transmit buffer DATA port adress) to service all of the active slot receiving serializers. Regardless of McASP serializer 0 being configured inactive or active, the user software must always configure the DMA/CPU source address to match the DATA port location of RXBUF buffer (See Section 24.6.6.2.5).
In addition, reads from the receive buffer for all active slot receiving serializers through the Rx DATA port return data in incremental (although not necessarily consecutive) order. For example, if serializers 0, 1 and 3 are set up as active receivers, the MPU should read from the same receive buffer DATA port address three times to obtain data for serializers 0,1 and 3 in this exact order, upon each receive data ready event.
To service a serializer for a transmit or receive operation through the McASP DATA port, the initiator always writes (preferably DMA) and reads from the same address (refer to Section 24.6.6.2.5 ), respectively.
See Section 24.6.6.2.5, McASP_DATA Register Summary, for more details about XRBUFn buffer physical address corresponding to the McASP DATA port on:
When transmitting through the DATA port, the DMA/CPU must write data (at the same address) to each serializer configured as active (active slot selected in MCASP_TXTDM) and transmit (Tx enabled in MCASP_XRSRCTLn ) within each time slot. Failure to do so results in a buffer underrun condition (see Section 24.6.4.15.1, Buffer Underrun Error - Transmitter). Similarly, when DMA/CPU receives, data must be read from each serializer configured as active (active slot selected in MCASP_RXTDM ) and receive (Rx enabled in MCASP_XRSRCTLn ) within each time slot. Failure to do results in a buffer overrun condition (see Section 24.6.4.15.2, Buffer Overrun Error - Receiver).