NuMicro® NUC029LEE/NUC029SEE
32-bit Arm
®
Cortex
®
-M0 Microcontroller
Aug, 2018
Page
423
of
497
Rev 1.00
N
U
MICRO
®
N
UC02
9L
E
E
/N
UC029
S
E
E
T
E
CHN
ICA
L R
E
F
E
R
E
NC
E
M
A
NU
A
L
SPIn_SS0
7 6 5 4 3 2 1 0
SPIn_CLK
SPIn_MOSI0
SPIn_MISO0
DUAL_IO_EN
6 4 2 0 6 4 2 0
7 5 3 1 7 5 3 1
6 4 2 0 6 4 2 0
7 5 3 1 7 5 3 1
DUAL_IO_DIR
Master output
Slave input
Master input
Slave output
Output
Output
Figure 6.15-8 Bit Sequence of Dual Output Mode
SPIn_SS0
7 6 5 4 3 2 1 0
SPIn_CLK
SPIn_MOSI0
SPIn_MISO0
DUAL_IO_EN
6 4 2 0 6 4 2 0
7 5 3 1 7 5 3 1
6 4 2 0 6 4 2 0
7 5 3 1 7 5 3 1
DUAL_IO_DIR
Master output
Slave input
Master input
Slave output
Input
Input
Figure 6.15-9 Bit Sequence of Dual Input Mode
6.15.5.8 FIFO Mode
The SPI controller supports FIFO mode when the FIFO bit in SPI_CNTRL[21] is set as 1. The SPI
controllers equip with eight 32-bit wide transmit and receive FIFO buffers.
The transmit FIFO buffer is an 8-layer depth, 32-bit wide, first-in, first-out register buffer. Data can
be written to the transmit FIFO buffer through software by writing the SPI_TX0 register. The data
stored in the transmit FIFO buffer will be read and sent out by the transmission control logic. If the
8-layer transmit FIFO buffer is full, the TX_FULL bit will be set to 1. When the SPI transmission
logic unit draws out the last datum of the transmit FIFO buffer, so that the 8-layer transmit FIFO
buffer is empty, the TX_EMPTY bit will be set to 1. Notice that the TX_EMPTY flag is set to 1
while the last transaction is still in progress. In Master mode, both the GO_BUSY bit and
TX_EMPTY bit should be checked by software to make sure whether the SPI is in idle or not.