TLE92466ED Driver 2.0.0
API reference
Loading...
Searching...
No Matches
Classes | Namespaces | Enumerations | Functions | Variables
tle92466ed_registers.hpp File Reference

Register definitions and bit field mappings for TLE92466ED. More...

#include <algorithm>
#include <cmath>
#include <cstddef>
#include <cstdint>

Go to the source code of this file.

Classes

struct  tle92466ed::PERIOD::PeriodConfig
 Calculate PWM period register values from desired period in microseconds. More...
 
struct  tle92466ed::CLK_DIV::PllConfig
 
struct  tle92466ed::DITHER_CLK_DIV::ClkDivConfig
 Encoded DITHER_CLK_DIV configuration. More...
 
struct  tle92466ed::DITHER::DitherConfig
 Dither configuration structure. More...
 
struct  tle92466ed::SupplyVoltages
 High-level supply-voltage snapshot returned by ReadAllSupplyVoltages(). More...
 
struct  tle92466ed::DitherSetup
 High-level dither configuration (Phase 4 superset of ConfigureDither). More...
 
struct  tle92466ed::BistResult
 Result of RunSffBist(). More...
 
struct  tle92466ed::PinStatus
 Snapshot returned by ReadPinStatus(). More...
 
struct  tle92466ed::ChannelFeedback
 High-resolution per-channel feedback snapshot (Phase 6). More...
 
struct  tle92466ed::SupplyMonitorSelfTestResult
 Result of RunSupplyMonitorSelfTest(). More...
 

Namespaces

namespace  tle92466ed
 
namespace  tle92466ed::CentralReg
 Central and global register addresses.
 
namespace  tle92466ed::DeviceID
 Device identification and version information.
 
namespace  tle92466ed::ChannelBase
 Per-channel register base addresses.
 
namespace  tle92466ed::ChannelReg
 Per-channel register offsets (add to channel base address)
 
namespace  tle92466ed::CH_CTRL
 CH_CTRL register bit definitions.
 
namespace  tle92466ed::GLOBAL_CONFIG
 GLOBAL_CONFIG register bit definitions.
 
namespace  tle92466ed::GLOBAL_DIAG0
 GLOBAL_DIAG0 register bit definitions.
 
namespace  tle92466ed::WD_RELOAD
 WD_RELOAD register bit definitions.
 
namespace  tle92466ed::GLOBAL_DIAG1
 GLOBAL_DIAG1 register bit definitions.
 
namespace  tle92466ed::DIAG_ERR_CHGR
 DIAG_ERR_CHGR bit layout and address helpers.
 
namespace  tle92466ed::DIAG_WARN_CHGR
 DIAG_WARN_CHGR bit layout and address helpers.
 
namespace  tle92466ed::GLOBAL_DIAG2
 GLOBAL_DIAG2 register bit definitions (datasheet Rev 1.2 §5.3.2.7).
 
namespace  tle92466ed::FB_STAT
 FB_STAT register bit definitions.
 
namespace  tle92466ed::SETPOINT
 SETPOINT register bit definitions (per channel)
 
namespace  tle92466ed::PERIOD
 PERIOD register bit definitions and helper functions.
 
namespace  tle92466ed::CH_CTRL_REG
 Channel CTRL register bit definitions.
 
namespace  tle92466ed::CH_CONFIG
 CH_CONFIG register bit definitions.
 
namespace  tle92466ed::CH_MODE
 Channel MODE register bit definitions.
 
namespace  tle92466ed::TON
 TON register bit definitions.
 
namespace  tle92466ed::INTEGRATOR_LIMIT
 INTEGRATOR_LIMIT register bit definitions.
 
namespace  tle92466ed::CTRL_INT_THRESH
 CTRL_INT_THRESH register bit definitions.
 
namespace  tle92466ed::CLK_DIV
 CLK_DIV bit definitions.
 
namespace  tle92466ed::SFF_BIST
 SFF_BIST bit definitions.
 
namespace  tle92466ed::PIN_STAT
 PIN_STAT bit definitions.
 
namespace  tle92466ed::FAULT_MASK0
 FAULT_MASK bit definitions.
 
namespace  tle92466ed::FAULT_MASK1
 
namespace  tle92466ed::FAULT_MASK2
 
namespace  tle92466ed::DITHER_CTRL
 DITHER_CTRL register bit definitions.
 
namespace  tle92466ed::DITHER_STEP
 DITHER_STEP register bit definitions.
 
namespace  tle92466ed::DITHER_CLK_DIV
 DITHER_CLK_DIV register bitfield definitions and helpers.
 
namespace  tle92466ed::DITHER
 Dither configuration helper functions.
 
namespace  tle92466ed::VBAT_THRESHOLD
 VBAT threshold helper functions.
 
namespace  tle92466ed::VOLTAGE_FEEDBACK
 Voltage feedback helper functions for FB_VOLTAGE1 and FB_VOLTAGE2.
 
namespace  tle92466ed::FB_IMIN_IMAX
 Decoder for the FB_IMIN_IMAX register (ChannelReg::FB_IMIN_IMAX).
 
namespace  tle92466ed::FB_FEEDBACK
 Per-channel averaged feedback decoders for FB_DC, FB_I_AVG, FB_VBAT.
 
namespace  tle92466ed::FB_I_AVG_s16
 FB_I_AVG_s16 decoder (calibration only — see the warning below).
 
namespace  tle92466ed::FB_INT_THRESH
 FB_INT_THRESH feedback reader.
 
namespace  tle92466ed::FB_PERIOD_MIN_MAX
 FB_PERIOD_MIN_MAX decoder.
 

Enumerations

enum class  tle92466ed::Channel : uint8_t {
  tle92466ed::CH0 = 0 , tle92466ed::CH1 = 1 , tle92466ed::CH2 = 2 , tle92466ed::CH3 = 3 ,
  tle92466ed::CH4 = 4 , tle92466ed::CH5 = 5 , tle92466ed::COUNT = 6
}
 Channel enumeration. More...
 
enum class  tle92466ed::ChannelMode : uint8_t {
  tle92466ed::OFF = 0x0 , tle92466ed::ICC = 0x1 , tle92466ed::DIRECT_DRIVE_SPI = 0x2 , tle92466ed::DIRECT_DRIVE_DRV0 = 0x3 ,
  tle92466ed::DIRECT_DRIVE_DRV1 = 0x4 , tle92466ed::FREE_RUN_MEAS = 0xC
}
 Channel operation mode. More...
 
enum class  tle92466ed::SlewRate : uint8_t { tle92466ed::SLOW_1V0_US = 0 , tle92466ed::MEDIUM_2V5_US = 1 , tle92466ed::FAST_5V0_US = 2 , tle92466ed::FASTEST_10V0_US = 3 }
 Slew rate enumeration. More...
 
enum class  tle92466ed::DiagCurrent : uint8_t { tle92466ed::I_80UA = 0 , tle92466ed::I_190UA = 1 , tle92466ed::I_720UA = 2 , tle92466ed::I_1250UA = 3 }
 OFF-state diagnostic current. More...
 
enum class  tle92466ed::ParallelPair : uint8_t { tle92466ed::NONE = 0 , tle92466ed::CH0_CH3 = 1 , tle92466ed::CH1_CH2 = 2 , tle92466ed::CH4_CH5 = 3 }
 Parallel operation pairs. More...
 
enum class  tle92466ed::ExpectedReply : uint8_t { tle92466ed::Bits16 , tle92466ed::Bits22 }
 Reply-frame width a register is required to answer with. More...
 
enum class  tle92466ed::ClockSource : uint8_t { tle92466ed::InternalOscillator , tle92466ed::ExternalClockPll }
 Clock source selection for ConfigureClockSource(). More...
 
enum class  tle92466ed::VioLevel : uint8_t { tle92466ed::V3_3 = 0 , tle92466ed::V5_0 = 1 }
 VIO voltage-level selection for SetVioLevel(). More...
 
enum class  tle92466ed::OperationState : uint8_t { tle92466ed::Reset , tle92466ed::Config , tle92466ed::Mission , tle92466ed::CriticalFault }
 Coarse operational state returned by GetOperationState(). More...
 
enum class  tle92466ed::FastMeasureMode : uint8_t { tle92466ed::FullPeriod = 0 , tle92466ed::HalfPeriod = 1 , tle92466ed::QuarterPeriod = 2 }
 Fast-measurement mode for dither-synchronous feedback. More...
 
