SPIS — Serial peripheral interface slave with EasyDMA

SPI slave (SPIS) is implemented with EasyDMA support for ultra-low power serial communication from an external SPI master. EasyDMA, in conjunction with hardware-based semaphore mechanisms, removes all real-time requirements associated with controlling the SPI slave from a low priority CPU execution context.

Figure 1. SPI slave
SPI slave

The SPIS supports SPI modes 0 through 3. The CONFIG register allows setting CPOL and CPHA appropriately.

Table 1. SPI modes
ModeClock polarityClock phase
 CPOLCPHA
SPI_MODE00 (Active High)0 (Trailing Edge)
SPI_MODE10 (Active High)1 (Leading Edge)
SPI_MODE21 (Active Low)0 (Trailing Edge)
SPI_MODE31 (Active Low)1 (Leading Edge)

Shared resources

The SPI slave shares registers and other resources with other peripherals that have the same ID as the SPI slave. Therefore, you must disable all peripherals that have the same ID as the SPI slave before the SPI slave can be configured and used.

Disabling a peripheral that has the same ID as the SPI slave will not reset any of the registers that are shared with the SPI slave. It is important to configure all relevant SPI slave registers explicitly to secure that it operates correctly.

The Instantiation table in Instantiation shows which peripherals have the same ID as the SPI slave.

EasyDMA

The SPIS implements EasyDMA for accessing RAM without CPU involvement.

The SPIS peripheral implements the following EasyDMA channels.
Table 2. SPIS EasyDMA Channels
ChannelTypeRegister Cluster
TXDREADERTXD
RXDWRITERRXD

For detailed information regarding the use of EasyDMA, see EasyDMA.

If RXD.MAXCNT is larger than TXD.MAXCNT, the remaining transmitted bytes will contain the value defined in the ORC register.

The END event indicates that EasyDMA has finished accessing the buffer in RAM.

SPI slave operation

SPI slave uses two memory pointers, RXD.PTR and TXD.PTR, that point to the RXD buffer (receive buffer) and TXD buffer (transmit buffer) respectively. Since these buffers are located in RAM, which can be accessed by both the SPI slave and the CPU, a hardware based semaphore mechanism is implemented to enable safe sharing.

See SPI transaction when shortcut between END and ACQUIRE is enabled.

Before the CPU can safely update the RXD.PTR and TXD.PTR pointers, it must first acquire the SPI semaphore. The CPU can acquire the semaphore by triggering the ACQUIRE task and then receiving the ACQUIRED event. When the CPU has updated the RXD.PTR and TXD.PTR pointers the CPU must release the semaphore before the SPI slave will be able to acquire it. The CPU releases the semaphore by triggering the RELEASE task. This is illustrated in SPI transaction when shortcut between END and ACQUIRE is enabled. Triggering the RELEASE task when the semaphore is not granted to the CPU will have no effect.

The semaphore mechanism does not, at any time, prevent the CPU from performing read or write access to the RXD.PTR register, the TXD.PTR registers, or the RAM that these pointers are pointing to. The semaphore is only telling when these can be updated by the CPU so that safe sharing is achieved.

The semaphore is by default assigned to the CPU after the SPI slave is enabled. No ACQUIRED event will be generated for this initial semaphore handover. An ACQUIRED event will be generated immediately if the ACQUIRE task is triggered while the semaphore is assigned to the CPU.

The SPI slave will try to acquire the semaphore when CSN goes low. If the SPI slave does not manage to acquire the semaphore at this point, the transaction will be ignored. This means that all incoming data on MOSI will be discarded, and the DEF (default) character will be clocked out on the MISO line throughout the whole transaction. This will also be the case even if the semaphore is released by the CPU during the transaction. In case of a race condition where the CPU and the SPI slave try to acquire the semaphore at the same time, as illustrated in lifeline item 2 in SPI transaction when shortcut between END and ACQUIRE is enabled, the semaphore will be granted to the CPU.

If the SPI slave acquires the semaphore, the transaction will be granted. The incoming data on MOSI will be stored in the RXD buffer and the data in the TXD buffer will be clocked out on MISO.

When a granted transaction is completed and CSN goes high, the SPI slave will automatically release the semaphore and generate the END event.

As long as the semaphore is available, the SPI slave can be granted multiple transactions one after the other. If the CPU is not able to reconfigure the TXD.PTR and RXD.PTR between granted transactions, the same TX data will be clocked out and the RX buffers will be overwritten. To prevent this from happening, the END_ACQUIRE shortcut can be used. With this shortcut enabled, the semaphore will be handed over to the CPU automatically after the granted transaction has completed. This enables the CPU to update the TXPTR and RXPTR between every granted transaction.

