TLE92466ED Driver 0.1.0-preview
Modern C++23 driver for Infineon TLE92466ED Six-Channel Low-Side Solenoid Driver
Loading...
Searching...
No Matches
TLE92466ED::ExampleHAL Class Reference

Example HAL implementation for 32-bit SPI. More...

#include <example_hal.hpp>

Inheritance diagram for TLE92466ED::ExampleHAL:
[legend]
Collaboration diagram for TLE92466ED::ExampleHAL:
[legend]

Public Member Functions

 ExampleHAL (int spi_device=0, int cs_pin=10) noexcept
 Constructor.
 
HALResult< void > init () noexcept override
 Initialize SPI hardware for 32-bit communication.
 
HALResult< void > deinit () noexcept override
 Deinitialize SPI hardware.
 
HALResult< uint32_t > transfer32 (uint32_t tx_data) noexcept override
 Transfer 32-bit data via SPI.
 
HALResult< void > transfer_multi (std::span< const uint32_t > tx_data, std::span< uint32_t > rx_data) noexcept override
 Transfer multiple 32-bit words.
 
HALResult< void > chip_select () noexcept override
 Assert chip select.
 
HALResult< void > chip_deselect () noexcept override
 Deassert chip select.
 
HALResult< void > delay (uint32_t microseconds) noexcept override
 Delay for specified duration.
 
HALResult< void > configure (const SPIConfig &config) noexcept override
 Configure SPI parameters.
 
bool is_ready () const noexcept override
 Check if hardware is ready.
 
HALError get_last_error () const noexcept override
 Get last error.
 
HALResult< void > clear_errors () noexcept override
 Clear errors.
 
- Public Member Functions inherited from TLE92466ED::HAL
virtual ~HAL ()=default
 Virtual destructor for polymorphic behavior.
 

Private Attributes

int spi_device_
 SPI device identifier.
 
int cs_pin_
 Chip select pin.
 
bool initialized_
 Initialization status.
 
HALError last_error_
 Last error code.
 
SPIConfig config_
 Current SPI configuration.
 

Additional Inherited Members

- Protected Member Functions inherited from TLE92466ED::HAL
 HAL ()=default
 Protected constructor to prevent direct instantiation.
 
 HAL (const HAL &)=delete
 Prevent copying.
 
HALoperator= (const HAL &)=delete
 
 HAL (HAL &&) noexcept=default
 Allow moving.
 
HALoperator= (HAL &&) noexcept=default
 

Detailed Description

Example HAL implementation for 32-bit SPI.

This is a template implementation showing how to create a platform-specific HAL for 32-bit SPI communication.

Key Requirements:

  • 32-bit SPI transfers (or 4x 8-bit transfers)
  • MSB-first byte order
  • Full-duplex operation
  • SPI Mode 0 (CPOL=0, CPHA=0)
Platform Adaptation:
Replace placeholder comments with actual hardware code for:
  • STM32: HAL_SPI_TransmitReceive()
  • ESP32: spi_device_transmit()
  • Arduino: SPI.transfer32() or 4x SPI.transfer()
  • Linux: ioctl(SPI_IOC_MESSAGE)

Constructor & Destructor Documentation

◆ ExampleHAL()

TLE92466ED::ExampleHAL::ExampleHAL ( int spi_device = 0,
int cs_pin = 10 )
inlinenoexcept

Constructor.

Parameters
spi_devicePlatform-specific SPI device identifier
cs_pinChip select pin identifier

Member Function Documentation

◆ chip_deselect()

HALResult< void > TLE92466ED::ExampleHAL::chip_deselect ( )
inlineoverridevirtualnoexcept

Deassert chip select.

Implements TLE92466ED::HAL.

◆ chip_select()

HALResult< void > TLE92466ED::ExampleHAL::chip_select ( )
inlineoverridevirtualnoexcept

Assert chip select.

Implements TLE92466ED::HAL.

◆ clear_errors()

HALResult< void > TLE92466ED::ExampleHAL::clear_errors ( )
inlineoverridevirtualnoexcept

Clear errors.

Implements TLE92466ED::HAL.

◆ configure()

HALResult< void > TLE92466ED::ExampleHAL::configure ( const SPIConfig & config)
inlineoverridevirtualnoexcept

Configure SPI parameters.

Implements TLE92466ED::HAL.

◆ deinit()

HALResult< void > TLE92466ED::ExampleHAL::deinit ( )
inlineoverridevirtualnoexcept

Deinitialize SPI hardware.

Implements TLE92466ED::HAL.

◆ delay()

HALResult< void > TLE92466ED::ExampleHAL::delay ( uint32_t microseconds)
inlineoverridevirtualnoexcept

Delay for specified duration.

Implements TLE92466ED::HAL.

◆ get_last_error()

HALError TLE92466ED::ExampleHAL::get_last_error ( ) const
inlineoverridevirtualnoexcept

Get last error.

Implements TLE92466ED::HAL.

◆ init()

HALResult< void > TLE92466ED::ExampleHAL::init ( )
inlineoverridevirtualnoexcept

Initialize SPI hardware for 32-bit communication.

Implements TLE92466ED::HAL.

◆ is_ready()

bool TLE92466ED::ExampleHAL::is_ready ( ) const
inlineoverridevirtualnoexcept

Check if hardware is ready.

Implements TLE92466ED::HAL.

◆ transfer32()

HALResult< uint32_t > TLE92466ED::ExampleHAL::transfer32 ( uint32_t tx_data)
inlineoverridevirtualnoexcept

Transfer 32-bit data via SPI.

This is the core communication function. It must transfer 4 bytes in MSB-first order (big-endian).

Implements TLE92466ED::HAL.

◆ transfer_multi()

HALResult< void > TLE92466ED::ExampleHAL::transfer_multi ( std::span< const uint32_t > tx_data,
std::span< uint32_t > rx_data )
inlineoverridevirtualnoexcept

Transfer multiple 32-bit words.

Implements TLE92466ED::HAL.

Member Data Documentation

◆ config_

SPIConfig TLE92466ED::ExampleHAL::config_
private

Current SPI configuration.

◆ cs_pin_

int TLE92466ED::ExampleHAL::cs_pin_
private

Chip select pin.

◆ initialized_

bool TLE92466ED::ExampleHAL::initialized_
private

Initialization status.

◆ last_error_

HALError TLE92466ED::ExampleHAL::last_error_
private

Last error code.

◆ spi_device_

int TLE92466ED::ExampleHAL::spi_device_
private

SPI device identifier.


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