enum class  tle92466ed::MaskableFault : uint32_t {
  tle92466ed::Ch0Error = (0u << 24) | (1u << 0) , tle92466ed::Ch1Error = (0u << 24) | (1u << 1) , tle92466ed::Ch2Error = (0u << 24) | (1u << 2) , tle92466ed::Ch3Error = (0u << 24) | (1u << 3) ,
  tle92466ed::Ch4Error = (0u << 24) | (1u << 4) , tle92466ed::Ch5Error = (0u << 24) | (1u << 5) , tle92466ed::EnPin = (0u << 24) | (1u << 13) , tle92466ed::SupplyNokInternal = (0u << 24) | (1u << 14) ,
  tle92466ed::SupplyNokExternal = (0u << 24) | (1u << 15) , tle92466ed::Ch0Warning = (1u << 24) | (1u << 0) , tle92466ed::Ch1Warning = (1u << 24) | (1u << 1) , tle92466ed::Ch2Warning = (1u << 24) | (1u << 2) ,
  tle92466ed::Ch3Warning = (1u << 24) | (1u << 3) , tle92466ed::Ch4Warning = (1u << 24) | (1u << 4) , tle92466ed::Ch5Warning = (1u << 24) | (1u << 5) , tle92466ed::CentralOtWarning = (1u << 24) | (1u << 12) ,
  tle92466ed::CentralOtError = (1u << 24) | (1u << 13) , tle92466ed::ClockLow = (1u << 24) | (1u << 14) , tle92466ed::VbatUv = (2u << 24) | (1u << 0) , tle92466ed::VbatOv = (2u << 24) | (1u << 1) ,
  tle92466ed::VioUv = (2u << 24) | (1u << 2) , tle92466ed::VioOv = (2u << 24) | (1u << 3) , tle92466ed::VddUv = (2u << 24) | (1u << 4) , tle92466ed::VddOv = (2u << 24) | (1u << 5) ,
  tle92466ed::DataErr = (2u << 24) | (1u << 14) , tle92466ed::SpiWatchdog = (2u << 24) | (1u << 15)
}
 Maskable fault sources for SetFaultMask(). More...
 

Functions

constexpr bool tle92466ed::DeviceID::IsValidDevice (uint16_t icvid) noexcept
 Check if ICVID value is valid for TLE92466ED.
 
constexpr uint8_t tle92466ed::DeviceID::GetDeviceType (uint16_t icvid) noexcept
 Extract device type from ICVID.
 
constexpr uint8_t tle92466ed::DeviceID::GetRevision (uint16_t icvid) noexcept
 Extract silicon revision from ICVID.
 
constexpr uint16_t tle92466ed::CH_CTRL::ChannelMask (uint8_t channel) noexcept
 Get channel enable bit mask.
 
constexpr uint16_t tle92466ed::WD_RELOAD::MaskValue (uint16_t value) noexcept
 Mask WD_TIME value to valid 11-bit range.
 
constexpr uint16_t tle92466ed::DIAG_ERR_CHGR::AddressForChannel (uint8_t channel) noexcept
 Register address for the group covering a channel.
 
constexpr uint8_t tle92466ed::DIAG_ERR_CHGR::YShiftForChannel (uint8_t channel) noexcept
 Bit shift (0 or 8) selecting the channel within its group.
 
constexpr uint16_t tle92466ed::DIAG_ERR_CHGR::ChannelBitMask (uint8_t channel, uint8_t bit_index) noexcept
 Build a single-bit test mask for a given channel and bit index.
 
constexpr uint16_t tle92466ed::DIAG_ERR_CHGR::OcClearMaskForChannel (uint8_t channel) noexcept
 Clear mask writing 1s only to the OC bit(s) of the affected channel.
 
constexpr uint16_t tle92466ed::DIAG_WARN_CHGR::AddressForChannel (uint8_t channel) noexcept
 Register address for the group covering a channel.
 
constexpr uint8_t tle92466ed::DIAG_WARN_CHGR::YShiftForChannel (uint8_t channel) noexcept
 Bit shift (0 or 8) selecting the channel within its group.
 
constexpr uint16_t tle92466ed::DIAG_WARN_CHGR::ChannelBitMask (uint8_t channel, uint8_t bit_index) noexcept
 Build a single-bit test mask for a given channel and bit index.
 
constexpr uint16_t tle92466ed::SETPOINT::CalculateTarget (uint16_t current_ma, bool parallel_mode=false) noexcept
 Calculate setpoint value for desired current.
 
constexpr uint16_t tle92466ed::SETPOINT::CalculateTargetUa (uint32_t current_ua, bool parallel_mode=false) noexcept
 Calculate setpoint value for a desired current in microamperes.
 
constexpr uint16_t tle92466ed::SETPOINT::CalculateCurrent (uint16_t target, bool parallel_mode=false) noexcept
 Calculate current from setpoint value.
 
PeriodConfig tle92466ed::PERIOD::CalculateFromPeriodUs (float period_us) noexcept
 Calculate period configuration from desired period in microseconds.
 
constexpr uint16_t tle92466ed::PERIOD::BuildRegisterValue (const PeriodConfig &config) noexcept
 Build PERIOD register value from configuration.
 
constexpr uint16_t tle92466ed::CH_CTRL_REG::Build (uint8_t min_int_thresh, bool olsg_warning_enabled, bool pwm_period_calc_mode) noexcept
 Build a complete CTRL value instead of read-modify-writing it.
 
constexpr uint16_t tle92466ed::TON::Build (uint16_t ton_mant, uint8_t olsg_timeout) noexcept
 Pack TON_MANT + OLSG_TIMEOUT into the raw register value.
 
constexpr uint16_t tle92466ed::INTEGRATOR_LIMIT::Build (uint16_t lim_value_abs, uint8_t auto_lim_value_abs) noexcept
 
constexpr uint16_t tle92466ed::CTRL_INT_THRESH::Build (uint16_t int_thresh) noexcept
 Build raw value from a 9-bit integrator threshold.
 
constexpr uint16_t tle92466ed::CLK_DIV::BuildExternalPll (uint8_t pll_refdiv, uint16_t pll_fbdiv) noexcept
 Pack the external-clock PLL configuration.
 
PllConfig tle92466ed::CLK_DIV::CalculatePllFromExternalHz (uint32_t f_clk_hz) noexcept
 
ClkDivConfig tle92466ed::DITHER_CLK_DIV::CalculateFromTrefClkUs (float t_ref_clk_us) noexcept
 Pick MANT/EXP that approximate a desired tref_clk in microseconds.
 
DitherConfig tle92466ed::DITHER::CalculateFromAmplitudeFrequency (float amplitude_ma, float frequency_hz, bool parallel_mode=false, float t_ref_clk_us=DEFAULT_T_REF_CLK_US) noexcept
 Calculate dither configuration from amplitude and frequency.
 
constexpr uint8_t tle92466ed::VBAT_THRESHOLD::CalculateFromVoltage (float voltage_volts) noexcept
 Calculate register value from voltage.
 
constexpr float tle92466ed::VBAT_THRESHOLD::CalculateVoltage (uint8_t register_value) noexcept
 Calculate voltage from register value.
 
constexpr uint16_t tle92466ed::VOLTAGE_FEEDBACK::ExtractVioMillivolts (uint32_t register_value) noexcept
 Extract VIO voltage from FB_VOLTAGE1 register (22-bit value)
 
constexpr uint16_t tle92466ed::VOLTAGE_FEEDBACK::ExtractVddMillivolts (uint32_t register_value) noexcept
 Extract VDD voltage from FB_VOLTAGE1 register (22-bit value)
 
constexpr uint16_t tle92466ed::VOLTAGE_FEEDBACK::ExtractVbatMillivolts (uint32_t register_value) noexcept
 Extract VBAT voltage from FB_VOLTAGE2 register (22-bit value)
 
constexpr uint16_t tle92466ed::VOLTAGE_FEEDBACK::ExtractTemperatureRaw (uint32_t register_value) noexcept
 Extract temperature value from FB_VOLTAGE2 register (22-bit value)
 
constexpr float tle92466ed::VOLTAGE_FEEDBACK::TemperatureCelsiusFromRaw (uint16_t temp_value) noexcept
 Convert a raw TEMP_VALUE (11-bit) to die temperature in \u00b0C.
 
constexpr float tle92466ed::VOLTAGE_FEEDBACK::TemperatureCelsiusFromFbVoltage2 (uint32_t register_value) noexcept
 Convert a raw 22-bit FB_VOLTAGE2 read to die temperature in \u00b0C.
 
constexpr int16_t tle92466ed::FB_IMIN_IMAX::SignExtend10 (uint32_t v) noexcept
 Sign-extend a 10-bit two's-complement field to int16_t.
 
