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