30 #include <ControllerBase.h> 103 selectDeviceCallback = callback;
113 virtual bool startDevice(
Device& dev,
PinSet pinSet,
uint8_t chipSelect, uint32_t clockSpeed);
118 virtual void stopDevice(
Device& dev);
124 void configChanged(
Device& dev);
136 #ifdef HSPI_ENABLE_STATS 138 uint32_t requestCount;
141 uint32_t tasksQueued;
142 uint32_t tasksCancelled;
144 void clear()
volatile 153 static volatile Stats stats;
168 bool loopback(
bool enable);
175 virtual void execute(
Request& request);
183 mPins.sck = defPins.
sck;
186 mPins.miso = defPins.
miso;
189 mPins.mosi = defPins.
mosi;
194 #if defined(ARCH_ESP32) 195 static void IRAM_ATTR pre_transfer_callback(spi_transaction_t* t);
196 static void IRAM_ATTR post_transfer_callback(spi_transaction_t* t);
197 #elif defined(ARCH_ESP8266) || defined(ARCH_HOST) 199 #elif defined(ARCH_RP2040) 200 void configure_dma(
volatile void* fifo_addr,
uint8_t dreq_tx,
uint8_t dreq_rx);
202 void interruptHandler();
203 static void staticInterruptHandler();
206 static void updateConfig(
Device& dev);
211 void nextTransaction();
212 void transactionDone();
236 uint32_t addrCmdMask;
static constexpr uint8_t SPI_PIN_DEFAULT
Definition: HardwareSPI/src/include/HSPI/Controller.h:37
PinSet
How SPI hardware pins are connected.
Definition: Common.h:108
Defines an SPI Request Packet.
Definition: HardwareSPI/src/include/HSPI/Request.h:57
SPI pin connections.
Definition: HardwareSPI/src/include/HSPI/Controller.h:42
virtual ~Controller()
Definition: HardwareSPI/src/include/HSPI/Controller.h:74
static constexpr uint8_t SPI_PIN_NONE
Definition: HardwareSPI/src/include/HSPI/Controller.h:36
void assignDefaultPins(const SpiPins &defPins)
Assign any default pins.
Definition: HardwareSPI/src/include/HSPI/Controller.h:180
SpiBus
Identifies bus selection.
Definition: Esp32/spi_arch.h:23
uint8_t sck
Definition: HardwareSPI/src/include/HSPI/Controller.h:43
SpiBus getBusId() const
Get the active bus identifier.
Definition: HardwareSPI/src/include/HSPI/Controller.h:131
Controller(SpiBus id, SpiPins pins)
Definition: HardwareSPI/src/include/HSPI/Controller.h:70
Manage a set of bit values using enumeration.
Definition: BitSet.h:44
uint8_t mosi
Definition: HardwareSPI/src/include/HSPI/Controller.h:45
Controller(SpiBus id=SpiBus::DEFAULT)
Definition: HardwareSPI/src/include/HSPI/Controller.h:66
uint8_t miso
Definition: HardwareSPI/src/include/HSPI/Controller.h:44
void onSelectDevice(SelectDevice callback)
Set interrupt callback to use for manual CS control (PinSet::manual) or if CS pin is multiplexed...
Definition: HardwareSPI/src/include/HSPI/Controller.h:101
friend Device
Definition: HardwareSPI/src/include/HSPI/Controller.h:173
Manages access to SPI hardware.
Definition: HardwareSPI/src/include/HSPI/Controller.h:51
IoMode
Mode of data transfer.
Definition: Common.h:49
PinSet getActivePinSet() const
Definition: HardwareSPI/src/include/HSPI/Controller.h:156
void(*)(uint8_t chipSelect, bool active) SelectDevice
Interrupt callback for custom Controllers.
Definition: HardwareSPI/src/include/HSPI/Controller.h:64
Manages a specific SPI device instance attached to a controller.
Definition: Libraries/HardwareSPI/src/include/HSPI/Device.h:44