
M0A21/M0A23 Series
May 06, 2022
Page
538
of 746
Rev 1.02
M0
A21
/M
0
A
2
3
SE
RIES
TEC
H
NICAL
RE
FEREN
C
E
M
ANUAL
FUNMODE(USPI_CTL [2:0]) to 0x1.
Data Transfer Mode
The USCI controller supports full-duplex SPI transfer and one data channel half-duplex SPI transfer.
Full-duplex SPI transfer
In full-duplex SPI transfer, there are two data pins. One is used for transmitting data and
the other is used for receiving data. Thus, data transmission and data reception can be
performed simultaneously.
SCLKMODE (USPI_PROTCTL[7:6]) defines the transition timing of the data shift output
signal on USCIx_DAT0 pin. The transition may happen at the corresponding edge of SPI
bus clock or active edge of slave select signal. The level of the last data bit of a data word
is held on USCIx_DAT0 pin until the next data word begins with the next corresponding
edge of the serial bus clock.
One data channel half-duplex SPI transfer
In one data channel half-duplex SPI transfer, there is only one data pin for data transfer.
Thus, the data transmission and data reception are at different time interval. The data shift
direction is determined by PORTDIR (USPI_TXDAT[16]). Refer to the register description
for more detail information.
The function of one data channel half-duplex SPI transfer is similar to the full-duplex SPI
protocol. All the transfer data timing is the same as the full-duplex SPI transfer.
Figure 6.14-14 shows the one output data channel and one input data channel half-duplex
transfer diagrams with the external device.
SPI Slave Device
Master Transmit Data
Serial Bus Clock
Slave Select
SPI_MOSI
(USCIx_DAT0)
SPI_CLK
(USCIx_CLK)
SPI_SS
(USCIx_CTL)
SPI Data In
USCI SPI Master
USCI SPI Master
SPI_CLK
SPI_SS
Note:
x = 0, 1
Figure 6.14-14 One Output Data Channel Half-duplex (SPI Master Mode)
SPI Slave Device
Master Receive Data
Serial Bus Clock
Slave Select
SPI_MOSI
(USCIx_DAT0)
SPI_CLK
(USCIx_CLK)
SPI_SS
(USCIx_CTL)
SPI Data Out
USCI SPI Master
USCI SPI Master
SPI_CLK
SPI_SS
Note:
x = 0, 1