constexpr int16_t tle92466ed::FB_IMIN_IMAX::ExtractIMin (uint32_t raw) noexcept
 Extract signed 10-bit IMIN field from raw FB_IMIN_IMAX read.
 
constexpr int16_t tle92466ed::FB_IMIN_IMAX::ExtractIMax (uint32_t raw) noexcept
 Extract signed 10-bit IMAX field from raw FB_IMIN_IMAX read.
 
constexpr int32_t tle92466ed::FB_IMIN_IMAX::FieldToMilliamps (int16_t field) noexcept
 Convert a signed 10-bit IMIN/IMAX field value to milliamperes.
 
constexpr int32_t tle92466ed::FB_IMIN_IMAX::IMin_mA (uint32_t raw) noexcept
 Decode IMIN in mA from a raw FB_IMIN_IMAX read.
 
constexpr int32_t tle92466ed::FB_IMIN_IMAX::IMax_mA (uint32_t raw) noexcept
 Decode IMAX in mA from a raw FB_IMIN_IMAX read.
 
constexpr int16_t tle92466ed::FB_FEEDBACK::SignExtend11 (uint32_t v) noexcept
 Sign-extend an 11-bit two's-complement value into int16_t.
 
constexpr uint16_t tle92466ed::FB_FEEDBACK::ExtractTpMant (uint32_t fb_dc_raw) noexcept
 Extract TP_MANT (Period Mantissa, 11 bits unsigned) from a raw FB_DC read.
 
constexpr uint16_t tle92466ed::FB_FEEDBACK::ExtractToMant (uint32_t fb_dc_raw) noexcept
 Extract TO_MANT (On-time Mantissa, 11 bits unsigned) from a raw FB_DC read.
 
