SPI Overview

Features

  • SPI master and slave components.
  • Simple API with functions to initialize, read and write values of 1, 2 or 4 bytes, or arbitrary length arrays, and shutdown.
  • This component API is function-based and does not require a dedicated thread.
  • Includes data transfer test code.

SPI modes

Mode

CPOL

CPHA

Supported

0

0

0

Yes

1

0

1

Yes

2

1

0

Yes

3

1

1

Yes

Memory requirements

Module

Minimal usage (Bytes)

Full usage (Bytes)

module_spi_master

2012

2640

module_spi_slave

1700

2028

Performance

Maximum SCLK frequencies

Mode

Master SCLK freq

Slave SCLK freq

0

25MHz

862kHz

1

25MHz

25MHz [1]

2

25MHz

862kHz

3

25MHz

25Mhz [1]

[1](1, 2)

Test limited by Master SCLK freq

Bandwidth

SPI master

Mode

Master - 100MIPS thread (R/W)

Master - 50MIPS thread (R/W)

0

15.3Mbps / 4.2Mbps

11.3Mbps / 2.6Mbps

1

TBD

TBD

2

15.3Mbps / 4.2Mbps

11.3Mbps / 2.6Mbps

3

15.3Mbps / 15.6Mbps

11.4Mbps / 11.8Mbps

SPI slave

Mode

Slave - 100MIPS thread (R/W)

Slave - 50MIPS thread (R/W)

0

0.7Mbps / TBD

0.7Mbps / TBD

1

15.9Mbps / 15.2Mbps

4.8Mbps / 4.8Mbps with 6.25MHz SCLK

2

0.7Mbps / TBD

0.7Mbps / TBD

3

15.9Mbps / 15.2Mbps

4.8Mbps / 4.8Mbps with 6.25MHz SCLK

All bandwidth tests were conducted with the maximum supported SCLK frequency (see Maximum SCLK frequencies), unless otherwise stated. Where SCLK frequencies are given, these were found to be the maximum with which the tests could be completed correctly.