426 bool parallel_mode = false) noexcept;
437 bool parallel_mode = false) noexcept;
453 uint8_t period_mantissa,
454 uint8_t period_exponent,
455 bool low_freq_range = false) noexcept;
470 uint8_t flat_steps) noexcept;
511 bool parallel_mode = false) noexcept;
629 bool verify_crc =
true) noexcept;
642 bool verify_crc = true) noexcept;
655 uint16_t value) noexcept;
Hardware Abstraction Layer (HAL) base class for TLE92466ED driver.
Register definitions and bit field mappings for TLE92466ED IC.
Main TLE92466ED driver class.
Definition TLE92466ED.hpp:231
std::array< uint16_t, 6 > channel_setpoints_
Cached current setpoints.
Definition TLE92466ED.hpp:729
bool is_initialized() const noexcept
Check if driver is initialized.
Definition TLE92466ED.hpp:612
DriverResult< SPIFrame > transfer_frame(const SPIFrame &tx_frame, bool verify_crc=true) noexcept
Transfer SPI frame with CRC calculation and verification.
Definition TLE92466ED.cpp:890
DriverResult< void > enable_channel(Channel channel, bool enabled) noexcept
Enable or disable a channel.
Definition TLE92466ED.cpp:216
DriverResult< uint16_t > get_average_current(Channel channel, bool parallel_mode=false) noexcept
Get average current for a channel.
Definition TLE92466ED.cpp:638
DriverResult< uint16_t > get_vio_voltage() noexcept
Get VIO voltage
Definition TLE92466ED.cpp:687
DriverResult< void > configure_dither(Channel channel, uint16_t step_size, uint8_t num_steps, uint8_t flat_steps) noexcept
Configure dither parameters.
Definition TLE92466ED.cpp:396
DriverResult< void > disable_all_channels() noexcept
Disable all channels.
Definition TLE92466ED.cpp:261
DriverResult< std::array< uint16_t, 3 > > get_chip_id() noexcept
Read unique chip ID.
Definition TLE92466ED.cpp:775
DriverResult< void > check_config_mode() const noexcept
Check if in config mode.
Definition TLE92466ED.hpp:697
DriverResult< void > configure_pwm_period(Channel channel, uint8_t period_mantissa, uint8_t period_exponent, bool low_freq_range=false) noexcept
Configure PWM parameters for ICC.
Definition TLE92466ED.cpp:373
DriverResult< ChannelDiagnostics > get_channel_diagnostics(Channel channel) noexcept
Get channel diagnostic information.
Definition TLE92466ED.cpp:575
Driver(HAL &hal) noexcept
Construct driver with HAL interface.
Definition TLE92466ED.hpp:241
DriverResult< void > modify_register(uint16_t address, uint16_t mask, uint16_t value) noexcept
Modify register bits.
Definition TLE92466ED.cpp:868
Driver(const Driver &)=delete
DriverResult< uint16_t > get_ic_version() noexcept
Read IC version and ID.
Definition TLE92466ED.cpp:767
DriverResult< bool > verify_device() noexcept
Verify device ID matches expected value.
Definition TLE92466ED.cpp:803
bool is_mission_mode() const noexcept
Check if in mission mode.
Definition TLE92466ED.hpp:313
DriverResult< void > enable_channels(uint8_t channel_mask) noexcept
Enable or disable multiple channels.
Definition TLE92466ED.cpp:241
DriverResult< void > reload_spi_watchdog(uint16_t reload_value) noexcept
Reload SPI watchdog counter.
Definition TLE92466ED.cpp:755
DriverResult< void > enter_mission_mode() noexcept
Enter Mission Mode (enables channel control)
Definition TLE92466ED.cpp:119
DriverResult< DeviceStatus > get_device_status() noexcept
Get global device status.
Definition TLE92466ED.cpp:517
DriverResult< void > enable_all_channels() noexcept
Enable all channels.
Definition TLE92466ED.cpp:257
DriverResult< void > init() noexcept
Initialize the driver and hardware.
Definition TLE92466ED.cpp:25
DriverResult< void > clear_faults() noexcept
Clear all fault flags.
Definition TLE92466ED.cpp:704
DriverResult< void > check_spi_status(const SPIFrame &rx_frame) noexcept
Parse SPI status from reply frame.
Definition TLE92466ED.cpp:926
DriverResult< void > configure_global(const GlobalConfig &config) noexcept
Configure global device settings.
Definition TLE92466ED.cpp:155
DriverResult< void > set_crc_enabled(bool enabled) noexcept
Enable/disable CRC checking.
Definition TLE92466ED.cpp:193
DriverResult< void > enter_config_mode() noexcept
Enter Config Mode (allows configuration changes)
Definition TLE92466ED.cpp:135
DriverResult< uint16_t > get_vbat_voltage() noexcept
Get VBAT voltage.
Definition TLE92466ED.cpp:672
DriverResult< void > apply_default_config() noexcept
Apply default configuration after initialization.
Definition TLE92466ED.cpp:66
DriverResult< uint16_t > get_duty_cycle(Channel channel) noexcept
Get PWM duty cycle for a channel.
Definition TLE92466ED.cpp:659
DriverResult< void > check_initialized() const noexcept
Check if driver is initialized.
Definition TLE92466ED.hpp:677
HAL & hal_
Hardware abstraction layer.
Definition TLE92466ED.hpp:725
DriverResult< void > check_mission_mode() const noexcept
Check if in mission mode.
Definition TLE92466ED.hpp:687
DriverResult< bool > has_any_fault() noexcept
Check if any fault exists.
Definition TLE92466ED.cpp:727
DriverResult< void > set_parallel_operation(ParallelPair pair, bool enabled) noexcept
Configure channel for parallel operation.
Definition TLE92466ED.cpp:283
DriverResult< bool > is_channel_parallel(Channel channel) noexcept
Check if channel is currently in parallel mode.
Definition TLE92466ED.cpp:945
bool initialized_
Initialization status.
Definition TLE92466ED.hpp:726
bool mission_mode_
Mission mode flag (vs config mode)
Definition TLE92466ED.hpp:727
~Driver() noexcept
Destructor - ensures clean shutdown.
Definition TLE92466ED.hpp:246
DriverResult< void > configure_channel(Channel channel, const ChannelConfig &config) noexcept
Configure channel slew rate and diagnostics.
Definition TLE92466ED.cpp:427
Driver(Driver &&) noexcept=delete
DriverResult< uint16_t > get_current_setpoint(Channel channel, bool parallel_mode=false) noexcept
Get current setpoint for channel.
Definition TLE92466ED.cpp:347
DriverResult< void > set_channel_mode(Channel channel, ChannelMode mode) noexcept
Set channel operation mode.
Definition TLE92466ED.cpp:265
constexpr bool is_valid_channel_internal(Channel channel) const noexcept
Validate channel number.
Definition TLE92466ED.hpp:670
DriverResult< void > set_current_setpoint(Channel channel, uint16_t current_ma, bool parallel_mode=false) noexcept
Set current setpoint for channel.
Definition TLE92466ED.cpp:315
uint16_t channel_enable_cache_
Cached channel enable state.
Definition TLE92466ED.hpp:728
DriverResult< void > set_vbat_thresholds(uint8_t uv_threshold, uint8_t ov_threshold) noexcept
Configure VBAT under/overvoltage thresholds.
Definition TLE92466ED.cpp:203
DriverResult< void > software_reset() noexcept
Software reset of the device.
Definition TLE92466ED.cpp:736
DriverResult< uint16_t > read_register(uint16_t address, bool verify_crc=true) noexcept
Read 16-bit register.
Definition TLE92466ED.cpp:826
DriverResult< void > write_register(uint16_t address, uint16_t value, bool verify_crc=true) noexcept
Write 16-bit register.
Definition TLE92466ED.cpp:848
Driver & operator=(const Driver &)=delete
Abstract Hardware Abstraction Layer (HAL) base class.
Definition TLE92466ED_HAL.hpp:124
Definition TLE92466ED.hpp:80
ChannelMode
Channel operation mode.
Definition TLE92466ED_Registers.hpp:754
@ ICC
Integrated Current Control.
constexpr bool is_valid_channel(Channel ch) noexcept
Validate channel number.
Definition TLE92466ED_Registers.hpp:826
std::expected< T, DriverError > DriverResult
Driver result type using std::expected.
Definition TLE92466ED.hpp:107
DriverError
Driver error codes.
Definition TLE92466ED.hpp:85
@ ConfigurationError
Configuration failed.
@ FaultDetected
Device fault detected.
@ RegisterError
Register read/write error.
@ SPIFrameError
SPI frame error from device.
@ DeviceNotResponding
Device not responding to SPI.
@ TimeoutError
Operation timeout.
@ HardwareError
HAL communication error.
@ InvalidParameter
Invalid parameter value.
@ WrongDeviceID
Incorrect device ID read.
@ CRCError
CRC mismatch in SPI communication.
@ InvalidChannel
Invalid channel number.
@ NotInitialized
Driver not initialized.
@ WriteToReadOnly
Attempted write to read-only register.
@ WrongMode
Operation not allowed in current mode.
Channel
Channel enumeration.
Definition TLE92466ED_Registers.hpp:740
ParallelPair
Parallel operation pairs.
Definition TLE92466ED_Registers.hpp:786
SlewRate
Slew rate enumeration.
Definition TLE92466ED_Registers.hpp:766
DiagCurrent
OFF-state diagnostic current.
Definition TLE92466ED_Registers.hpp:776
Channel configuration structure.
Definition TLE92466ED.hpp:115
SlewRate slew_rate
Output slew rate.
Definition TLE92466ED.hpp:118
bool deep_dither_enabled
Enable deep dither.
Definition TLE92466ED.hpp:125
bool olsg_warning_enabled
Enable OLSG warning.
Definition TLE92466ED.hpp:124
ChannelMode mode
Channel operation mode.
Definition TLE92466ED.hpp:116
uint16_t current_setpoint_ma
Current setpoint in mA (0-2000 or 0-4000)
Definition TLE92466ED.hpp:117
DiagCurrent diag_current
OFF-state diagnostic current.
Definition TLE92466ED.hpp:119
uint8_t dither_flat
Flat period steps.
Definition TLE92466ED.hpp:128
uint8_t pwm_period_exponent
PWM period exponent.
Definition TLE92466ED.hpp:122
uint16_t dither_step_size
Dither amplitude step size.
Definition TLE92466ED.hpp:126
bool auto_limit_disabled
Disable auto-limit feature.
Definition TLE92466ED.hpp:123
uint8_t dither_steps
Number of dither steps.
Definition TLE92466ED.hpp:127
uint8_t open_load_threshold
OL threshold (0=disabled, 1-7 = 1/8 to 7/8)
Definition TLE92466ED.hpp:120
uint16_t pwm_period_mantissa
PWM period mantissa.
Definition TLE92466ED.hpp:121
Channel diagnostic information.
Definition TLE92466ED.hpp:169
bool short_to_ground
Short to ground.
Definition TLE92466ED.hpp:172
uint16_t min_current
Minimum current.
Definition TLE92466ED.hpp:186
uint16_t average_current
Average current (raw value)
Definition TLE92466ED.hpp:184
bool ot_warning
Over-temperature warning.
Definition TLE92466ED.hpp:178
bool current_regulation_warning
Current regulation warning.
Definition TLE92466ED.hpp:179
bool overcurrent
Over-current detected.
Definition TLE92466ED.hpp:171
bool pwm_regulation_warning
PWM regulation warning.
Definition TLE92466ED.hpp:180
uint16_t vbat_feedback
VBAT feedback.
Definition TLE92466ED.hpp:188
uint16_t duty_cycle
PWM duty cycle (raw value)
Definition TLE92466ED.hpp:185
bool open_load_short_ground
Open load or short to ground.
Definition TLE92466ED.hpp:175
uint16_t max_current
Maximum current.
Definition TLE92466ED.hpp:187
bool olsg_warning
OLSG warning.
Definition TLE92466ED.hpp:181
bool open_load
Open load.
Definition TLE92466ED.hpp:173
bool over_temperature
Channel over-temperature.
Definition TLE92466ED.hpp:174
Global device status structure.
Definition TLE92466ED.hpp:134
bool vbat_ov
VBAT overvoltage.
Definition TLE92466ED.hpp:141
bool supply_nok_internal
Internal supply fault.
Definition TLE92466ED.hpp:158
bool clock_fault
Clock fault.
Definition TLE92466ED.hpp:152
uint16_t vbat_voltage
VBAT voltage (raw value)
Definition TLE92466ED.hpp:162
bool vio_ov
VIO overvoltage.
Definition TLE92466ED.hpp:143
uint16_t vio_voltage
VIO voltage (raw value)
Definition TLE92466ED.hpp:163
bool supply_nok_external
External supply fault.
Definition TLE92466ED.hpp:159
bool spi_wd_error
SPI watchdog error.
Definition TLE92466ED.hpp:153
bool reset_event
External reset occurred.
Definition TLE92466ED.hpp:155
bool ot_error
Over-temperature error.
Definition TLE92466ED.hpp:149
bool any_fault
Any fault condition present.
Definition TLE92466ED.hpp:137
bool vbat_uv
VBAT undervoltage.
Definition TLE92466ED.hpp:140
bool por_event
Power-on reset occurred.
Definition TLE92466ED.hpp:154
bool vdd_uv
VDD undervoltage.
Definition TLE92466ED.hpp:144
bool init_done
Initialization complete.
Definition TLE92466ED.hpp:136
bool vio_uv
VIO undervoltage.
Definition TLE92466ED.hpp:142
bool config_mode
In config mode (vs mission mode)
Definition TLE92466ED.hpp:135
bool vdd_ov
VDD overvoltage.
Definition TLE92466ED.hpp:145
bool ot_warning
Over-temperature warning.
Definition TLE92466ED.hpp:148
Global configuration structure.
Definition TLE92466ED.hpp:194
bool spi_watchdog_enabled
Enable SPI watchdog.
Definition TLE92466ED.hpp:196
bool vio_5v
VIO voltage (false=3.3V, true=5.0V)
Definition TLE92466ED.hpp:198
bool crc_enabled
Enable CRC checking.
Definition TLE92466ED.hpp:195
uint16_t spi_watchdog_reload
SPI watchdog reload value.
Definition TLE92466ED.hpp:201
uint8_t vbat_ov_threshold
VBAT OV threshold (0.16208V per LSB)
Definition TLE92466ED.hpp:200
bool clock_watchdog_enabled
Enable clock watchdog.
Definition TLE92466ED.hpp:197
uint8_t vbat_uv_threshold
VBAT UV threshold (0.16208V per LSB)
Definition TLE92466ED.hpp:199
32-bit SPI frame structure for TLE92466ED communication
Definition TLE92466ED_Registers.hpp:68