47.7.8.6 Multiple Data Mode
Multiple Data mode minimizes the number of accesses by concatenating the data to send/read in one access.
When MCSPI_FMR.TXRDYM > 0, the Transmit FIFO operates in Multiple Data mode.
When MCSPI_FMR.RXRDYM > 0, the Receive FIFO operates in Multiple Data mode.
Multiple data can be read from the Receive FIFO only in Client mode (MCSPI_MR.MSTR=0).
The Transmit FIFO can be loaded with multiple data in the same access by configuring TXRDYM>0 and when MCSPI_MR.PS=0.
In Multiple Data mode, up to two data can be written in one MCSPI_TDR write access. It is also possible to read up to four data in one MCSPI_RDR access if MCSPI_CSRx.BITS is configured to ‘0’ (8-bit data size) and up to two data if MCSPI_CSRx.BITS is configured to a value other than ‘0’ (more than 8-bit data size).
The number of data to write/read is defined by the size of the register access. If the access is a byte-size register access, only one data is written/read. If the access is a halfword size register access, then up to two data are read and only one data is written. Lastly, if the access is a word-size register access, then up to four data are read and up to two data are written.
Written/read data are always right-aligned, as described in MCSPI_RDR (FIFO_MULTI_DATA_8), MCSPI_RDR (FIFO_MULTI_DATA_16) and MCSPI_TDR (FIFO_MULTI_DATA).
As an example, if the Transmit FIFO is empty and there are six data to send, either of the following write accesses may be performed:
- six MCSPI_TDR-byte write accesses
- three MCSPI_TDR-halfword write accesses
With a Receive FIFO containing six data, any of the following read accesses may be performed:
- six MCSPI_RDR-byte read accesses
- three MCSPI_RDR-halfword read accesses
- one MCSPI_RDR-word read access and one MCSPI_RDR-halfword read access
