This is the quickstart guide for the SAM SPI driver, with step-by-step instructions on how to configure and use the driver in a selection of use cases.
The use cases contain several code fragments. The code fragments in the steps for setup can be copied into a custom initialization function, while the steps for usage can be copied into, e.g.the main application function.
Basic use case
In this basic use case, the SPI module are configured for:
- Master mode
- Interrupt-based handling
Prerequisites
- System Clock Management (Sysclock)
Setup steps
Example code
Add to application C-file:
void spi_master_init(Spi *p_spi)
{
}
void spi_master_setup_device(Spi *p_spi, struct spi_device *device,
spi_flags_t flags, uint32_t baud_rate, board_spi_select_id_t sel_id)
{
CONFIG_SPI_MASTER_DELAY_BCT);
}
Workflow
- Initialize the SPI in master mode:
void spi_master_init(SPI_EXAMPLE);
- Set up an SPI device:
void spi_master_setup_device(SPI_EXAMPLE, &SPI_DEVICE_EXAMPLE,
- Note
- The returned device descriptor structure must be passed to the driver whenever that device should be used as current slave device.
- Enable SPI module: