Motorola MC68HC908MR32 用户手册

下载
页码 388
Serial Peripheral Interface Module (SPI)
Error Conditions
MC68HC908MR16/MC68HC908MR32 — Rev. 4.0
Advance Information
 
MOTOROLA
Serial Peripheral Interface Module (SPI)
 261
MODF generates a receiver/error CPU interrupt request if the error 
interrupt enable bit (ERRIE) is also set. The SPRF, MODF, and OVRF 
interrupts share the same CPU interrupt vector. MODF and OVRF can 
generate a receiver/error CPU interrupt request. See 
. It is 
not possible to enable MODF or OVRF individually to generate a 
receiver/error CPU interrupt request. However, leaving MODFEN low 
prevents MODF from being set.
In a master SPI with the mode fault enable bit (MODFEN) set, the mode 
fault flag (MODF) is set if SS goes to logic 0. A mode fault in a master 
SPI causes these events to occur:
If ERRIE = 1, the SPI generates an SPI receiver/error CPU 
interrupt request.
The SPE bit is cleared.
The SPTE bit is set.
The SPI state counter is cleared.
The data direction register of the shared I/O port regains control of 
port drivers.
NOTE:
To prevent bus contention with another master SPI after a mode fault 
error, clear all SPI bits of the data direction register of the shared I/O port 
before enabling the SPI.
When configured as a slave (SPMSTR = 0), the MODF flag is set if SS 
goes high during a transmission. When CPHA = 0, a transmission begins 
when SS goes low and ends once the incoming SPSCK goes back to its 
idle level following the shift of the eighth data bit. When CPHA = 1, the 
transmission begins when the SPSCK leaves its idle level and SS is 
already low. The transmission continues until the SPSCK returns to its 
idle level following the shift of the last data bit. See 
NOTE:
Setting the MODF flag does not clear the SPMSTR bit. Reading 
SPMSTR when MODF = 1 will indicate a mode fault error occurred in 
either master mode or slave mode.
When CPHA = 0, a MODF occurs if a slave is selected (SS is at logic 0) 
and later unselected (SS is at logic 1) even if no SPSCK is sent to that 
slave. This happens because SS at logic 0 indicates the start of the 
transmission (MISO driven out with the value of MSB) for CPHA = 0.