HF-Core Platform 0.1.0-dev
Hardware-Agnostic Handler Layer & RTOS Utilities for HardFOC
Loading...
Searching...
No Matches
HalSpiMax22200Comm Class Reference

CRTP SPI communication adapter for MAX22200 using BaseSpi and BaseGpio. More...

#include <Max22200Handler.h>

Inheritance diagram for HalSpiMax22200Comm:
[legend]
Collaboration diagram for HalSpiMax22200Comm:
[legend]

Public Member Functions

 HalSpiMax22200Comm (BaseSpi &spi, BaseGpio &enable, BaseGpio &cmd, BaseGpio *fault=nullptr) noexcept
 Construct the SPI adapter.
 
CRTP-Required Methods
bool Initialize () noexcept
 
bool Transfer (const uint8_t *tx_data, uint8_t *rx_data, size_t length) noexcept
 
bool SetChipSelect (bool state) noexcept
 
bool Configure (uint32_t speed_hz, uint8_t mode, bool msb_first=true) noexcept
 
bool IsReady () const noexcept
 
void DelayUs (uint32_t us) noexcept
 
void GpioSet (max22200::CtrlPin pin, max22200::GpioSignal signal) noexcept
 
bool GpioRead (max22200::CtrlPin pin, max22200::GpioSignal &signal) noexcept
 

Private Attributes

BaseSpi & spi_
 
BaseGpio & enable_
 
BaseGpio & cmd_
 
BaseGpio * fault_
 
bool initialized_ {false}
 

Detailed Description

CRTP SPI communication adapter for MAX22200 using BaseSpi and BaseGpio.

Implements all methods required by max22200::SpiInterface<HalSpiMax22200Comm>. Handles the two-phase CMD-pin SPI protocol.

Constructor & Destructor Documentation

◆ HalSpiMax22200Comm()

HalSpiMax22200Comm::HalSpiMax22200Comm ( BaseSpi & spi,
BaseGpio & enable,
BaseGpio & cmd,
BaseGpio * fault = nullptr )
noexcept

Construct the SPI adapter.

Parameters
spiReference to pre-configured BaseSpi (Mode 0, 8-bit).
enableBaseGpio for ENABLE pin (active HIGH).
cmdBaseGpio for CMD pin (HIGH=command phase, LOW=data phase).
faultOptional BaseGpio for nFAULT (active LOW, open-drain).

Member Function Documentation

◆ Configure()

bool HalSpiMax22200Comm::Configure ( uint32_t speed_hz,
uint8_t mode,
bool msb_first = true )
noexcept

◆ DelayUs()

void HalSpiMax22200Comm::DelayUs ( uint32_t us)
noexcept
Here is the call graph for this function:

◆ GpioRead()

bool HalSpiMax22200Comm::GpioRead ( max22200::CtrlPin pin,
max22200::GpioSignal & signal )
noexcept

◆ GpioSet()

void HalSpiMax22200Comm::GpioSet ( max22200::CtrlPin pin,
max22200::GpioSignal signal )
noexcept
Here is the call graph for this function:

◆ Initialize()

bool HalSpiMax22200Comm::Initialize ( )
noexcept

◆ IsReady()

bool HalSpiMax22200Comm::IsReady ( ) const
noexcept

◆ SetChipSelect()

bool HalSpiMax22200Comm::SetChipSelect ( bool state)
noexcept

◆ Transfer()

bool HalSpiMax22200Comm::Transfer ( const uint8_t * tx_data,
uint8_t * rx_data,
size_t length )
noexcept

Member Data Documentation

◆ cmd_

BaseGpio& HalSpiMax22200Comm::cmd_
private

◆ enable_

BaseGpio& HalSpiMax22200Comm::enable_
private

◆ fault_

BaseGpio* HalSpiMax22200Comm::fault_
private

◆ initialized_

bool HalSpiMax22200Comm::initialized_ {false}
private

◆ spi_

BaseSpi& HalSpiMax22200Comm::spi_
private

The documentation for this class was generated from the following files: