33.6.2.1 Initialization
The following registers are enable-protected, meaning that they can only be written when the SPI is disabled (CTRL.ENABLE = 0):
- Control A register (CTRLA), except Enable (CTRLA.ENABLE) and Software Reset (CTRLA.SWRST)
- Control B register (CTRLB), except Receiver Enable (CTRLB.RXEN)
- Baud register (BAUD)
- Address register (ADDR)
When the SPI is enabled or is being enabled (CTRLA.ENABLE = 1), any writing to these registers is discarded.
When the SPI is being disabled, writing to these registers is completed after the disabling.
Enable protection is denoted by the Enable-Protection property in the register description.
Initialize the SPI by following these steps:
- Select SPI mode in host/client operation in the Operating Mode bit group in the CTRLA register (CTRLA.MODE = 0x2 or 0x3).
- Select Transfer mode for the Clock Polarity bit and the Clock Phase bit in the CTRLA register (CTRLA.CPOL and CTRLA.CPHA) if desired.
- Select the Frame Format value in the CTRLA register (CTRLA.FORM).
- Configure the Data In Pinout field in the Control A register (CTRLA.DIPO) for SERCOM pads of the receiver.
- Configure the Data Out Pinout bit group in the Control A register (CTRLA.DOPO) for SERCOM pads of the transmitter.
- Select the Character Size value in the CTRLB register (CTRLB.CHSIZE).
- Write the Data Order bit in the CTRLA register (CTRLA.DORD) for data direction.
- If the SPI is used in Host mode:
- Select the desired baud rate by writing to the Baud register (BAUD).
- If Hardware SS control is required, write ‘
1
’ to the Host SPI Select Enable bit in the CTRLB register (CTRLB.MSSEN).
- Enable the receiver by writing the Receiver Enable bit in the CTRLB register (CTRLB.RXEN = 1).