Technical Data
MC68HC11E Family
—
Rev. 4
172
Serial Peripheral Interface (SPI)
MOTOROLA
Serial Peripheral Interface (SPI)
A write collision error occurs if the SPDR is written while a transfer is in
progress. Because the SPDR is not double buffered in the transmit
direction, writes to SPDR cause data to be written directly into the SPI
shift register. Because this write corrupts any transfer in progress, a
write collision error is generated. The transfer continues undisturbed,
and the write data that caused the error is not written to the shifter.
A write collision is normally a slave error because a slave has no control
over when a master initiates a transfer. A master knows when a transfer
is in progress, so there is no reason for a master to generate a
write-collision error, although the SPI logic can detect write collisions in
both master and slave devices.
The SPI configuration determines the characteristics of a transfer in
progress. For a master, a transfer begins when data is written to SPDR
and ends when SPIF is set. For a slave with CPHA equal to 0, a transfer
starts when SS goes low and ends when SS returns high. In this case,
SPIF is set at the middle of the eighth SCK cycle when data is
transferred from the shifter to the parallel data register, but the transfer
is still in progress until SS goes high. For a slave with CPHA equal to 1,
transfer begins when the SCK line goes to its active level, which is the
edge at the beginning of the first SCK cycle. The transfer ends in a slave
in which CPHA equals 1 when SPIF is set.
8.8 SPI Registers
The three SPI registers are:
Serial peripheral control register (SPCR)
Serial peripheral status register (SPSR)
Serial peripheral data register (SPDR)
These registers provide control, status, and data storage functions.