The SPI module includes the following main features:
- Serial clock with programmable frequency, polarity, and phase for each channel
- Wide selection of SPI word lengths, ranging from 4 to 32 bits
- Up to two channels in controller mode, or single channel in receive mode
- Each SPI
controller operates at up to 50 MHz in master mode and 25 MHz in slave mode
- SPI0 and SPI4 support 2 chip selects while SPI1, SPI2, and SPI3 support 1 chip select
- Supports DMA
access (read/write req per channel)
- Controller multichannel mode:
- Full duplex/half duplex
- Transmit-only/receive-only/transmit-and-receive modes
- Flexible input/output (I/O) port controls per channel
- Programmable clock granularity
- Per channel configuration for clock definition, polarity enabling, and word width
- Single interrupt line for multiple interrupt source events
- Enable the addition of a programmable start-bit for MCSPI transfer per channel (start-bit mode)
- Supports start-bit write command
- Programmable timing control between chip select and external clock generation
- Built-in FIFO available for a single channel