LUFA Library  120219
Master SPI Mode Serial USART Peripheral Driver (AVR8)

Functions

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

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);

Define 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]SPIOptionsUSART SPI Options, a mask consisting of one of each of the USART_SPI_SCK_*, USART_SPI_SAMPLE_* and USART_SPI_ORDER_* masks.
[in]BaudRateSPI 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]DataByteByte 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]DataByteByte to send through the USART SPI interface.
Returns:
Response byte from the attached SPI device.
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines