Skip to content

File syn_spi_dev.h

FileList > drivers > syn_spi_dev.h

Go to the source code of this file

SPI device register helpers — thin layer over port SPI. More...

  • #include "../common/syn_defs.h"
  • #include "../port/syn_port_spi.h"
  • #include <stddef.h>
  • #include <stdint.h>
  • #include <string.h>

Classes

Type Name
struct SYN_SPIDev
SPI device descriptor — bus, CS, read-bit convention.

Public Static Functions

Type Name
void syn_spi_dev_init (SYN_SPIDev * dev, uint8_t bus, uint8_t cs, uint8_t read_bit)
Initialize an SPI device descriptor.
uint8_t syn_spi_dev_read8 (const SYN_SPIDev * dev, uint8_t reg)
Read a single 8-bit register.
SYN_Status syn_spi_dev_read_burst (const SYN_SPIDev * dev, uint8_t reg, uint8_t * buf, size_t len)
Burst-read multiple registers.
SYN_Status syn_spi_dev_write8 (const SYN_SPIDev * dev, uint8_t reg, uint8_t val)
Write a single 8-bit register.
SYN_Status syn_spi_dev_write_burst (const SYN_SPIDev * dev, uint8_t reg, const uint8_t * data, size_t len)
Burst-write multiple registers.

Detailed Description

Provides register-level access for SPI devices. Handles CS assertion, register address framing, and read/write bit.

** **

SYN_SPIDev mpu;
syn_spi_dev_init(&mpu, 0, 0, 0x80);  // bus 0, CS 0, read bit = 0x80

uint8_t who = syn_spi_dev_read8(&mpu, 0x75);  // WHO_AM_I
syn_spi_dev_write8(&mpu, 0x6B, 0x00);         // wake up

Public Static Functions Documentation

function syn_spi_dev_init

Initialize an SPI device descriptor.

static inline void syn_spi_dev_init (
    SYN_SPIDev * dev,
    uint8_t bus,
    uint8_t cs,
    uint8_t read_bit
) 

Parameters:

  • dev Device instance.
  • bus SPI bus number.
  • cs Chip-select index.
  • read_bit Bit OR'd into register address for reads.

function syn_spi_dev_read8

Read a single 8-bit register.

static inline uint8_t syn_spi_dev_read8 (
    const SYN_SPIDev * dev,
    uint8_t reg
) 

Parameters:

  • dev SPI device.
  • reg Register address.

Returns:

Register value.


function syn_spi_dev_read_burst

Burst-read multiple registers.

static inline SYN_Status syn_spi_dev_read_burst (
    const SYN_SPIDev * dev,
    uint8_t reg,
    uint8_t * buf,
    size_t len
) 

Parameters:

  • dev SPI device.
  • reg Starting register address.
  • buf Buffer to read into.
  • len Number of bytes to read.

Returns:

SYN_OK on success.


function syn_spi_dev_write8

Write a single 8-bit register.

static inline SYN_Status syn_spi_dev_write8 (
    const SYN_SPIDev * dev,
    uint8_t reg,
    uint8_t val
) 

Parameters:

  • dev SPI device.
  • reg Register address.
  • val Value to write.

Returns:

SYN_OK on success.


function syn_spi_dev_write_burst

Burst-write multiple registers.

static inline SYN_Status syn_spi_dev_write_burst (
    const SYN_SPIDev * dev,
    uint8_t reg,
    const uint8_t * data,
    size_t len
) 

Parameters:

  • dev SPI device.
  • reg Starting register address.
  • data Data to write.
  • len Number of bytes.

Returns:

SYN_OK on success.



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