| LUFA Library 140302 |

All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Functions
Master SPI Mode Serial USART Peripheral Driver (AVR8)
Master SPI Mode Serial USART Driver - LUFA/Drivers/Peripheral/SerialSPI.h

## Functions
static void | SerialSPI_Disable (void)
static void | SerialSPI_Init (const uint8_t SPIOptions, const uint32_t BaudRate)
static uint8_t | SerialSPI_ReceiveByte (void)
static void | SerialSPI_SendByte (const uint8_t DataByte)
static uint8_t | SerialSPI_TransferByte (const uint8_t DataByte)

## SPI SCK Polarity Configuration Masks
#define | USART_SPI_SCK_LEAD_RISING (0 << UCPOL)
#define | USART_SPI_SCK_LEAD_FALLING (1 << UCPOL)

## SPI Sample Edge Configuration Masks
#define | USART_SPI_SAMPLE_LEADING (0 << UPCHA)
#define | USART_SPI_SAMPLE_TRAILING (1 << UPCHA)

## SPI Data Ordering Configuration Masks
#define | USART_SPI_ORDER_MSB_FIRST (0 << UDORD)
#define | USART_SPI_ORDER_LSB_FIRST (1 << UDORD)

## Detailed Description

# Module Description

On-chip serial USART driver for the 8-bit AVR8 microcontrollers.

Note
  This file should not be included directly. It is automatically included as needed by the SPI Master driver dispatch header located in LUFA/Drivers/Peripheral/SerialSPI.h.

# Example Usage

The following snippet is an example of how this module may be used within a typical application.

// Initialize the Master SPI mode USART driver before first use, with 1Mbit baud
SerialSPI_Init((USART_SPI_SCK_LEAD_RISING | SPI_SAMPLE_LEADING | SPI_ORDER_MSB_FIRST), 1000000);
// Send several bytes, ignoring the returned data
SerialSPI_SendByte(0x01);
SerialSPI_SendByte(0x02);
SerialSPI_SendByte(0x03);
// Receive several bytes, sending a dummy 0x00 byte each time
uint8_t Byte1 = SerialSPI_ReceiveByte();
uint8_t Byte2 = SerialSPI_ReceiveByte();
uint8_t Byte3 = SerialSPI_ReceiveByte();
// Send a byte, and store the received byte from the same transaction
uint8_t ResponseByte = SerialSPI_TransferByte(0xDC);

## Macro Definition Documentation

#define USART_SPI_ORDER_LSB_FIRST (1 << UDORD)

SPI data order mask for SerialSPI_Init(). Indicates that data should be shifted out LSB first.

#define USART_SPI_ORDER_MSB_FIRST (0 << UDORD)

SPI data order mask for SerialSPI_Init(). Indicates that data should be shifted out MSB first.

#define USART_SPI_SAMPLE_LEADING (0 << UPCHA)

SPI data sample mode mask for SerialSPI_Init(). Indicates that the data should sampled on the leading edge.

#define USART_SPI_SAMPLE_TRAILING (1 << UPCHA)

SPI data sample mode mask for SerialSPI_Init(). Indicates that the data should be sampled on the trailing edge.

#define USART_SPI_SCK_LEAD_FALLING (1 << UCPOL)

SPI clock polarity mask for SPI_Init(). Indicates that the SCK should lead on the falling edge.

#define USART_SPI_SCK_LEAD_RISING (0 << UCPOL)

SPI clock polarity mask for SPI_Init(). Indicates that the SCK should lead on the rising edge.

## Function Documentation

static void SerialSPI_Disable | ( | void |  | ) |
| inline static

Turns off the USART driver, disabling and returning used hardware to their default configuration.

static void SerialSPI_Init | ( | const uint8_t | SPIOptions,
|  | const uint32_t | BaudRate
| ) |  |
| inline static

Initialize the USART module in Master SPI mode.

Parameters

  [in] | SPIOptions | USART SPI Options, a mask consisting of one of each of the `USART_SPI_SCK_*`, `USART_SPI_SAMPLE_*` and `USART_SPI_ORDER_*` masks.
  [in] | BaudRate | SPI baud rate, in bits per second.

static uint8_t SerialSPI_ReceiveByte | ( | void |  | ) |
| inline static

Sends a dummy byte through the USART SPI interface, blocking until the transfer is complete. The response byte from the attached SPI device is returned.

Returns
  The response byte from the attached SPI device.

static void SerialSPI_SendByte | ( | const uint8_t | DataByte | ) |
| inline static

Sends a byte through the USART SPI interface, blocking until the transfer is complete. The response byte sent to from the attached SPI device is ignored.

Parameters

  [in] | DataByte | Byte to send through the USART SPI interface.

static uint8_t SerialSPI_TransferByte | ( | const uint8_t | DataByte | ) |
| inline static

Sends and receives a byte through the USART SPI interface, blocking until the transfer is complete.

Parameters

  [in] | DataByte | Byte to send through the USART SPI interface.

Returns
  Response byte from the attached SPI device.