idfxx 1.0.0
Modern C++23 components for ESP-IDF
Loading...
Searching...
No Matches
idfxx::spi::bus_config Struct Reference

SPI bus configuration. More...

Public Attributes

union { 
 
   idfxx::gpio   mosi = gpio::nc() 
 GPIO pin for Master Out Slave In (=spi_d) signal. More...
 
   idfxx::gpio   data0 
 GPIO pin for spi data0 signal in quad/octal mode. More...
 
};  
 
union { 
 
   idfxx::gpio   miso = gpio::nc() 
 GPIO pin for Master In Slave Out (=spi_q) signal. More...
 
   idfxx::gpio   data1 
 GPIO pin for spi data1 signal in quad/octal mode. More...
 
};  
 
idfxx::gpio sclk = gpio::nc()
 GPIO pin for SPI Clock signal.
 
union { 
 
   idfxx::gpio   quadwp = gpio::nc() 
 GPIO pin for WP (Write Protect) signal, or gpio::nc() if not used. More...
 
   idfxx::gpio   data2 
 GPIO pin for spi data2 signal in quad/octal mode, or gpio::nc() if not used. More...
 
};  
 
union { 
 
   idfxx::gpio   quadhd = gpio::nc() 
 GPIO pin for HD (Hold) signal, or gpio::nc() if not used. More...
 
   idfxx::gpio   data3 
 GPIO pin for spi data3 signal in quad/octal mode, or gpio::nc() if not used. More...
 
};  
 
idfxx::gpio data4 = gpio::nc()
 GPIO pin for spi data4 signal in octal mode, or gpio::nc() if not used.
 
idfxx::gpio data5 = gpio::nc()
 GPIO pin for spi data5 signal in octal mode, or gpio::nc() if not used.
 
idfxx::gpio data6 = gpio::nc()
 GPIO pin for spi data6 signal in octal mode, or gpio::nc() if not used.
 
idfxx::gpio data7 = gpio::nc()
 GPIO pin for spi data7 signal in octal mode, or gpio::nc() if not used.
 
gpio::level data_idle_level = gpio::level::low
 Data pin output level while no transaction is active.
 
size_t max_transfer_sz = 0
 Maximum transfer size, in bytes (DMA only).
 
idfxx::flags< bus_flagsflags = {}
 Abilities of bus to be checked by the driver.
 
std::optional< idfxx::core_idisr_cpu_id = std::nullopt
 Select cpu core to register SPI ISR.
 
idfxx::intr_levels intr_levels = {}
 Interrupt priority levels to accept.
 
idfxx::flags< idfxx::intr_flagintr_flags = {}
 Behavioral interrupt flags.
 

Detailed Description

SPI bus configuration.

Note
For most SPI configurations, you should set mosi, miso, and sclk. All pins default to gpio::nc() (not connected).
Example:
.miso = gpio_19,
.sclk = gpio_5,
};
constexpr gpio gpio_18
Definition gpio.hpp:934
constexpr gpio gpio_19
Definition gpio.hpp:937
constexpr gpio gpio_5
Definition gpio.hpp:895
std::expected< T, std::error_code > result
result type wrapping a value or error code.
Definition error.hpp:120
SPI bus configuration.
Definition master.hpp:207
idfxx::gpio mosi
GPIO pin for Master Out Slave In (=spi_d) signal.
Definition master.hpp:209

Definition at line 207 of file master.hpp.

Member Data Documentation

◆ [union]

union { ... } idfxx::spi::bus_config

◆ [union]

union { ... } idfxx::spi::bus_config

◆ [union]

union { ... } idfxx::spi::bus_config

◆ [union]

union { ... } idfxx::spi::bus_config

◆ data0

idfxx::gpio idfxx::spi::bus_config::data0

GPIO pin for spi data0 signal in quad/octal mode.

Definition at line 210 of file master.hpp.

◆ data1

idfxx::gpio idfxx::spi::bus_config::data1

GPIO pin for spi data1 signal in quad/octal mode.