constexpr int16_t tle92466ed::FB_FEEDBACK::ExtractIAvgMant (uint32_t fb_i_avg_raw) noexcept
 Extract signed I_AVG_MANT (11-bit two's-complement) from FB_I_AVG.
 
constexpr uint8_t tle92466ed::FB_FEEDBACK::ExtractMeasExp (uint32_t fb_vbat_or_iavg_raw) noexcept
 Extract the 4-bit measurement exponent from FB_VBAT or FB_I_AVG.
 
constexpr float tle92466ed::FB_FEEDBACK::ComputeDutyCycle (uint32_t fb_dc_raw) noexcept
 Compute duty cycle (0.0 – 1.0) from a raw FB_DC value.
 
constexpr bool tle92466ed::FB_FEEDBACK::HasValidMeasurementWindow (uint32_t fb_dc_raw) noexcept
 True when FB_DC reports a measurement period usable for ratio decoding.
 
int32_t tle92466ed::FB_FEEDBACK::ComputeAverageCurrent_mA (uint32_t fb_i_avg_raw, uint32_t fb_dc_raw) noexcept
 Compute average current in mA (signed) from FB_I_AVG and FB_DC.
 
uint32_t tle92466ed::FB_FEEDBACK::ComputeVbatChannel_mV (uint32_t fb_vbat_raw, uint32_t fb_dc_raw) noexcept
 Compute averaged battery voltage in mV from FB_VBAT and FB_DC.
 
constexpr int32_t tle92466ed::FB_I_AVG_s16::SignExtend17 (uint32_t raw17) noexcept
 Sign-extend the 17-bit signed field.
 
constexpr bool tle92466ed::FB_I_AVG_s16::IsSettlingFrame (uint32_t reply_22bit) noexcept
 True when the frame is the pre-measurement placeholder.
 
constexpr int32_t tle92466ed::FB_I_AVG_s16::ToMilliamps (uint32_t reply_22bit) noexcept
 Decode signed 17-bit raw to milliamps.
 
constexpr uint8_t tle92466ed::FB_I_AVG_s16::ExtractTimestamp (uint32_t reply_22bit) noexcept
 Extract the 2-bit rolling timestamp.
 
constexpr int16_t tle92466ed::FB_INT_THRESH::Extract (uint32_t reply_22bit) noexcept
 
constexpr uint32_t tle92466ed::FB_PERIOD_MIN_MAX::ToMicroseconds (uint16_t raw_count) noexcept
 Convert a raw 10-bit count to microseconds (fSYS = 28 MHz).
 
constexpr uint16_t tle92466ed::FB_PERIOD_MIN_MAX::ExtractMin (uint32_t reply_22bit) noexcept
 
constexpr uint16_t tle92466ed::FB_PERIOD_MIN_MAX::ExtractMax (uint32_t reply_22bit) noexcept
 
constexpr uint32_t tle92466ed::FB_PERIOD_MIN_MAX::PeriodMinMicroseconds (uint32_t reply_22bit) noexcept
 
constexpr uint32_t tle92466ed::FB_PERIOD_MIN_MAX::PeriodMaxMicroseconds (uint32_t reply_22bit) noexcept
 
constexpr uint16_t tle92466ed::GetChannelBase (Channel channel) noexcept
 Get channel base address.
 
constexpr uint16_t tle92466ed::GetChannelRegister (Channel channel, uint16_t offset) noexcept
 Get channel register address.
 
constexpr ExpectedReply tle92466ed::ExpectedReplyFor (uint16_t address) noexcept
 Reply width the device must use when answering a read of address.
 
constexpr uint8_t tle92466ed::ToIndex (Channel ch) noexcept
 Convert channel to index.
 
const char * tle92466ed::ToString (ChannelMode mode) noexcept
 Convert ChannelMode enum to string.
 
const char * tle92466ed::ToString (SlewRate rate) noexcept
 Convert SlewRate enum to string.
 
const char * tle92466ed::ToString (DiagCurrent current) noexcept
 Convert DiagCurrent enum to string.
 
const char * tle92466ed::ToString (ParallelPair pair) noexcept
 Convert ParallelPair enum to string.
 
const char * tle92466ed::ToString (Channel channel) noexcept
 Convert Channel enum to string.
 
constexpr bool tle92466ed::IsValidChannel (Channel ch) noexcept
 Validate channel number.
 
constexpr uint8_t tle92466ed::CalculateCrc8J1850 (const uint8_t *data, std::size_t length) noexcept
 Calculate SAE J1850 CRC-8.
 
uint8_t tle92466ed::CalculateFrameCrc (const tle92466ed::SPIFrame &frame) noexcept
 Calculate CRC for SPI frame.
 
bool tle92466ed::VerifyFrameCrc (const tle92466ed::SPIFrame &frame) noexcept
 Verify CRC in received frame.
 
constexpr uint8_t tle92466ed::FaultMaskIndex (MaskableFault f) noexcept
 Extract FAULT_MASK register index (0..2) from a MaskableFault value.
 
constexpr uint16_t tle92466ed::FaultMaskBit (MaskableFault f) noexcept
 Extract the bit mask within the target FAULT_MASK register.
 

Variables

constexpr uint16_t tle92466ed::CentralReg::CH_CTRL = 0x0000
 Channel Control Register.
 
constexpr uint16_t tle92466ed::CentralReg::GLOBAL_CONFIG = 0x0002
 Global Configuration Register.
 
constexpr uint16_t tle92466ed::CentralReg::GLOBAL_DIAG0 = 0x0003
 Global Diagnosis Register 0.
 
constexpr uint16_t tle92466ed::CentralReg::GLOBAL_DIAG1 = 0x0004
 Global Diagnosis Register 1.
 
constexpr uint16_t tle92466ed::CentralReg::GLOBAL_DIAG2 = 0x0005
 Global Diagnosis Register 2.
 
constexpr uint16_t tle92466ed::CentralReg::VBAT_TH = 0x0006
 VBAT Threshold Register.
 
constexpr uint16_t tle92466ed::CentralReg::FB_FRZ = 0x0007
 Feedback Freeze Register.
 
constexpr uint16_t tle92466ed::CentralReg::FB_UPD = 0x0008
 Feedback Update Register.
 
constexpr uint16_t tle92466ed::CentralReg::WD_RELOAD = 0x0009
 SPI Watchdog Reload Register.
 
constexpr uint16_t tle92466ed::CentralReg::DIAG_ERR_CHGR0 = 0x000A
 Diag Error CHGR0 (CH0+CH1)
 
constexpr uint16_t tle92466ed::CentralReg::DIAG_ERR_CHGR1 = 0x000B
 Diag Error CHGR1 (CH2+CH3)
 
constexpr uint16_t tle92466ed::CentralReg::DIAG_ERR_CHGR2 = 0x000C
 Diag Error CHGR2 (CH4+CH5)
 
constexpr uint16_t tle92466ed::CentralReg::DIAG_WARN_CHGR0 = 0x0010
 Diag Warn CHGR0 (CH0+CH1)
 
constexpr uint16_t tle92466ed::CentralReg::DIAG_WARN_CHGR1 = 0x0011
 Diag Warn CHGR1 (CH2+CH3)
 
constexpr uint16_t tle92466ed::CentralReg::DIAG_WARN_CHGR2 = 0x0012
 Diag Warn CHGR2 (CH4+CH5)
 
constexpr uint16_t tle92466ed::CentralReg::FAULT_MASK0 = 0x0016
 Fault Mask Register 0.
 
constexpr uint16_t tle92466ed::CentralReg::FAULT_MASK1 = 0x0017
 Fault Mask Register 1.
 
constexpr uint16_t tle92466ed::CentralReg::FAULT_MASK2 = 0x0018
 Fault Mask Register 2.
 
constexpr uint16_t tle92466ed::CentralReg::CLK_DIV = 0x0019
 Clock Control Register.
 
constexpr uint16_t tle92466ed::CentralReg::SFF_BIST = 0x003F
 BIST Register.
 
constexpr uint16_t tle92466ed::CentralReg::ICVID = 0x0200
 IC Version and ID.
 
constexpr uint16_t tle92466ed::CentralReg::PIN_STAT = 0x0201
 Pin Status Register.
 
constexpr uint16_t tle92466ed::CentralReg::FB_STAT = 0x0202
 Feedback Status Register.
 
constexpr uint16_t tle92466ed::CentralReg::FB_VOLTAGE1 = 0x0203
 Feedback Voltage Register 1.
 
constexpr uint16_t tle92466ed::CentralReg::FB_VOLTAGE2 = 0x0204
 Feedback Voltage Register 2.
 
constexpr uint16_t tle92466ed::CentralReg::CHIPID0 = 0x0205
 Unique Chip ID Register 0.
 
constexpr uint16_t tle92466ed::CentralReg::CHIPID1 = 0x0206
 Unique Chip ID Register 1.
 
constexpr uint16_t tle92466ed::CentralReg::CHIPID2 = 0x0207
 Unique Chip ID Register 2.
 
constexpr uint16_t tle92466ed::DeviceID::DEVICE_TYPE_MASK = 0xFF00
 Device type mask [15:8].
 
constexpr uint16_t tle92466ed::DeviceID::REVISION_MASK = 0x00FF
 Silicon revision mask [7:0].
 
constexpr uint8_t tle92466ed::DeviceID::EXPECTED_TYPE_92466ED = 0xC1
 Expected manufacturer/type byte.
 
constexpr uint8_t tle92466ed::DeviceID::MIN_REVISION = 0x00
 Minimum silicon revision.
 
constexpr uint16_t tle92466ed::ChannelBase::CH0 = 0x0040
 Channel 0 base address.
 
constexpr uint16_t tle92466ed::ChannelBase::CH1 = 0x0050
 Channel 1 base address.
 
constexpr uint16_t tle92466ed::ChannelBase::CH2 = 0x0060
 Channel 2 base address.
 
constexpr uint16_t tle92466ed::ChannelBase::CH3 = 0x0070
 Channel 3 base address.
 
constexpr uint16_t tle92466ed::ChannelBase::CH4 = 0x0020
 Channel 4 base address.
 
constexpr uint16_t tle92466ed::ChannelBase::CH5 = 0x0030
 Channel 5 base address.
 
constexpr uint16_t tle92466ed::ChannelReg::SETPOINT = 0x0000
 Current Setpoint Register.
 
constexpr uint16_t tle92466ed::ChannelReg::CTRL = 0x0001
 Control Register.
 
constexpr uint16_t tle92466ed::ChannelReg::PERIOD = 0x0002
 ICC PWM Frequency Controller.
 
constexpr uint16_t tle92466ed::ChannelReg::INTEGRATOR_LIMIT = 0x0003
 ICC Integrator Limitation.
 
constexpr uint16_t tle92466ed::ChannelReg::DITHER_CLK_DIV = 0x0004
 Dither Clock Register.
 
constexpr uint16_t tle92466ed::ChannelReg::DITHER_STEP = 0x0005
 Dither Step Register.
 
constexpr uint16_t tle92466ed::ChannelReg::DITHER_CTRL = 0x0006
 Dither Control Register.
 
constexpr uint16_t tle92466ed::ChannelReg::CH_CONFIG = 0x0007
 Channel Configuration.
 
constexpr uint16_t tle92466ed::ChannelReg::MODE = 0x000C
 Channel Mode Register.
 
constexpr uint16_t tle92466ed::ChannelReg::TON = 0x000D
 On-Time Register.
 
constexpr uint16_t tle92466ed::ChannelReg::CTRL_INT_THRESH = 0x000E
 ICC Integrator Threshold.
 
constexpr uint16_t tle92466ed::ChannelReg::FB_DC = 0x0200
 Feedback Duty Cycle.
 
constexpr uint16_t tle92466ed::ChannelReg::FB_VBAT = 0x0201
 Feedback Average VBAT.
 
constexpr uint16_t tle92466ed::ChannelReg::FB_I_AVG = 0x0202
 Feedback Average Current.
 
constexpr uint16_t tle92466ed::ChannelReg::FB_IMIN_IMAX = 0x0203
 Feedback Min/Max Current.
 
constexpr uint16_t tle92466ed::ChannelReg::FB_I_AVG_s16 = 0x0204
 Feedback signed Current (16-bit)
 
constexpr uint16_t tle92466ed::ChannelReg::FB_INT_THRESH = 0x0205
 Feedback ICC Integrator Threshold.
 
constexpr uint16_t tle92466ed::ChannelReg::FB_PERIOD_MIN_MAX = 0x0206
 Feedback Min/Max PWM Period.
 
constexpr uint16_t tle92466ed::CH_CTRL::EN_CH0 = (1 << 0)
 Enable Channel 0.
 
constexpr uint16_t tle92466ed::CH_CTRL::EN_CH1 = (1 << 1)
 Enable Channel 1.
 
constexpr uint16_t tle92466ed::CH_CTRL::EN_CH2 = (1 << 2)
 Enable Channel 2.
 
constexpr uint16_t tle92466ed::CH_CTRL::EN_CH3 = (1 << 3)
 Enable Channel 3.
 
constexpr uint16_t tle92466ed::CH_CTRL::EN_CH4 = (1 << 4)
 Enable Channel 4.
 
constexpr uint16_t tle92466ed::CH_CTRL::EN_CH5 = (1 << 5)
 Enable Channel 5.
 
constexpr uint16_t tle92466ed::CH_CTRL::CH_PAR_4_5 = (1 << 12)
 Parallel CH4/CH5.
 
constexpr uint16_t tle92466ed::CH_CTRL::CH_PAR_0_3 = (1 << 13)
 Parallel CH0/CH3.
 
constexpr uint16_t tle92466ed::CH_CTRL::CH_PAR_1_2 = (1 << 14)
 Parallel CH1/CH2.
 
constexpr uint16_t tle92466ed::CH_CTRL::OP_MODE = (1 << 15)
 Operation Mode.
 
constexpr uint16_t tle92466ed::CH_CTRL::ALL_CH_MASK = 0x003F
 All channel bits.
 
constexpr uint16_t tle92466ed::CH_CTRL::ALL_PAR_MASK = 0x7000
 All parallel bits.
 
constexpr uint16_t tle92466ed::CH_CTRL::DEFAULT = 0x0000
 Default value.
 
constexpr uint16_t tle92466ed::CH_CTRL::CONFIG_MODE = 0x0000
 Config Mode (OP_MODE=0)
 
constexpr uint16_t tle92466ed::CH_CTRL::MISSION_MODE = OP_MODE
 Mission Mode (OP_MODE=1)
 
constexpr uint16_t tle92466ed::GLOBAL_CONFIG::CLK_WD_EN = (1 << 0)
 Clock watchdog enable.
 
constexpr uint16_t tle92466ed::GLOBAL_CONFIG::SPI_WD_EN = (1 << 1)
 SPI watchdog enable.
 
constexpr uint16_t tle92466ed::GLOBAL_CONFIG::CRC_EN = (1 << 2)
 CRC check enable.
 
constexpr uint16_t tle92466ed::GLOBAL_CONFIG::V1V5_UV_TEST = (1 << 4)
 1.5V UV test
 
constexpr uint16_t tle92466ed::GLOBAL_CONFIG::V1V5_OV_TEST = (1 << 5)
 1.5V OV test
 
constexpr uint16_t tle92466ed::GLOBAL_CONFIG::OT_TEST = (1 << 12)
 Over-temp test.
 
constexpr uint16_t tle92466ed::GLOBAL_CONFIG::UV_OV_SWAP = (1 << 13)
 UV/OV swap test.
 
constexpr uint16_t tle92466ed::GLOBAL_CONFIG::VIO_SEL = (1 << 14)
 VIO select (0=3.3V, 1=5V)
 
constexpr uint16_t tle92466ed::GLOBAL_CONFIG::DEFAULT = 0x4005
 Default value.
 
constexpr uint16_t tle92466ed::GLOBAL_DIAG0::VBAT_UV = (1 << 0)
 VBAT undervoltage.
 
constexpr uint16_t tle92466ed::GLOBAL_DIAG0::VBAT_OV = (1 << 1)
 VBAT overvoltage.
 
constexpr uint16_t tle92466ed::GLOBAL_DIAG0::VIO_UV = (1 << 2)
 VIO undervoltage.
 
constexpr uint16_t tle92466ed::GLOBAL_DIAG0::VIO_OV = (1 << 3)
 VIO overvoltage.
 
constexpr uint16_t tle92466ed::GLOBAL_DIAG0::VDD_UV = (1 << 4)
 VDD undervoltage.
 
constexpr uint16_t tle92466ed::GLOBAL_DIAG0::VDD_OV = (1 << 5)
 VDD overvoltage.
 
constexpr uint16_t tle92466ed::GLOBAL_DIAG0::CLK_NOK = (1 << 6)
 Clock fault.
 
constexpr uint16_t tle92466ed::GLOBAL_DIAG0::COTERR = (1 << 7)
 Central OT error.
 
constexpr uint16_t tle92466ed::GLOBAL_DIAG0::COTWARN = (1 << 8)
 Central OT warning.
 
constexpr uint16_t tle92466ed::GLOBAL_DIAG0::RES_EVENT = (1 << 9)
 Reset event.
 
constexpr uint16_t tle92466ed::GLOBAL_DIAG0::POR_EVENT = (1 << 10)
 Power-on reset.
 
constexpr uint16_t tle92466ed::GLOBAL_DIAG0::SPI_WD_ERR = (1 << 14)
 SPI watchdog error.
 
constexpr uint16_t tle92466ed::GLOBAL_DIAG0::DEFAULT = 0x0600
 Default value.
 
constexpr uint16_t tle92466ed::GLOBAL_DIAG0::FAULT_MASK = 0x47FF
 All fault bits.
 
constexpr uint16_t tle92466ed::GLOBAL_DIAG0::CLEAR_ALL = 0xFFFF
 Clear all bits (write-to-clear)
 
constexpr uint16_t tle92466ed::WD_RELOAD::WD_TIME_MASK = 0x07FF
 11-bit mask for WD_TIME field (bits 10:0)
 
constexpr uint16_t tle92466ed::WD_RELOAD::WD_TIME_MAX = 0x07FF
 Maximum WD_TIME value (2047)
 
constexpr uint16_t tle92466ed::WD_RELOAD::DEFAULT = 0x0001
 Default value.
 
constexpr uint16_t tle92466ed::GLOBAL_DIAG1::VR_IREF_UV = (1 << 0)
 Bias current UV.
 
constexpr uint16_t tle92466ed::GLOBAL_DIAG1::VR_IREF_OV = (1 << 1)
 Bias current OV.
 
constexpr uint16_t tle92466ed::GLOBAL_DIAG1::VDD2V5_UV = (1 << 2)
 2.5V supply UV
 
constexpr uint16_t tle92466ed::GLOBAL_DIAG1::VDD2V5_OV = (1 << 3)
 2.5V supply OV
 
constexpr uint16_t tle92466ed::GLOBAL_DIAG1::REF_UV = (1 << 4)
 Reference UV.
 
constexpr uint16_t tle92466ed::GLOBAL_DIAG1::REF_OV = (1 << 5)
 Reference OV.
 
constexpr uint16_t tle92466ed::GLOBAL_DIAG1::VPRE_OV = (1 << 6)
 Pre-reg OV.
 
constexpr uint16_t tle92466ed::GLOBAL_DIAG1::HVADC_ERR = (1 << 15)
 HV ADC error.
 
constexpr uint16_t tle92466ed::GLOBAL_DIAG1::DEFAULT = 0x0000
 Default value.
 
constexpr uint16_t tle92466ed::GLOBAL_DIAG1::CLEAR_ALL = 0xFFFF
 Clear all bits (write-to-clear)
 
constexpr uint8_t tle92466ed::DIAG_ERR_CHGR::BIT_OLSG = 0
 Open-Load / Short-to-Ground.
 
constexpr uint8_t tle92466ed::DIAG_ERR_CHGR::BIT_OL = 1
 Open-Load.
 
constexpr uint8_t tle92466ed::DIAG_ERR_CHGR::BIT_OC = 2
 Overcurrent (double-clear)
 
constexpr uint8_t tle92466ed::DIAG_ERR_CHGR::BIT_SG = 3
 Short-to-Ground.
 
constexpr uint8_t tle92466ed::DIAG_ERR_CHGR::BIT_OTE = 4
 Channel overtemperature error.
 
constexpr uint16_t tle92466ed::DIAG_ERR_CHGR::PER_CHANNEL_MASK = 0x001Fu
 5-bit mask of all error bits for one channel (before 8*y shift).
 
constexpr uint16_t tle92466ed::DIAG_ERR_CHGR::OC_BOTH_MASK = (1u << BIT_OC) | (1u << (BIT_OC + 8))
 16-bit mask of both-channel OC bits in a group (bits 2 and 10).
 
constexpr uint8_t tle92466ed::DIAG_WARN_CHGR::BIT_PWM_REG = 0
 
constexpr uint8_t tle92466ed::DIAG_WARN_CHGR::BIT_I_REG = 1
 
constexpr uint8_t tle92466ed::DIAG_WARN_CHGR::BIT_OTW = 2
 
constexpr uint8_t tle92466ed::DIAG_WARN_CHGR::BIT_OLSG_WARN = 3
 
constexpr uint8_t tle92466ed::DIAG_WARN_CHGR::BIT_OLSG_CHK_NOK = 4
 
constexpr uint16_t tle92466ed::DIAG_WARN_CHGR::PER_CHANNEL_MASK = 0x001Fu
 
constexpr uint16_t tle92466ed::GLOBAL_DIAG2::REG_ECC_ERR = (1 << 1)
 Multi-bit flip in a register.
 
constexpr uint16_t tle92466ed::GLOBAL_DIAG2::OTP_ECC_ERR = (1 << 3)
 Non-repairable OTP multi-bit flip.
 
constexpr uint16_t tle92466ed::GLOBAL_DIAG2::OTP_VIRGIN = (1 << 4)
 1 = virgin OTP address (must be 0)
 
constexpr uint16_t tle92466ed::GLOBAL_DIAG2::DEFAULT = 0x0000
 Default value.
 
constexpr uint16_t tle92466ed::GLOBAL_DIAG2::CLEAR_ALL = 0xFFFF
 Clear all bits (write-to-clear)
 
constexpr uint32_t tle92466ed::FB_STAT::DIAG_WARN_CHGR0 = (1u << 0)
 DIAG_WARN_CHGR0 status.
 
constexpr uint32_t tle92466ed::FB_STAT::DIAG_WARN_CHGR1 = (1u << 1)
 DIAG_WARN_CHGR1 status.
 
constexpr uint32_t tle92466ed::FB_STAT::DIAG_WARN_CHGR2 = (1u << 2)
 DIAG_WARN_CHGR2 status.
 
constexpr uint32_t tle92466ed::FB_STAT::OLSG_WARN_CHK_NOK_CHGR0 = (1u << 3)
 OL/SG check group 0.
 
constexpr uint32_t tle92466ed::FB_STAT::OLSG_WARN_CHK_NOK_CHGR1 = (1u << 4)
 OL/SG check group 1.
 
constexpr uint32_t tle92466ed::FB_STAT::OLSG_WARN_CHK_NOK_CHGR2 = (1u << 5)
 OL/SG check group 2.
 
constexpr uint32_t tle92466ed::FB_STAT::CLK_NOK_STAT = (1u << 6)
 Clock fault status.
 
constexpr uint32_t tle92466ed::FB_STAT::COTERR = (1u << 7)
 Central overtemperature error.
 
constexpr uint32_t tle92466ed::FB_STAT::COTWARN = (1u << 8)
 Central overtemperature warning.
 
constexpr uint32_t tle92466ed::FB_STAT::RES_EVENT = (1u << 9)
 Reset event (RESN pin)
 
constexpr uint32_t tle92466ed::FB_STAT::POR_EVENT = (1u << 10)
 Power-on reset event.
 
constexpr uint32_t tle92466ed::FB_STAT::DATA_ERR = (1u << 11)
 OTP_ECC_ERR / OTP_VIRGIN / HV_ADC_ERR.
 
constexpr uint32_t tle92466ed::FB_STAT::SUP_NOK_EXT = (1u << 12)
 VIO/VDD/VBAT UV or OV.
 
constexpr uint32_t tle92466ed::FB_STAT::SUP_NOK_INT = (1u << 13)
 Internal rail UV or OV.
 
constexpr uint32_t tle92466ed::FB_STAT::ERR_CHGR0 = (1u << 14)
 DIAG_ERR_CHGR1 status.
 
constexpr uint32_t tle92466ed::FB_STAT::ERR_CHGR1 = (1u << 15)
 DIAG_ERR_CHGR2 status.
 
constexpr uint32_t tle92466ed::FB_STAT::ERR_CHGR2 = (1u << 16)
 DIAG_ERR_CHGR3 status.
 
constexpr uint32_t tle92466ed::FB_STAT::SPI_WD_ERR = (1u << 20)
 SPI watchdog error status.
 
constexpr uint32_t tle92466ed::FB_STAT::INIT_DONE = (1u << 21)
 Chip initialization done.
 
constexpr uint16_t tle92466ed::SETPOINT::TARGET_MASK = 0x7FFF
 Target current mask.
 
constexpr uint16_t tle92466ed::SETPOINT::AUTO_LIMIT_DIS = (1 << 15)
 Disable auto-limit.
 
constexpr uint16_t tle92466ed::SETPOINT::DEFAULT = 0x0000
 Default (0A)
 
constexpr uint16_t tle92466ed::SETPOINT::MAX_TARGET = 0x6000
 Maximum safe target value (datasheet saturates above 0x6000)
 
constexpr uint16_t tle92466ed::PERIOD::MANT_MASK = 0x00FF
 Mantissa mask (bits 7:0)
 
constexpr uint16_t tle92466ed::PERIOD::EXP_MASK = 0x0700
 Exponent mask (bits 10:8)
 
constexpr uint16_t tle92466ed::PERIOD::EXP_SHIFT = 8
 Exponent shift.
 
constexpr uint8_t tle92466ed::PERIOD::EXP_VALUE_MASK = 0x07
 Exponent value mask (3 bits: 0-7)
 
constexpr uint16_t tle92466ed::PERIOD::LOW_FREQ_BIT = (1 << 11)
 Low frequency range bit.
 
constexpr uint16_t tle92466ed::PERIOD::PWM_CTRL_PARAM_SHIFT = 12
 
constexpr uint16_t tle92466ed::PERIOD::PWM_CTRL_PARAM_MASK = 0xF000
 
constexpr uint32_t tle92466ed::PERIOD::F_SYS_HZ = 28'000'000UL
 System clock frequency (28 MHz)
 
constexpr float tle92466ed::PERIOD::F_SYS_PERIOD_US = 1.0F / 28.0F
 System clock period (≈35.71 ns)
 
constexpr float tle92466ed::PERIOD::kSpecMinFrequency_Hz = 110.0F
 Datasheet minimum f_PWM.
 
constexpr float tle92466ed::PERIOD::kSpecMaxFrequency_Hz = 4000.0F
 Datasheet maximum f_PWM.
 
constexpr float tle92466ed::PERIOD::kSpecMinPeriod_us = 1.0e6F / kSpecMaxFrequency_Hz
 250 µs
 
constexpr float tle92466ed::PERIOD::kSpecMaxPeriod_us = 1.0e6F / kSpecMinFrequency_Hz
 9090.9 µs
 
constexpr float tle92466ed::PERIOD::kSpecLowRangeMinFreq_Hz = kSpecMinFrequency_Hz / 8.0F
 13.75 Hz
 
constexpr float tle92466ed::PERIOD::kSpecLowRangeMaxFreq_Hz = kSpecMaxFrequency_Hz / 8.0F
 500 Hz
 
constexpr float tle92466ed::PERIOD::kSpecLowRangeMinPeriod_us
 2000 µs
 
constexpr float tle92466ed::PERIOD::kSpecLowRangeMaxPeriod_us
 72727 µs
 
constexpr float tle92466ed::PERIOD::kSpecCombinedMinPeriod_us = kSpecMinPeriod_us
 Combined min period across both ranges (250 µs).
 
constexpr float tle92466ed::PERIOD::kSpecCombinedMaxPeriod_us = kSpecLowRangeMaxPeriod_us
 Combined max period across both ranges (low-range 72.7 ms).
 
constexpr uint16_t tle92466ed::CH_CTRL_REG::MIN_INT_THRESH_MASK = 0x00FF
 Min threshold mask.
 
constexpr uint16_t tle92466ed::CH_CTRL_REG::PWM_PERIOD_CALC_MODE = (1 << 8)
 PWM calc mode.
 
constexpr uint16_t tle92466ed::CH_CTRL_REG::OLSG_WARN_WINDOW_MASK = 0x3E00
 OLSG window mask.
 
constexpr uint16_t tle92466ed::CH_CTRL_REG::OLSG_WARN_WINDOW_SHIFT = 9
 OLSG window shift.
 
constexpr uint16_t tle92466ed::CH_CTRL_REG::OLSG_WARN_EN = (1 << 14)
 OLSG warn enable.
 
constexpr uint16_t tle92466ed::CH_CTRL_REG::DEFAULT = 0x4600
 POR: OLSG_WARN_EN, window 3, MIN_INT_THRESH 0.
 
constexpr uint16_t tle92466ed::CH_CTRL_REG::DEFAULT_OLSG_WARN_WINDOW = 3u
 OLSG warning window encoded in the POR value, preserved when rebuilding.
 
constexpr uint8_t tle92466ed::CH_CTRL_REG::MIN_INT_THRESH_FLOOR = 2u
 Smallest MIN_INT_THRESH that keeps the ICC power stage switching.
 
constexpr uint8_t tle92466ed::CH_CTRL_REG::MIN_INT_THRESH_CEIL = 12u
 Largest MIN_INT_THRESH compatible with the Autolimit constraint.
 
constexpr uint16_t tle92466ed::CH_CONFIG::SLEWR_1V0_US = 0b00
 1.0 V/µs
 
constexpr uint16_t tle92466ed::CH_CONFIG::SLEWR_2V5_US = 0b01
 2.5 V/µs
 
constexpr uint16_t tle92466ed::CH_CONFIG::SLEWR_5V0_US = 0b10
 5.0 V/µs
 
constexpr uint16_t tle92466ed::CH_CONFIG::SLEWR_10V0_US = 0b11
 10.0 V/µs
 
constexpr uint16_t tle92466ed::CH_CONFIG::SLEWR_MASK = 0x0003
 Slew rate mask.
 
constexpr uint16_t tle92466ed::CH_CONFIG::I_DIAG_80UA = (0 << 2)
 80 µA
 
constexpr uint16_t tle92466ed::CH_CONFIG::I_DIAG_190UA = (1 << 2)
 190 µA
 
constexpr uint16_t tle92466ed::CH_CONFIG::I_DIAG_720UA = (2 << 2)
 720 µA
 
constexpr uint16_t tle92466ed::CH_CONFIG::I_DIAG_1250UA = (3 << 2)
 1250 µA
 
constexpr uint16_t tle92466ed::CH_CONFIG::I_DIAG_MASK = 0x000C
 I_DIAG mask.
 
constexpr uint16_t tle92466ed::CH_CONFIG::OL_TH_DISABLED = (0 << 4)
 OL detection disabled.
 
constexpr uint16_t tle92466ed::CH_CONFIG::OL_TH_1_8 = (1 << 4)
 1/8 of setpoint
 
constexpr uint16_t tle92466ed::CH_CONFIG::OL_TH_2_8 = (2 << 4)
 2/8 of setpoint
 
constexpr uint16_t tle92466ed::CH_CONFIG::OL_TH_3_8 = (3 << 4)
 3/8 of setpoint
 
constexpr uint16_t tle92466ed::CH_CONFIG::OL_TH_4_8 = (4 << 4)
 4/8 of setpoint
 
constexpr uint16_t tle92466ed::CH_CONFIG::OL_TH_5_8 = (5 << 4)
 5/8 of setpoint
 
constexpr uint16_t tle92466ed::CH_CONFIG::OL_TH_6_8 = (6 << 4)
 6/8 of setpoint
 
constexpr uint16_t tle92466ed::CH_CONFIG::OL_TH_7_8 = (7 << 4)
 7/8 of setpoint
 
constexpr uint16_t tle92466ed::CH_CONFIG::OL_TH_MASK = 0x0070
 OL threshold mask.
 
constexpr uint8_t tle92466ed::CH_CONFIG::OL_TH_VALUE_MASK = 0x07
 OL threshold value mask (3 bits: 0-7)
 
constexpr uint8_t tle92466ed::CH_CONFIG::OL_TH_SHIFT = 4
 OL threshold shift in register.
 
constexpr uint16_t tle92466ed::CH_CONFIG::OL_TH_FIXED_SHIFT = 7
 
constexpr uint16_t tle92466ed::CH_CONFIG::OL_TH_FIXED_MASK = 0x1F80
 
constexpr uint16_t tle92466ed::CH_CONFIG::OC_DIAG_EN = (1 << 13)
 OC diag in OFF state.
 
constexpr uint16_t tle92466ed::CH_CONFIG::OFF_DIAG_ENABLED = (0 << 14)
 OFF diag enabled.
 
constexpr uint16_t tle92466ed::CH_CONFIG::OFF_DIAG_LS_ONLY = (1 << 14)
 Low side current only.
 
constexpr uint16_t tle92466ed::CH_CONFIG::OFF_DIAG_HS_ONLY = (2 << 14)
 High side current only.
 
constexpr uint16_t tle92466ed::CH_CONFIG::OFF_DIAG_MASK = 0xC000
 OFF diag mask.
 
constexpr uint16_t tle92466ed::CH_CONFIG::DEFAULT = 0x0003
 Default value.
 
constexpr uint16_t tle92466ed::CH_MODE::OFF = 0x0000
 Channel off.
 
constexpr uint16_t tle92466ed::CH_MODE::ICC_CURRENT_CTRL = 0x0001
 ICC current control.
 
constexpr uint16_t tle92466ed::CH_MODE::DIRECT_DRIVE_SPI = 0x0002
 Direct drive via SPI.
 
constexpr uint16_t tle92466ed::CH_MODE::DIRECT_DRIVE_DRV0 = 0x0003
 Direct drive via DRV0 pin.
 
constexpr uint16_t tle92466ed::CH_MODE::DIRECT_DRIVE_DRV1 = 0x0004
 Direct drive via DRV1 pin.
 
constexpr uint16_t tle92466ed::CH_MODE::FREE_RUN_MEAS = 0x000C
 Free running measurement.
 
constexpr uint16_t tle92466ed::CH_MODE::MODE_MASK = 0x000F
 Mode mask.
 
constexpr uint16_t tle92466ed::CH_MODE::DEFAULT = OFF
 Default (off)
 
constexpr uint16_t tle92466ed::TON::TON_MANT_MASK = 0x03FFu
 10-bit mantissa mask
 
constexpr uint16_t tle92466ed::TON::OLSG_TIMEOUT_SHIFT = 10u
 OLSG timeout shift.
 
constexpr uint16_t tle92466ed::TON::OLSG_TIMEOUT_MASK = 0xFC00u
 6-bit OLSG timeout mask
 
constexpr uint16_t tle92466ed::TON::DEFAULT = 0x0000
 POR default.
 
constexpr uint16_t tle92466ed::INTEGRATOR_LIMIT::LIM_VALUE_ABS_MASK = 0x03FFu
 10-bit
 
constexpr uint16_t tle92466ed::INTEGRATOR_LIMIT::AUTO_LIM_VALUE_ABS_SHIFT = 10u
 
constexpr uint16_t tle92466ed::INTEGRATOR_LIMIT::AUTO_LIM_VALUE_ABS_MASK = 0x7C00u
 5-bit
 
constexpr uint16_t tle92466ed::INTEGRATOR_LIMIT::DEFAULT = 0x43FFu
 
constexpr uint16_t tle92466ed::CTRL_INT_THRESH::INT_THRESH_MASK = 0x01FFu
 9-bit, bits 8:0
 
constexpr uint16_t tle92466ed::CTRL_INT_THRESH::INT_THRESH_MAX = 0x01FFu
 Field maximum (511)
 
constexpr uint16_t tle92466ed::CTRL_INT_THRESH::DEFAULT = 0x0003u
 POR per §5.3.3.13.
 
constexpr uint16_t tle92466ed::CLK_DIV::EXT_CLK_BIT = (1u << 15)
 
constexpr uint16_t tle92466ed::CLK_DIV::PLL_REFDIV_SHIFT = 9u
 
constexpr uint16_t tle92466ed::CLK_DIV::PLL_REFDIV_MASK = 0x7E00u
 
constexpr uint16_t tle92466ed::CLK_DIV::PLL_FBDIV_MASK = 0x01FFu
 
constexpr uint32_t tle92466ed::CLK_DIV::F_SYS_TARGET_HZ = 28'000'000UL
 Target fSYS.
 
constexpr uint16_t tle92466ed::CLK_DIV::INTERNAL_OSC = 0x0000u
 Internal-oscillator configuration (no PLL).
 
constexpr uint16_t tle92466ed::SFF_BIST::EN = (1u << 0)
 
constexpr uint16_t tle92466ed::SFF_BIST::DONE = (1u << 1)
 
constexpr uint16_t tle92466ed::SFF_BIST::FAIL = (1u << 2)
 
constexpr uint16_t tle92466ed::SFF_BIST::UERR = (1u << 3)
 
constexpr uint16_t tle92466ed::SFF_BIST::CERR = (1u << 4)
 
constexpr uint16_t tle92466ed::SFF_BIST::DEFAULT = 0x0000
 
constexpr uint16_t tle92466ed::PIN_STAT::DRV0 = (1u << 0)
 
constexpr uint16_t tle92466ed::PIN_STAT::DRV1 = (1u << 1)
 
constexpr uint16_t tle92466ed::PIN_STAT::EN = (1u << 4)
 
constexpr uint16_t tle92466ed::PIN_STAT::FAULTN = (1u << 5)
 
constexpr uint16_t tle92466ed::PIN_STAT::FAULTN_FB = (1u << 6)
 
constexpr uint16_t tle92466ed::FAULT_MASK0::CH_ERR_MASK = 0x003Fu
 Per-channel error (CH0..5)
 
constexpr uint16_t tle92466ed::FAULT_MASK0::EN_PIN_MASK = (1u << 13)
 
constexpr uint16_t tle92466ed::FAULT_MASK0::SUP_NOK_INT_MASK = (1u << 14)
 
constexpr uint16_t tle92466ed::FAULT_MASK0::SUP_NOK_EXT_MASK = (1u << 15)
 
constexpr uint16_t tle92466ed::FAULT_MASK0::DEFAULT = 0xC03Fu
 
constexpr uint16_t tle92466ed::FAULT_MASK1::CH_WARN_MASK = 0x003Fu
 Per-channel warning (CH0..5)
 
constexpr uint16_t tle92466ed::FAULT_MASK1::COTWARN_MASK = (1u << 12)
 
constexpr uint16_t tle92466ed::FAULT_MASK1::COTERR_MASK = (1u << 13)
 
constexpr uint16_t tle92466ed::FAULT_MASK1::CLK_LOW_MASK = (1u << 14)
 
constexpr uint16_t tle92466ed::FAULT_MASK1::DEFAULT = 0x703Fu
 
constexpr uint16_t tle92466ed::FAULT_MASK2::VBAT_UV_MASK = (1u << 0)
 
constexpr uint16_t tle92466ed::FAULT_MASK2::VBAT_OV_MASK = (1u << 1)
 
constexpr uint16_t tle92466ed::FAULT_MASK2::VIO_UV_MASK = (1u << 2)
 
constexpr uint16_t tle92466ed::FAULT_MASK2::VIO_OV_MASK = (1u << 3)
 
constexpr uint16_t tle92466ed::FAULT_MASK2::VDD_UV_MASK = (1u << 4)
 
constexpr uint16_t tle92466ed::FAULT_MASK2::VDD_OV_MASK = (1u << 5)
 
constexpr uint16_t tle92466ed::FAULT_MASK2::DATA_ERR_MASK = (1u << 14)
 FB_STAT.DATA_err → FAULTN.
 
constexpr uint16_t tle92466ed::FAULT_MASK2::SPI_WD_MASK = (1u << 15)
 SPI watchdog → FAULTN.
 
constexpr uint16_t tle92466ed::FAULT_MASK2::DEFAULT = 0xC000u
 
constexpr uint16_t tle92466ed::DITHER_CTRL::STEP_SIZE_MASK = 0x0FFF
 Step size mask.
 
constexpr uint16_t tle92466ed::DITHER_CTRL::DEEP_DITHER = (1 << 13)
 Deep dither enable.
 
constexpr uint16_t tle92466ed::DITHER_CTRL::FAST_MEAS_DITH = (0 << 14)
 Dither period.
 
constexpr uint16_t tle92466ed::DITHER_CTRL::FAST_MEAS_HALF = (1 << 14)
 Half dither period.
 
constexpr uint16_t tle92466ed::DITHER_CTRL::FAST_MEAS_QUAD = (2 << 14)
 Quarter dither period.
 
constexpr uint16_t tle92466ed::DITHER_CTRL::FAST_MEAS_MASK = 0xC000
 Fast meas mask.
 
constexpr uint16_t tle92466ed::DITHER_CTRL::DEFAULT = 0x0000
 Default value.
 
constexpr uint16_t tle92466ed::DITHER_STEP::FLAT_MASK = 0x00FF
 Flat period mask.
 
constexpr uint16_t tle92466ed::DITHER_STEP::STEPS_SHIFT = 8
 Steps shift.
 
constexpr uint16_t tle92466ed::DITHER_STEP::STEPS_MASK = 0xFF00
 Steps mask.
 
constexpr uint16_t tle92466ed::DITHER_STEP::DEFAULT = 0x0000
 Default value.
 
constexpr uint16_t tle92466ed::DITHER_CLK_DIV::MANT_MASK = 0x03FFu
 10-bit mantissa mask
 
constexpr uint16_t tle92466ed::DITHER_CLK_DIV::EXP_SHIFT = 10u
 Exponent bit position.
 
constexpr uint16_t tle92466ed::DITHER_CLK_DIV::EXP_MASK = 0x3C00u
 4-bit exponent mask
 
constexpr uint8_t tle92466ed::DITHER_CLK_DIV::EXP_VALUE_MASK = 0x0Fu
 Exponent value (4 bits)
 
constexpr uint16_t tle92466ed::DITHER_CLK_DIV::DITHER_PWM_SYNC_EN_BIT = (1u << 14)
 
constexpr uint16_t tle92466ed::DITHER_CLK_DIV::DITHER_SETPOINT_SYNC_EN_BIT = (1u << 15)
 
constexpr uint32_t tle92466ed::DITHER_CLK_DIV::F_SYS_HZ = 28'000'000UL
 System clock (28 MHz, §4.2.1)
 
constexpr float tle92466ed::DITHER_CLK_DIV::F_SYS_PERIOD_US = 1.0F / 28.0F
 1 / fSYS (µs, ≈35.71 ns)
 
constexpr float tle92466ed::DITHER::F_SYS_HZ = 28'000'000.0F
 System clock frequency (28 MHz)
 
constexpr float tle92466ed::DITHER::DEFAULT_T_REF_CLK_US = 1.0F / 28.0F
 tref_clk at MANT=1, EXP=0 (≈35.71 ns)
 
constexpr float tle92466ed::VBAT_THRESHOLD::LSB_VOLTAGE = 0.16208F
 Voltage per LSB (0.16208V)
 
constexpr float tle92466ed::VBAT_THRESHOLD::MIN_VOLTAGE = 0.0F
 Minimum voltage (0V)
 
constexpr float tle92466ed::VBAT_THRESHOLD::MAX_VOLTAGE = 41.4F
 Maximum voltage (255 × 0.16208V)
 
constexpr float tle92466ed::VOLTAGE_FEEDBACK::VIO_VDD_LSB_VOLTAGE = 0.0034534F
 Voltage per LSB for VIO/VDD (0.0034534V)
 
constexpr uint32_t tle92466ed::VOLTAGE_FEEDBACK::VIO_VDD_MASK = 0x7FF
 11-bit mask (bits 10:0)
 
constexpr uint32_t tle92466ed::VOLTAGE_FEEDBACK::VDD_SHIFT = 11
 VDD is in bits [21:11].
 
constexpr float tle92466ed::VOLTAGE_FEEDBACK::VBAT_MAX_VOLTAGE = 41.47F
 Maximum VBAT voltage (41.47V)
 
constexpr uint32_t tle92466ed::VOLTAGE_FEEDBACK::VBAT_MAX_COUNT = 2047
 Maximum count (2^11 - 1)
 
constexpr uint32_t tle92466ed::VOLTAGE_FEEDBACK::VBAT_MASK = 0x7FF
 11-bit mask (bits 10:0)
 
constexpr uint32_t tle92466ed::VOLTAGE_FEEDBACK::VBAT_SHIFT = 11
 VBAT is in bits [21:11].
 
constexpr uint32_t tle92466ed::FB_IMIN_IMAX::IMIN_SHIFT = 0u
 
constexpr uint32_t tle92466ed::FB_IMIN_IMAX::IMIN_MASK = 0x3FFu
 
constexpr uint32_t tle92466ed::FB_IMIN_IMAX::IMAX_SHIFT = 10u
 
constexpr uint32_t tle92466ed::FB_IMIN_IMAX::IMAX_MASK = 0x3FFu
 
constexpr int32_t tle92466ed::FB_IMIN_IMAX::FULL_SCALE_mA = 4000
 
constexpr int32_t tle92466ed::FB_IMIN_IMAX::FULL_SCALE_COUNT = 511
 
constexpr uint32_t tle92466ed::FB_FEEDBACK::MANT11_MASK = 0x7FFu
 11-bit mantissa mask
 
constexpr uint32_t tle92466ed::FB_FEEDBACK::TP_MANT_SHIFT = 0u
 FB_DC: TP_MANT in [10:0].
 
constexpr uint32_t tle92466ed::FB_FEEDBACK::TO_MANT_SHIFT = 11u
 FB_DC: TO_MANT in [21:11].
 
constexpr uint32_t tle92466ed::FB_FEEDBACK::I_AVG_MANT_SHIFT = 0u
 FB_I_AVG: I_AVG_MANT in [10:0].
 
constexpr uint32_t tle92466ed::FB_FEEDBACK::VBAT_MANT_SHIFT = 0u
 FB_VBAT: VBAT_AVG_MANT in [10:0].
 
constexpr uint32_t tle92466ed::FB_FEEDBACK::MEAS_EXP_SHIFT = 12u
 FB_VBAT/FB_I_AVG: EXP in [15:12].
 
constexpr uint32_t tle92466ed::FB_FEEDBACK::MEAS_EXP_MASK = 0xFu
 4-bit exponent mask
 
constexpr float tle92466ed::FB_FEEDBACK::I_AVG_FULL_SCALE_AMPS = 4.0f
 Iavg formula scale (4 A)
 
constexpr float tle92466ed::FB_FEEDBACK::VBAT_FULL_SCALE_VOLTS = 41.47f
 VBAT formula scale (41.47 V)
 
constexpr uint16_t tle92466ed::FB_FEEDBACK::kMinValidTpMant = 64u
 Smallest TP_MANT that makes the mantissa-ratio formula meaningful.
 
constexpr uint32_t tle92466ed::FB_I_AVG_s16::I_AVG_MASK = 0x0001FFFFu
 17-bit
 
constexpr uint32_t tle92466ed::FB_I_AVG_s16::I_AVG_SIGN_BIT = (1u << 16)
 
constexpr uint32_t tle92466ed::FB_I_AVG_s16::TIME_STAMP_SHIFT = 20u
 
constexpr uint32_t tle92466ed::FB_I_AVG_s16::TIME_STAMP_MASK = 0x00300000u
 2-bit
 
constexpr int32_t tle92466ed::FB_I_AVG_s16::FULL_SCALE_mA = 4000
 
constexpr int32_t tle92466ed::FB_I_AVG_s16::FULL_SCALE_COUNT = 65535
 
constexpr uint32_t tle92466ed::FB_I_AVG_s16::SETTLING_CODE = 0x8000u
 Raw code the frame carries before a measurement has settled.
 
constexpr uint32_t tle92466ed::FB_INT_THRESH::INT_THRESH_MASK = 0x0000FFFFu
 
constexpr uint32_t tle92466ed::FB_PERIOD_MIN_MAX::PERIOD_MIN_MASK = 0x000003FFu
 
constexpr uint32_t tle92466ed::FB_PERIOD_MIN_MAX::PERIOD_MAX_SHIFT = 10u
 
constexpr uint32_t tle92466ed::FB_PERIOD_MIN_MAX::PERIOD_MAX_MASK = 0x000FFC00u
 
constexpr uint32_t tle92466ed::FB_PERIOD_MIN_MAX::TICK_CYCLES = 256u
 

Detailed Description

Register definitions and bit field mappings for TLE92466ED.