Skip to content

File syn_spi.h

FileList > drivers > syn_spi.h

Go to the source code of this file

Hardware-decoupled SPI driver supporting Master/Slave roles & full-duplex transfers.

  • #include "../common/syn_defs.h"
  • #include "../port/syn_port_spi.h"

Classes

Type Name
struct SYN_SPI
SPI driver handle structure.
struct SYN_SPI_Config
SPI driver instance configuration parameters.

Public Types

Type Name
enum SYN_SPI_Mode
SPI clock phase and polarity mode.
enum SYN_SPI_Role
SPI operational mode role.

Public Functions

Type Name
SYN_Status syn_spi_deinit (SYN_SPI * spi)
De-initialize an SPI instance.
SYN_Status syn_spi_init (SYN_SPI * spi, const SYN_SPI_Config * cfg)
Initialize an SPI instance.
SYN_Status syn_spi_read (SYN_SPI * spi, uint8_t * rx, size_t len)
Read bytes in over SPI (transmits dummy 0xFF bytes).
SYN_Status syn_spi_transfer (SYN_SPI * spi, const uint8_t * tx, uint8_t * rx, size_t len)
Full-duplex simultaneous SPI transmit and receive.
SYN_Status syn_spi_write (SYN_SPI * spi, const uint8_t * tx, size_t len)
Write bytes out over SPI (discards incoming RX bytes).

Public Types Documentation

enum SYN_SPI_Mode

SPI clock phase and polarity mode.

enum SYN_SPI_Mode {
    SYN_SPI_MODE_0 = 0,
    SYN_SPI_MODE_1 = 1,
    SYN_SPI_MODE_2 = 2,
    SYN_SPI_MODE_3 = 3
};


enum SYN_SPI_Role

SPI operational mode role.

enum SYN_SPI_Role {
    SYN_SPI_ROLE_MASTER = 0,
    SYN_SPI_ROLE_SLAVE
};


Public Functions Documentation

function syn_spi_deinit

De-initialize an SPI instance.

SYN_Status syn_spi_deinit (
    SYN_SPI * spi
) 

Parameters:

Returns:

SYN_OK on success.


function syn_spi_init

Initialize an SPI instance.

SYN_Status syn_spi_init (
    SYN_SPI * spi,
    const SYN_SPI_Config * cfg
) 

Parameters:

  • spi Pointer to SYN_SPI handle.
  • cfg Configuration structure.

Returns:

SYN_OK on success.


function syn_spi_read

Read bytes in over SPI (transmits dummy 0xFF bytes).

SYN_Status syn_spi_read (
    SYN_SPI * spi,
    uint8_t * rx,
    size_t len
) 

Parameters:

  • spi Pointer to initialized SPI handle.
  • rx RX destination buffer.
  • len RX byte count.

Returns:

SYN_OK on success.


function syn_spi_transfer

Full-duplex simultaneous SPI transmit and receive.

SYN_Status syn_spi_transfer (
    SYN_SPI * spi,
    const uint8_t * tx,
    uint8_t * rx,
    size_t len
) 

Parameters:

  • spi Pointer to initialized SPI handle.
  • tx TX data buffer (can be NULL, transmits dummy 0xFF).
  • rx RX destination buffer (can be NULL).
  • len Transfer length in bytes.

Returns:

SYN_OK on success.


function syn_spi_write

Write bytes out over SPI (discards incoming RX bytes).

SYN_Status syn_spi_write (
    SYN_SPI * spi,
    const uint8_t * tx,
    size_t len
) 

Parameters:

  • spi Pointer to initialized SPI handle.
  • tx TX data buffer.
  • len TX byte count.

Returns:

SYN_OK on success.



The documentation for this class was generated from the following file src/syntropic/drivers/syn_spi.h