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_io_num = gpio::nc() 
 GPIO pin for Master Out Slave In (=spi_d) signal. More...
 
   idfxx::gpio   data0_io_num 
 GPIO pin for spi data0 signal in quad/octal mode. More...
 
};  
 
union { 
 
   idfxx::gpio   miso_io_num = gpio::nc() 
 GPIO pin for Master In Slave Out (=spi_q) signal. More...
 
   idfxx::gpio   data1_io_num 
 GPIO pin for spi data1 signal in quad/octal mode. More...
 
};  
 
idfxx::gpio sclk_io_num = gpio::nc()
 GPIO pin for SPI Clock signal.
 
union { 
 
   idfxx::gpio   quadwp_io_num = gpio::nc() 
 GPIO pin for WP (Write Protect) signal, or gpio::nc() if not used. More...
 
   idfxx::gpio   data2_io_num 
 GPIO pin for spi data2 signal in quad/octal mode, or gpio::nc() if not used. More...
 
};  
 
union { 
 
   idfxx::gpio   quadhd_io_num = gpio::nc() 
 GPIO pin for HD (Hold) signal, or gpio::nc() if not used. More...
 
   idfxx::gpio   data3_io_num 
 GPIO pin for spi data3 signal in quad/octal mode, or gpio::nc() if not used. More...
 
};  
 
idfxx::gpio data4_io_num = gpio::nc()
 GPIO pin for spi data4 signal in octal mode, or gpio::nc() if not used.
 
idfxx::gpio data5_io_num = gpio::nc()
 GPIO pin for spi data5 signal in octal mode, or gpio::nc() if not used.
 
idfxx::gpio data6_io_num = gpio::nc()
 GPIO pin for spi data6 signal in octal mode, or gpio::nc() if not used.
 
idfxx::gpio data7_io_num = gpio::nc()
 GPIO pin for spi data7 signal in octal mode, or gpio::nc() if not used.
 
bool data_io_default_level = false
 Output data IO default level when no transaction.
 
int max_transfer_sz = 0
 Maximum transfer size, in bytes.
 
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_io_num, miso_io_num, and sclk_io_num. All pins default to gpio::nc() (not connected).
Example:
.miso_io_num = gpio_19,
.sclk_io_num = gpio_5,
};
constexpr gpio gpio_18
Definition gpio.hpp:854
constexpr gpio gpio_19
Definition gpio.hpp:857
constexpr gpio gpio_5
Definition gpio.hpp:815
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:113
idfxx::gpio mosi_io_num
GPIO pin for Master Out Slave In (=spi_d) signal.
Definition master.hpp:115

Definition at line 113 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_io_num

idfxx::gpio idfxx::spi::bus_config::data0_io_num

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

Definition at line 116 of file master.hpp.

◆ data1_io_num

idfxx::gpio idfxx::spi::bus_config::data1_io_num

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

Definition at line 120 of file master.hpp.

◆ data2_io_num

idfxx::gpio idfxx::spi::bus_config::data2_io_num

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

Definition at line 125 of file master.hpp.

◆ data3_io_num

idfxx::gpio idfxx::spi::bus_config::data3_io_num

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

Definition at line 129 of file master.hpp.

◆ data4_io_num

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

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

Definition at line 131 of file master.hpp.

◆ data5_io_num

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

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

Definition at line 132 of file master.hpp.

◆ data6_io_num

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

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

Definition at line 133 of file master.hpp.

◆ data7_io_num

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

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

Definition at line 134 of file master.hpp.

◆ data_io_default_level

bool idfxx::spi::bus_config::data_io_default_level = false

Output data IO default level when no transaction.

Definition at line 136 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 140 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 145 of file master.hpp.

◆ intr_levels

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

Interrupt priority levels to accept.

Definition at line 144 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 142 of file master.hpp.

◆ max_transfer_sz

int idfxx::spi::bus_config::max_transfer_sz = 0

Maximum transfer size, in bytes.

Defaults to 4092 if 0 when DMA enabled, or to SOC_SPI_MAXIMUM_BUFFER_SIZE if DMA is disabled.

Definition at line 137 of file master.hpp.

◆ miso_io_num

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

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

Definition at line 119 of file master.hpp.

◆ mosi_io_num

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

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

Definition at line 115 of file master.hpp.

◆ quadhd_io_num

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

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

Definition at line 128 of file master.hpp.

◆ quadwp_io_num

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

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

Definition at line 124 of file master.hpp.

◆ sclk_io_num

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

GPIO pin for SPI Clock signal.

Definition at line 122 of file master.hpp.


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