1
This is a representative diagram, which shows three-pin mode hardware.
2
TXBUF, RXBUF, and SHIFT_REGISTER are user-invisible registers.
3
SPIDAT0 and SPIDAT1 are user-visible, and are physically mapped to the contents of TXBUF.
4
SPISIMO, SPISOMI, SPICLK pin directions depend on the Master or Slave Mode.
TX shift register
SPIBUF
RXBUF
TXBUF
Peripheral Write
Peripheral Read
TXFULL
RXOVRN
INT0
RXOVR INT
16
16
16
RXEMPTY
RX INT ENA
C
lo
c
k
p
o
la
ri
ty
C
lo
c
k
p
h
a
s
e
P
re
s
c
a
le
Charlen
S
P
IS
IM
O
S
P
IS
O
M
I
Peripheral clock
SPI clock generation logic
SPIDAT0/SPIDAT1
TX INT ENA
Kernel FSM
SPICLK
Mode
generation
logic
CLKMOD
INT1
INT_LVL
RX shift register
16
Pin Directions in Slave Mode
ENA
Basic Operation
1501
SPNU563A – March 2018
Copyright © 2018, Texas Instruments Incorporated
Multi-Buffered Serial Peripheral Interface Module (MibSPI) with Parallel Pin
Option (MibSPIP)
Figure 28-1. SPI Functional Logic Diagram
28.2.1.2 Data Flow and Handling for TX and RX
28.2.1.2.1 Data Sequencing when SPIDAT0 or SPIDAT1 is Written
•
If both the TX shift register and TXBUF are empty, then the data is directly copied to the TX shift
register. For devices with DMA, if DMA is enabled, a transmit DMA request (TX_DMA_REQ) is
generated to cause the next word to be fetched. If transmit interrupts are enabled, a transmitter-empty
interrupt is generated.
•
If the TX shift register is already full or is in the process of shifting and if TXBUF is expty then the data
written to SPIDAT0 / SPIDAT1 is copied to TXBUF and TXFULL flag is set to 1 at the same time.
•
When a shift operation is complete, data from the TXBUF (if it is full) is copied into TX shift register
and the TXFULL flag is cleared to 0 to indicate that next data can be fetched. A transmit DMA request
(if enabled) or a transmitter-empty interrupt (if enabled) is generated at the same time.