If the CPU tries to acquire the semaphore while it is assigned to the SPI slave, an immediate handover will not be granted. However, the semaphore will be handed over to the CPU as soon as the SPI slave has released the semaphore after the granted transaction is completed. If the END_ACQUIRE shortcut is enabled and the CPU has triggered the ACQUIRE task during a granted transaction, only one ACQUIRE request will be served following the END event.

The MAXRX register specifies the maximum number of bytes the SPI slave can receive in one granted transaction. If the SPI slave receives more than MAXRX number of bytes, an OVERFLOW will be indicated in the STATUS register and the incoming bytes will be discarded.

The MAXTX parameter specifies the maximum number of bytes the SPI slave can transmit in one granted transaction. If the SPI slave is forced to transmit more than MAXTX number of bytes, an OVERREAD will be indicated in the STATUS register and the ORC character will be clocked out.

The RXD.AMOUNT and TXD.AMOUNT registers are updated when a granted transaction is completed. The TXD.AMOUNT register indicates how many bytes were read from the TX buffer in the last transaction. This does not include the ORC (over-read) characters. Similarly, the RXD.AMOUNT register indicates how many bytes were written into the RX buffer in the last transaction.

The ENDRX event is generated when the RX buffer has been filled.

Figure 2. SPI transaction when shortcut between END and ACQUIRE is enabled
SPI transaction when shortcut between END and ACQUIRE is enabled

Pin configuration

The CSN, SCK, MOSI, and MISO signals associated with the SPI slave are mapped to physical pins according to the configuration specified in the PSEL.CSN, PSEL.SCK, PSEL.MOSI, and PSEL.MISO registers respectively. If the CONNECT field of any of these registers is set to Disconnected, the associated SPI slave signal will not be connected to any physical pins.

The PSEL.CSN, PSEL.SCK, PSEL.MOSI, and PSEL.MISO registers and their configurations are only used as long as the SPI slave is enabled, and retained only as long as the device is in System ON mode. See POWER — Power supply chapter for more information about power modes. When the peripheral is disabled, the pins will behave as regular GPIOs and use the configuration in their respective OUT bit field and PIN_CNF[n] register. PSEL.CSN, PSEL.SCK, PSEL.MOSI, and PSEL.MISO must only be configured when the SPI slave is disabled.

To secure correct behavior in the SPI slave, the pins used by the SPI slave must be configured in the GPIO peripheral as described in GPIO configuration before enabling peripheral before enabling the SPI slave. This is to secure that the pins used by the SPI slave are driven correctly if the SPI slave itself is temporarily disabled, or if the device temporarily enters System OFF. This configuration must be retained in the GPIO for the selected I/Os as long as the SPI slave is to be recognized by an external SPI master.

The MISO line is set in high impedance as long as the SPI slave is not selected with CSN.

Only one peripheral can be assigned to drive a particular GPIO pin at a time. Failing to do so may result in unpredictable behavior.

Table 3. GPIO configuration before enabling peripheral
SPI signalSPI pinDirectionOutput valueComment
CSNAs specified in PSEL.CSNInputNot applicable 
SCKAs specified in PSEL.SCKInputNot applicable 
MOSIAs specified in PSEL.MOSIInputNot applicable 
MISOAs specified in PSEL.MISOInputNot applicableEmulates that the SPI slave is not selected.

Registers

Table 4. Instances
Base addressPeripheralInstanceDescriptionConfiguration
0x40004000SPISSPIS0

SPI slave

  
Table 5. Register overview
RegisterOffsetDescription
TASKS_ACQUIRE0x024

Acquire SPI semaphore

 
TASKS_RELEASE0x028

Release SPI semaphore, enabling the SPI slave to acquire it

 
EVENTS_END0x104

Granted transaction completed

 
EVENTS_ENDRX0x110

End of RXD buffer reached

 
EVENTS_ACQUIRED0x128

Semaphore acquired

 
SHORTS0x200

Shortcuts between local events and tasks

 
INTENSET0x304

Enable interrupt

 
INTENCLR0x308

Disable interrupt

 
SEMSTAT0x400

Semaphore status register

 
STATUS0x440

Status from last transaction

 
ENABLE0x500

Enable SPI slave

 
PSEL.SCK0x508

