MS51
Nov. 28, 2019
Page
435
of 491
Rev 1.00
MS51
32K
SE
RIES
TE
CHNICAL RE
F
EREN
CE MA
N
UAL
Shifting Data[n] in
Shifting Data[n+1] in
SPIF
Data[n]
Data[n]
Read Data Buffer
Shift Register
Shifting Data[n+2] in
SPIOVF
Data[n+2]
Data[n] Receiving Begins
Data[n+1] Receiving Begins
Data[n+2] Receiveing Begins
[1]
When Data[n] is received, the SPIF will be set.
[2]
If SPIF is not clear before Data[n+1] progress done, the SPIOVF will
be set. Data[n] will be kept in read data buffer but Data [n+1] will be lost.
[3]
SPIF and SPIOVF must be cleared by software.
[4]
When Data[n+2] is received, the SPIF will be set again.
[1]
[2]
[3]
[3]
[4]
Figure 6.12-7 SPI Overrun Waveform
6.12.8 SPI Interrupt
Three SPI status flags, SPIF, MODF, and SPIOVF, can generate an SPI event interrupt requests. All
of them locate in SPInSR. SPIF will be set after completion of data transfer with external device or a
new data have been received and copied to SPInDR. MODF becomes set to indicate a low level on
SS
̅̅̅̅̅
causing the Mode Fault state. SPIOVF denotes a receiving overrun error. If SPI interrupt mask is
enabled via setting ESPI and EA is 1, CPU will executes the SPI interrupt service routine once any of
these three flags is set. User needs to check flags to determine what event caused the interrupt.
These three flags are software cleared.
SPIF
DISMODF
MSTR
ESPI
(EIE.6)
SPI Interrupt
SPIOVF
Mode
Fault
Detection
SS
MODF
EA
Figure 6.12-8 SPI Interrupt Request