59template <
typename Derived>
93 bool WriteBytes(
const uint8_t* data, std::size_t len)
noexcept {
94 return static_cast<Derived*
>(
this)->
WriteBytes(data, len);
103 static_cast<Derived*
>(
this)->
GpioSet(pin, signal);
CRTP transport interface for SPI writes and GPIO control.
Definition isf15acp4_spi_interface.hpp:60
bool EnsureInitialized() noexcept
Ensure SPI bus and GPIO pins are configured.
Definition isf15acp4_spi_interface.hpp:66
void EndTransaction() noexcept
End the active SPI transaction (typically deassert CS).
Definition isf15acp4_spi_interface.hpp:85
void GpioSetInactive(CtrlPin pin) noexcept
Definition isf15acp4_spi_interface.hpp:120
SpiInterface(const SpiInterface &)=delete
SpiInterface & operator=(const SpiInterface &)=delete
bool BeginCommand() noexcept
Begin an SPI transaction with D/C in command mode.
Definition isf15acp4_spi_interface.hpp:74
void GpioSetActive(CtrlPin pin) noexcept
Definition isf15acp4_spi_interface.hpp:119
bool GpioRead(CtrlPin pin) noexcept
Read a digital input (typically the momentary switch).
Definition isf15acp4_spi_interface.hpp:111
void DelayUs(uint32_t us) noexcept
Blocking microsecond delay.
Definition isf15acp4_spi_interface.hpp:117
bool WriteBytes(const uint8_t *data, std::size_t len) noexcept
Write bytes on MOSI while a transaction is active.
Definition isf15acp4_spi_interface.hpp:93
bool BeginData() noexcept
Begin an SPI transaction with D/C in data mode.
Definition isf15acp4_spi_interface.hpp:80
void GpioSet(CtrlPin pin, GpioSignal signal) noexcept
Drive a control pin to an abstract signal level.
Definition isf15acp4_spi_interface.hpp:102
Definition isf15acp4.hpp:19
SpiMode
SPI mode required by NKK SmartDisplay devices.
Definition isf15acp4_spi_interface.hpp:44
GpioSignal
Abstract GPIO level for control pins.
Definition isf15acp4_spi_interface.hpp:32
CtrlPin
Hardware control signals for the SSD1331 SmartDisplay interface.
Definition isf15acp4_spi_interface.hpp:20
@ ChipSelect
SS / slave select (active-low on device)
@ Reset
RES# reset input: Active = held in reset (pin low), Inactive = running (pin high)
@ VccEnable
Optional charge-pump / 16V rail enable.
@ Switch
Optional momentary switch sense input.
@ DataCommand
D/C: command (inactive) vs data (active)