Serial Peripheral Interface (SPI) Module
Data Sheet
MC68HC08GP32A MC68HC08GP16A
208
Serial Peripheral Interface (SPI) Module
MOTOROLA
NOTE:
When CPHA = 0, a MODF occurs if a slave is selected (SS is low) and later
unselected (SS is high) even if no SPSCK is sent to that slave. This happens
because SS low indicates the start of the transmission (MISO driven out with the
value of MSB) for CPHA = 0. When CPHA = 1, a slave can be selected and then
later unselected with no transmission occurring. Therefore, MODF does not occur
since a transmission was never begun.
In a slave SPI (MSTR = 0), MODF generates an SPI receiver/error CPU interrupt
request if the ERRIE bit is set. The MODF bit does not clear the SPE bit or reset
the SPI in any way. Software can abort the SPI transmission by clearing the SPE
bit of the slave.
NOTE:
A high on the SS pin of a slave SPI puts the MISO pin in a high impedance state.
Also, the slave SPI ignores all incoming SPSCK clocks, even if it was already in the
middle of a transmission.
To clear the MODF flag, read the SPSCR with the MODF bit set and then write to
the SPCR register. This entire clearing mechanism must occur with no MODF
condition existing or else the flag is not cleared.
16.7 Interrupts
Four SPI status flags can be enabled to generate CPU interrupt requests. See
Reading the SPI status and control register with SPRF set and then reading the
receive data register clears SPRF. The clearing mechanism for the SPTE flag is
always just a write to the transmit data register.
The SPI transmitter interrupt enable bit (SPTIE) enables the SPTE flag to generate
transmitter CPU interrupt requests, provided that the SPI is enabled (SPE = 1).
The SPI receiver interrupt enable bit (SPRIE) enables SPRF to generate receiver
CPU interrupt requests, regardless of the state of SPE. See Figure 16-12.
Table 16-1. SPI Interrupts
Flag
Request
SPTE
Transmitter empty
SPI transmitter CPU interrupt request
(SPTIE = 1, SPE = 1)
SPRF
Receiver full
SPI receiver CPU interrupt request
(SPRIE = 1)
OVRF
Overflow
SPI receiver/error interrupt request
(ERRIE = 1)
MODF
Mode fault
SPI receiver/error interrupt request
(ERRIE = 1)