36.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 will be discarded.
When the SPI is being disabled, writing to these registers will be 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 CTRLB register (CTRLB.MSSEN).
- Enable the receiver by writing the Receiver Enable bit in the CTRLB register (CTRLB.RXEN=1).