Definition at line 214 of file master.hpp.

◆ data2

idfxx::gpio idfxx::spi::bus_config::data2

GPIO pin for spi data2 signal in quad/octal mode, or gpio::nc() if not used.

Definition at line 219 of file master.hpp.

◆ data3

idfxx::gpio idfxx::spi::bus_config::data3

GPIO pin for spi data3 signal in quad/octal mode, or gpio::nc() if not used.

Definition at line 223 of file master.hpp.

◆ data4

idfxx::gpio idfxx::spi::bus_config::data4 = gpio::nc()

GPIO pin for spi data4 signal in octal mode, or gpio::nc() if not used.

Definition at line 225 of file master.hpp.

◆ data5

idfxx::gpio idfxx::spi::bus_config::data5 = gpio::nc()

GPIO pin for spi data5 signal in octal mode, or gpio::nc() if not used.

Definition at line 226 of file master.hpp.

◆ data6

idfxx::gpio idfxx::spi::bus_config::data6 = gpio::nc()

GPIO pin for spi data6 signal in octal mode, or gpio::nc() if not used.

Definition at line 227 of file master.hpp.

◆ data7

idfxx::gpio idfxx::spi::bus_config::data7 = gpio::nc()

GPIO pin for spi data7 signal in octal mode, or gpio::nc() if not used.

Definition at line 228 of file master.hpp.

◆ data_idle_level

gpio::level idfxx::spi::bus_config::data_idle_level = gpio::level::low

Data pin output level while no transaction is active.

Definition at line 230 of file master.hpp.

◆ flags

idfxx::flags<bus_flags> idfxx::spi::bus_config::flags = {}

Abilities of bus to be checked by the driver.

Definition at line 236 of file master.hpp.

◆ intr_flags

idfxx::flags<idfxx::intr_flag> idfxx::spi::bus_config::intr_flags = {}

Behavioral interrupt flags.

The intr_flag::edge and intr_flag::disabled flags are ignored by the driver. If intr_flag::iram is set, all callbacks must be placed in IRAM.

Definition at line 241 of file master.hpp.

◆ intr_levels

idfxx::intr_levels idfxx::spi::bus_config::intr_levels = {}

Interrupt priority levels to accept.

Definition at line 240 of file master.hpp.

◆ isr_cpu_id

std::optional<idfxx::core_id> idfxx::spi::bus_config::isr_cpu_id = std::nullopt

Select cpu core to register SPI ISR.

Definition at line 238 of file master.hpp.

◆ max_transfer_sz

size_t idfxx::spi::bus_config::max_transfer_sz = 0

Maximum transfer size, in bytes (DMA only).

A value of 0 selects the 4092-byte default. Larger values allocate additional DMA descriptors (4092 bytes each). Ignored when DMA is disabled; the effective limit is then SOC_SPI_MAXIMUM_BUFFER_SIZE.

Definition at line 231 of file master.hpp.

◆ miso

idfxx::gpio idfxx::spi::bus_config::miso = gpio::nc()

GPIO pin for Master In Slave Out (=spi_q) signal.

Definition at line 213 of file master.hpp.

◆ mosi

idfxx::gpio idfxx::spi::bus_config::mosi = gpio::nc()

GPIO pin for Master Out Slave In (=spi_d) signal.

Definition at line 209 of file master.hpp.

◆ quadhd

idfxx::gpio idfxx::spi::bus_config::quadhd = gpio::nc()

GPIO pin for HD (Hold) signal, or gpio::nc() if not used.

Definition at line 222 of file master.hpp.

◆ quadwp

idfxx::gpio idfxx::spi::bus_config::quadwp = gpio::nc()

GPIO pin for WP (Write Protect) signal, or gpio::nc() if not used.

Definition at line 218 of file master.hpp.

◆ sclk

idfxx::gpio idfxx::spi::bus_config::sclk = gpio::nc()

GPIO pin for SPI Clock signal.

Definition at line 216 of file master.hpp.


The documentation for this struct was generated from the following file: