Microchip® Advanced Software Framework

megarf_spi/spi_master.h File Reference

SPI master driver definition for megaRF.

Copyright (c) 2013-2018 Microchip Technology Inc. and its subsidiaries.

#include "compiler.h"
#include "status_codes.h"
#include "ioport.h"
#include "spi_megarf.h"
#include "conf_spi_master.h"

Data Structures

struct  spi_device
 

Spi Master Management Configuration

#define CONFIG_SPI_MASTER_DUMMY   0xFF
 
#define SPI_CPHA   (1 << 0)
 Clock phase. More...
 
#define SPI_CPOL   (1 << 1)
 Clock polarity. More...
 
#define SPI_MODE_0   0
 SPI mode 0. More...
 
#define SPI_MODE_1   (SPI_CPHA)
 SPI mode 1. More...
 
#define SPI_MODE_2   (SPI_CPOL)
 SPI mode 2. More...
 
#define SPI_MODE_3   (SPI_CPOL | SPI_CPHA)
 SPI mode 3. More...
 
typedef uint8_t spi_flags_t
 
typedef uint32_t board_spi_select_id_t
 
void spi_master_init (volatile void *spi)
 Initializes the SPI in master mode. More...
 
void spi_master_setup_device (volatile void *spi, struct spi_device *device, spi_flags_t flags, unsigned long baud_rate, board_spi_select_id_t sel_id)
 Setup a SPI device. More...
 
void spi_select_device (volatile void *spi, struct spi_device *device)
 Select given device on the SPI bus. More...
 
void spi_deselect_device (volatile void *spi, struct spi_device *device)
 Deselect given device on the SPI bus. More...
 
status_code_t spi_write_packet (volatile void *spi, const uint8_t *data, size_t len)
 Send a sequence of bytes to a SPI device. More...
 
status_code_t spi_read_packet (volatile void *spi, uint8_t *data, size_t len)
 Receive a sequence of bytes from a SPI device. More...
 
static void spi_read_single (volatile void *spi, uint8_t *data)
 Receive one byte from a SPI device. More...
 
static __always_inline void spi_write_single (volatile void *spi, uint8_t data)
 Write one byte to a SPI device. More...
 
static bool spi_is_tx_empty (volatile void *spi)
 Checks if all transmissions are complete. More...
 
static bool spi_is_tx_ready (volatile void *spi)
 Checks if all transmissions is ready. More...
 
static bool spi_is_rx_full (volatile void *spi)
 Tests if the SPI contains a received character. More...
 
static bool spi_is_rx_ready (volatile void *spi)
 Checks if all reception is ready. More...