Pin select for SCK

 
PSEL.MISO0x50C

Pin select for MISO signal

 
PSEL.MOSI0x510

Pin select for MOSI signal

 
PSEL.CSN0x514

Pin select for CSN signal

 
PSELSCK0x508

Pin select for SCK

Deprecated

PSELMISO0x50C

Pin select for MISO

Deprecated

PSELMOSI0x510

Pin select for MOSI

Deprecated

PSELCSN0x514

Pin select for CSN

Deprecated

RXDPTR0x534

RXD data pointer

Deprecated

MAXRX0x538

Maximum number of bytes in receive buffer

Deprecated

AMOUNTRX0x53C

Number of bytes received in last granted transaction

Deprecated

RXD.PTR0x534

RXD data pointer

 
RXD.MAXCNT0x538

Maximum number of bytes in receive buffer

 
RXD.AMOUNT0x53C

Number of bytes received in last granted transaction

 
RXD.LIST0x540

EasyDMA list type

 
TXDPTR0x544

TXD data pointer

Deprecated

MAXTX0x548

Maximum number of bytes in transmit buffer

Deprecated

AMOUNTTX0x54C

Number of bytes transmitted in last granted transaction

Deprecated

TXD.PTR0x544

TXD data pointer

 
TXD.MAXCNT0x548

Maximum number of bytes in transmit buffer

 
TXD.AMOUNT0x54C

Number of bytes transmitted in last granted transaction

 
TXD.LIST0x550

EasyDMA list type

 
CONFIG0x554

Configuration register

 
DEF0x55C

Default character. Character clocked out in case of an ignored transaction.

 
ORC0x5C0

Over-read character

 

TASKS_ACQUIRE

Address offset: 0x024

Acquire SPI semaphore

Bit number313029282726252423222120191817161514131211109876543210
ID                               A
Reset 0x0000000000000000000000000000000000000000
IDAccessFieldValue IDValueDescription
AW

TASKS_ACQUIRE

  

Acquire SPI semaphore

   

Trigger

1

Trigger task

TASKS_RELEASE

Address offset: 0x028

Release SPI semaphore, enabling the SPI slave to acquire it

Bit number313029282726252423222120191817161514131211109876543210
ID                               A
Reset 0x0000000000000000000000000000000000000000
IDAccessFieldValue IDValueDescription
AW

TASKS_RELEASE

  

Release SPI semaphore, enabling the SPI slave to acquire it

   

Trigger

1

Trigger task

EVENTS_END

Address offset: 0x104

Granted transaction completed

Bit number313029282726252423222120191817161514131211109876543210
ID                               A
Reset 0x0000000000000000000000000000000000000000
IDAccessFieldValue IDValueDescription
ARW

EVENTS_END

  

Granted transaction completed

   

NotGenerated

0

Event not generated

   

Generated

1

Event generated

EVENTS_ENDRX

Address offset: 0x110

End of RXD buffer reached

Bit number313029282726252423222120191817161514131211109876543210
ID                               A
Reset 0x0000000000000000000000000000000000000000
IDAccessFieldValue IDValueDescription
ARW

EVENTS_ENDRX

  

End of RXD buffer reached

   

NotGenerated

0

Event not generated

   

Generated

1

Event generated

EVENTS_ACQUIRED

Address offset: 0x128

Semaphore acquired

Bit number313029282726252423222120191817161514131211109876543210
ID                               A
Reset 0x0000000000000000000000000000000000000000
IDAccessFieldValue IDValueDescription
ARW

EVENTS_ACQUIRED

  

Semaphore acquired

   

NotGenerated

0

Event not generated

   

Generated

1

Event generated

SHORTS

Address offset: 0x200

Shortcuts between local events and tasks

Bit number313029282726252423222120191817161514131211109876543210
ID                             A  
Reset 0x0000000000000000000000000000000000000000
IDAccessFieldValue IDValueDescription
ARW

END_ACQUIRE

  

Shortcut between event END and task ACQUIRE

   

Disabled

0

Disable shortcut

   

Enabled

1

Enable shortcut

INTENSET

Address offset: 0x304

Enable interrupt

Bit number313029282726252423222120191817161514131211109876543210
ID                     C     B  A 
Reset 0x0000000000000000000000000000000000000000
IDAccessFieldValue IDValueDescription
ARW

END

  

Write '1' to enable interrupt for event END

   

Set

1

Enable

   

Disabled

0

Read: Disabled

   

Enabled

