The serial peripheral interface (SPI) is a
high-speed synchronous serial input and output (I/O) port that allows a serial bit
stream of programmed length (1 to 16 bits) to be shifted into and out of the device
at a programmed bit-transfer rate. The SPI is normally used for communications
between the MCU controller and external peripherals or another controller. Typical
applications include external I/O or peripheral expansion through devices such as
shift registers, display drivers, and analog-to-digital converters (ADCs).
Multidevice communications are supported by the controller or peripheral
operation of the SPI. The port supports a 16-level, receive and transmit FIFO for
reducing CPU servicing overhead.
The SPI module features include:
- SPIPOCI: SPI
peripheral-output/controller-input pin
- SPIPICO: SPI
peripheral-input/controller-output pin
- SPIPTE: SPI peripheral transmit-enable
pin
- SPICLK: SPI serial-clock
pin
- Two operational modes: Controller
and Peripheral
- Baud rate: 125 different
programmable rates. The maximum baud rate that can be employed is limited by
the maximum speed of the I/O buffers used on the SPI pins.
- Data word length: 1 to 16
data bits
- Four clocking schemes
(controlled by clock polarity and clock phase bits) include:
- Falling edge without
phase delay: SPICLK active-high. SPI transmits data on the falling
edge of the SPICLK signal and receives data on the rising edge of
the SPICLK signal.
- Falling edge with
phase delay: SPICLK active-high. SPI transmits data one half-cycle
ahead of the falling edge of the SPICLK signal and receives data on
the falling edge of the SPICLK signal.
- Rising edge without
phase delay: SPICLK inactive-low. SPI transmits data on the rising
edge of the SPICLK signal and receives data on the falling edge of
the SPICLK signal.
- Rising edge with
phase delay: SPICLK inactive-low. SPI transmits data one half-cycle
ahead of the rising edge of the SPICLK signal and receives data on
the rising edge of the SPICLK signal.
- Simultaneous receive and
transmit operation (transmit function can be disabled in software)
- Transmitter and receiver
operations are accomplished through either interrupt-driven or polled
algorithm
- 16-level transmit/receive
FIFO
- RTDMA support
- High-speed mode
- Delayed transmit control
- 3-wire SPI mode
- SPIPTE inversion for digital audio interface
receive mode on devices with two SPI modules
Figure 6-85 shows the SPI
CPU interfaces.