Paparazzi UAS  v5.8.2_stable-0-g6260b7c
Paparazzi is a free software Unmanned Aircraft System.
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
spi.h File Reference

Architecture independent SPI (Serial Peripheral Interface) API. More...

#include "std.h"
#include "mcu_periph/spi_arch.h"
+ Include dependency graph for spi.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  spi_transaction
 SPI transaction structure. More...
struct  spi_periph
 SPI peripheral structure. More...


 SPI transaction queue length. More...
#define SPI_SLAVE0   0
#define SPI_SLAVE1   1
#define SPI_SLAVE2   2
#define SPI_SLAVE3   3
#define SPI_SLAVE4   4
#define SPI_SLAVE5   5


typedef void(* SPICallback )(struct spi_transaction *trans)
 SPI Callback function. More...


enum  SPIMode { SPIMaster, SPISlave }
enum  SPISlaveSelect { SPISelectUnselect, SPISelect, SPIUnselect, SPINoSelect }
 SPI slave selection behavior options. More...
enum  SPIClockPhase { SPICphaEdge1, SPICphaEdge2 }
 SPI CPHA (clock phase) options. More...
enum  SPIClockPolarity { SPICpolIdleLow, SPICpolIdleHigh }
 SPI CPOL (clock polarity) options. More...
enum  SPIDataSizeSelect { SPIDss8bit, SPIDss16bit }
 SPI data word size of transfer. More...
enum  SPITransactionStatus {
  SPITransPending, SPITransRunning, SPITransSuccess, SPITransFailed,
 SPI transaction status. More...
enum  SPIStatus { SPIIdle, SPIRunning }
 SPI peripheral status. More...
enum  SPIBitOrder { SPIMSBFirst, SPILSBFirst }
enum  SPIClockDiv {
  SPIDiv2, SPIDiv4, SPIDiv8, SPIDiv16,
  SPIDiv32, SPIDiv64, SPIDiv128, SPIDiv256
 Peripheral clock divider. More...


void spi0_init (void)
void spi0_arch_init (void)
 Architecture dependent SPI0 initialization. More...
void spi1_init (void)
void spi1_arch_init (void)
 Architecture dependent SPI1 initialization. More...
void spi2_init (void)
void spi2_arch_init (void)
 Architecture dependent SPI2 initialization. More...
void spi_init (struct spi_periph *p)
 Initialize a spi peripheral. More...
void spi_init_slaves (void)
 Initialize all used slaves and unselect them. More...
bool_t spi_submit (struct spi_periph *p, struct spi_transaction *t)
 Submit a spi transaction. More...
void spi_slave_select (uint8_t slave)
 Select a slave. More...
void spi_slave_unselect (uint8_t slave)
 Unselect a slave. More...
bool_t spi_lock (struct spi_periph *p, uint8_t slave)
 Lock the SPI fifo. More...
bool_t spi_resume (struct spi_periph *p, uint8_t slave)
 Resume the SPI fifo. More...
void spi_slave_init (struct spi_periph *p)
 Initialize a spi peripheral in slave mode. More...
bool_t spi_slave_register (struct spi_periph *p, struct spi_transaction *t)
 Register a spi transaction in slave mode (only one transaction can be registered). More...
bool_t spi_slave_wait (struct spi_periph *p)
 Initialized and wait for the next transaction. More...


struct spi_periph spi0
struct spi_periph spi1
 receive transferred over DMA More...
struct spi_periph spi2
 receive transferred over DMA More...

Detailed Description

Architecture independent SPI (Serial Peripheral Interface) API.

Also see the SPI interface page.

Definition in file spi.h.