1

Read: Enabled

BRW

ENDRX

  

Write '1' to enable interrupt for event ENDRX

   

Set

1

Enable

   

Disabled

0

Read: Disabled

   

Enabled

1

Read: Enabled

CRW

ACQUIRED

  

Write '1' to enable interrupt for event ACQUIRED

   

Set

1

Enable

   

Disabled

0

Read: Disabled

   

Enabled

1

Read: Enabled

INTENCLR

Address offset: 0x308

Disable interrupt

Bit number313029282726252423222120191817161514131211109876543210
ID                     C     B  A 
Reset 0x0000000000000000000000000000000000000000
IDAccessFieldValue IDValueDescription
ARW

END

  

Write '1' to disable interrupt for event END

   

Clear

1

Disable

   

Disabled

0

Read: Disabled

   

Enabled

1

Read: Enabled

BRW

ENDRX

  

Write '1' to disable interrupt for event ENDRX

   

Clear

1

Disable

   

Disabled

0

Read: Disabled

   

Enabled

1

Read: Enabled

CRW

ACQUIRED

  

Write '1' to disable interrupt for event ACQUIRED

   

Clear

1

Disable

   

Disabled

0

Read: Disabled

   

Enabled

1

Read: Enabled

SEMSTAT

Address offset: 0x400

Semaphore status register

Bit number313029282726252423222120191817161514131211109876543210
ID                              AA
Reset 0x0000000100000000000000000000000000000001
IDAccessFieldValue IDValueDescription
AR

SEMSTAT

  

Semaphore status

   

Free

0

Semaphore is free

   

CPU

1

Semaphore is assigned to CPU

   

SPIS

2

Semaphore is assigned to SPI slave

   

CPUPending

3

Semaphore is assigned to SPI but a handover to the CPU is pending

STATUS

Address offset: 0x440

Status from last transaction

Individual bits are cleared by writing a 1 to the bits that shall be cleared

Bit number313029282726252423222120191817161514131211109876543210
ID                              BA
Reset 0x0000000000000000000000000000000000000000
IDAccessFieldValue IDValueDescription
ARW

OVERREAD

  

TX buffer over-read detected, and prevented

   

NotPresent

0

Read: error not present

   

Present

1

Read: error present

   

Clear

1

Write: clear error on writing '1'

BRW

OVERFLOW

  

RX buffer overflow detected, and prevented

   

NotPresent

0

Read: error not present

   

Present

1

Read: error present

   

Clear

1

Write: clear error on writing '1'

ENABLE

Address offset: 0x500

Enable SPI slave

Bit number313029282726252423222120191817161514131211109876543210
ID                            AAAA
Reset 0x0000000000000000000000000000000000000000
IDAccessFieldValue IDValueDescription
ARW

ENABLE

  

Enable or disable SPI slave

   

Disabled

0

Disable SPI slave

   

Enabled

2

Enable SPI slave

PSEL.SCK

Address offset: 0x508

Pin select for SCK

Bit number313029282726252423222120191817161514131211109876543210
IDC                         AAAAA
Reset 0xFFFFFFFF11111111111111111111111111111111
IDAccessFieldValue IDValueDescription
ARW

PIN

 

[0..31]

Pin number

CRW

CONNECT

  

Connection

   

Disconnected

1

Disconnect

   

Connected

0

Connect

PSEL.MISO

Address offset: 0x50C

Pin select for MISO signal

Bit number313029282726252423222120191817161514131211109876543210
IDC                         AAAAA
Reset 0xFFFFFFFF11111111111111111111111111111111
IDAccessFieldValue IDValueDescription
ARW

PIN

 

[0..31]

Pin number

CRW

CONNECT

  

Connection

   

Disconnected

1

Disconnect

   

Connected

0

Connect

PSEL.MOSI

Address offset: 0x510

Pin select for MOSI signal

Bit number313029282726252423222120191817161514131211109876543210
IDC                         AAAAA
Reset 0xFFFFFFFF11111111111111111111111111111111
IDAccessFieldValue IDValueDescription
ARW

PIN

 

[0..31]

Pin number

CRW

CONNECT

  

Connection

   

Disconnected

1

Disconnect

   

Connected

0

Connect

PSEL.CSN

Address offset: 0x514

Pin select for CSN signal

Bit number313029282726252423222120191817161514131211109876543210
IDC                         AAAAA
Reset 0xFFFFFFFF11111111111111111111111111111111
IDAccessFieldValue IDValueDescription
ARW

PIN

 

[0..31]

Pin number

CRW

CONNECT

  

Connection

   

Disconnected

1

Disconnect

   

Connected

0

Connect

PSELSCK ( Deprecated )

Address offset: 0x508

Pin select for SCK

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0xFFFFFFFF11111111111111111111111111111111
IDAccessFieldValue IDValueDescription
ARW

PSELSCK

 

[0..31]

Pin number configuration for SPI SCK signal

   

Disconnected

0xFFFFFFFF

Disconnect

PSELMISO ( Deprecated )

Address offset: 0x50C

Pin select for MISO

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0xFFFFFFFF11111111111111111111111111111111
IDAccessFieldValue IDValueDescription
ARW

PSELMISO

 

[0..31]

Pin number configuration for SPI MISO signal

   

Disconnected

0xFFFFFFFF

Disconnect

PSELMOSI ( Deprecated )

Address offset: 0x510

Pin select for MOSI

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0xFFFFFFFF11111111111111111111111111111111
IDAccessFieldValue IDValueDescription
ARW

PSELMOSI

 

[0..31]

Pin number configuration for SPI MOSI signal

   

Disconnected

0xFFFFFFFF

Disconnect

PSELCSN ( Deprecated )

Address offset: 0x514

Pin select for CSN

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0xFFFFFFFF11111111111111111111111111111111
IDAccessFieldValue IDValueDescription
ARW

PSELCSN

 

[0..31]

Pin number configuration for SPI CSN signal

   

Disconnected

0xFFFFFFFF

Disconnect

RXDPTR ( Deprecated )

Address offset: 0x534

RXD data pointer

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDAccessFieldValue IDValueDescription
ARW

RXDPTR

  

RXD data pointer

See the memory chapter for details about which memories are available for EasyDMA.

MAXRX ( Deprecated )

Address offset: 0x538

Maximum number of bytes in receive buffer

Bit number313029282726252423222120191817161514131211109876543210
ID                  AAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDAccessFieldValue IDValueDescription
ARW

MAXRX

 

[0..0x3FFF]

Maximum number of bytes in receive buffer

AMOUNTRX ( Deprecated )

Address offset: 0x53C

Number of bytes received in last granted transaction

Bit number313029282726252423222120191817161514131211109876543210
ID                  AAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDAccessFieldValue IDValueDescription
AR

AMOUNTRX

 

[0..0x3FFF]

Number of bytes received in the last granted transaction

RXD.PTR

Address offset: 0x534

RXD data pointer

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDAccessFieldValue IDValueDescription
ARW

PTR

  

RXD data pointer

See the memory chapter for details about which memories are available for EasyDMA.

RXD.MAXCNT

Address offset: 0x538

Maximum number of bytes in receive buffer

Bit number313029282726252423222120191817161514131211109876543210
ID                  AAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDAccessFieldValue IDValueDescription
ARW

MAXCNT

 

[0..0x3FFF]

Maximum number of bytes in receive buffer

RXD.AMOUNT

Address offset: 0x53C

Number of bytes received in last granted transaction

Bit number313029282726252423222120191817161514131211109876543210
ID                  AAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDAccessFieldValue IDValueDescription
AR

AMOUNT

 

[0..0x3FFF]

Number of bytes received in the last granted transaction

RXD.LIST

Address offset: 0x540

EasyDMA list type

Bit number313029282726252423222120191817161514131211109876543210
ID                              

A

A

Reset 0x0000000000000000000000000000000000000000
IDAccessFieldValue IDValueDescription
ARW

LIST

  

List type

   

Disabled

0

Disable EasyDMA list

   

ArrayList

1

Use array list

TXDPTR ( Deprecated )

Address offset: 0x544

TXD data pointer

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDAccessFieldValue IDValueDescription
ARW

TXDPTR

  

TXD data pointer

See the memory chapter for details about which memories are available for EasyDMA.

MAXTX ( Deprecated )

Address offset: 0x548

Maximum number of bytes in transmit buffer

Bit number313029282726252423222120191817161514131211109876543210
ID                  AAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDAccessFieldValue IDValueDescription
ARW

MAXTX

 

[0..0x3FFF]

Maximum number of bytes in transmit buffer

AMOUNTTX ( Deprecated )

Address offset: 0x54C

Number of bytes transmitted in last granted transaction

Bit number313029282726252423222120191817161514131211109876543210
ID                  AAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDAccessFieldValue IDValueDescription
AR

AMOUNTTX

 

[0..0x3FFF]

Number of bytes transmitted in last granted transaction

TXD.PTR

Address offset: 0x544

TXD data pointer

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDAccessFieldValue IDValueDescription
ARW

PTR

  

TXD data pointer

See the memory chapter for details about which memories are available for EasyDMA.

TXD.MAXCNT

Address offset: 0x548

Maximum number of bytes in transmit buffer

Bit number313029282726252423222120191817161514131211109876543210
ID                  AAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDAccessFieldValue IDValueDescription
ARW

MAXCNT

 

[0..0x3FFF]

Maximum number of bytes in transmit buffer

TXD.AMOUNT

Address offset: 0x54C

Number of bytes transmitted in last granted transaction

Bit number313029282726252423222120191817161514131211109876543210
ID                  AAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDAccessFieldValue IDValueDescription
AR

AMOUNT

 

[0..0x3FFF]

Number of bytes transmitted in last granted transaction

TXD.LIST

Address offset: 0x550

EasyDMA list type

Bit number313029282726252423222120191817161514131211109876543210
ID                              

A

A

Reset 0x0000000000000000000000000000000000000000
IDAccessFieldValue IDValueDescription
ARW

LIST

  

List type

   

Disabled

0

Disable EasyDMA list

   

ArrayList

1

Use array list

CONFIG

Address offset: 0x554

Configuration register

Bit number313029282726252423222120191817161514131211109876543210
ID                             CBA
Reset 0x0000000000000000000000000000000000000000
IDAccessFieldValue IDValueDescription
ARW

ORDER

  

Bit order

   

MsbFirst

0

Most significant bit shifted out first

   

LsbFirst

1

Least significant bit shifted out first

BRW

CPHA

  

Serial clock (SCK) phase

   

Leading

0

Sample on leading edge of clock, shift serial data on trailing edge

   

Trailing

1

Sample on trailing edge of clock, shift serial data on leading edge

CRW

CPOL

  

Serial clock (SCK) polarity

   

ActiveHigh

0

Active high

   

ActiveLow

1

Active low

DEF

Address offset: 0x55C

Default character. Character clocked out in case of an ignored transaction.

Bit number313029282726252423222120191817161514131211109876543210
ID                        AAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDAccessFieldValue IDValueDescription
ARW

DEF

  

Default character. Character clocked out in case of an ignored transaction.

ORC

Address offset: 0x5C0

Over-read character

Bit number313029282726252423222120191817161514131211109876543210
ID                        AAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDAccessFieldValue IDValueDescription
ARW

ORC

  

Over-read character. Character clocked out after an over-read of the transmit buffer.

Electrical specification

SPIS slave interface electrical specifications

SymbolDescriptionMin.Typ.Max.Units
fSPIS

Bit rates for SPIS1

82Mbps
tSPIS,START

Time from RELEASE task to receive/transmit (CSN active)

......µs

Serial Peripheral Interface Slave (SPIS) timing specifications

SymbolDescriptionMin.Typ.Max.Units
tSPIS,CSCKIN

SCK input period

......ns
tSPIS,RFSCKIN

SCK input rise/fall time

30ns
tSPIS,WHSCKIN

SCK input high time

30ns
tSPIS,WLSCKIN

SCK input low time

30ns
tSPIS,SUCSN

CSN to CLK setup time

......ns
tSPIS,HCSN

CLK to CSN hold time

1000ns
tSPIS,ASA

CSN to MISO driven

......ns
tSPIS,ASO

CSN to MISO valid 3

1000ns
tSPIS,DISSO

CSN to MISO disabled3

68ns
tSPIS,CWH

CSN inactive time

300ns
tSPIS,VSO

CLK edge to MISO valid

19ns
tSPIS,HSO

MISO hold time after CLK edge

184ns
tSPIS,SUSI

MOSI to CLK edge setup time

59ns
tSPIS,HSI

CLK edge to MOSI hold time

20ns
Figure 3. SPIS timing diagram
SPIS timing diagram

Figure 4. Common SPIM and SPIS timing diagram
Common SPIM and SPIS timing diagram

1 High bit rates may require GPIOs to be set as High Drive, see GPIO chapter for more details.
2 The actual maximum data rate depends on the master's CLK to MISO and MOSI setup and hold timings.
3 At 25 pF load, including GPIO capacitance, see GPIO electrical specification.
4 This is to ensure compatibility to SPI masters sampling MISO on the same edge as MOSI is output