37#ifndef TLE92466ED_REGISTERS_HPP
38#define TLE92466ED_REGISTERS_HPP
96 frame.tx_fields.address = (addr >> 3) & 0x7F;
97 frame.tx_fields.data = addr & 0x07;
98 frame.tx_fields.crc = 0;
111 frame.tx_fields.address = (addr >> 3) & 0x7F;
112 frame.tx_fields.data =
data;
113 frame.tx_fields.crc = 0;
118static_assert(
sizeof(SPIFrame) == 4,
"SPIFrame must be exactly 4 bytes");
152namespace CentralReg {
226 [[maybe_unused]] uint8_t device_type = (icvid >> 8) & 0xFF;
229 return icvid != 0x0000 && icvid != 0xFFFF;
236 return (icvid >> 8) & 0xFF;
242 [[nodiscard]]
constexpr uint8_t
get_revision(uint16_t icvid)
noexcept {
258namespace ChannelBase {
259 constexpr uint16_t
CH0 = 0x0100;
260 constexpr uint16_t
CH1 = 0x0120;
261 constexpr uint16_t
CH2 = 0x0140;
262 constexpr uint16_t
CH3 = 0x0160;
263 constexpr uint16_t
CH4 = 0x0180;
264 constexpr uint16_t
CH5 = 0x01A0;
272namespace ChannelReg {
274 constexpr uint16_t
CTRL = 0x0001;
281 constexpr uint16_t
MODE = 0x000C;
282 constexpr uint16_t
TON = 0x000D;
345 [[nodiscard]]
constexpr uint16_t
channel_mask(uint8_t channel)
noexcept {
346 return (channel < 6) ?
static_cast<uint16_t
>(1 << channel) : 0;
374namespace GLOBAL_CONFIG {
415namespace GLOBAL_DIAG0 {
457namespace GLOBAL_DIAG1 {
477namespace GLOBAL_DIAG2 {
551 [[nodiscard]]
constexpr uint16_t
calculate_target(uint16_t current_ma,
bool parallel_mode =
false) noexcept {
552 uint32_t max_current = parallel_mode ? 4000 : 2000;
553 uint32_t target = (
static_cast<uint32_t
>(current_ma) * 32767UL) / max_current;
556 return static_cast<uint16_t
>(target);
565 [[nodiscard]]
constexpr uint16_t
calculate_current(uint16_t target,
bool parallel_mode =
false) noexcept {
566 uint32_t max_current = parallel_mode ? 4000 : 2000;
567 uint32_t current = (
static_cast<uint32_t
>(target &
TARGET_MASK) * max_current) / 32767UL;
568 return static_cast<uint16_t
>(current);
587namespace CH_CTRL_REG {
676 constexpr uint16_t
OFF = 0x0000;
701namespace DITHER_CTRL {
725namespace DITHER_STEP {
820 return static_cast<uint8_t
>(ch);
847 constexpr uint8_t POLY = 0x1D;
850 for (
size_t i = 0; i < length; ++i) {
852 for (uint8_t bit = 0; bit < 8; ++bit) {
854 crc = (crc << 1) ^ POLY;
870 const uint8_t* bytes =
reinterpret_cast<const uint8_t*
>(&frame);
885 return (received_crc == calculated_crc);
constexpr uint16_t OL_TH_MASK
OL threshold mask.
Definition TLE92466ED_Registers.hpp:643
constexpr uint16_t OL_TH_DISABLED
OL detection disabled.
Definition TLE92466ED_Registers.hpp:635
constexpr uint16_t DEFAULT
Default value.
Definition TLE92466ED_Registers.hpp:657
constexpr uint16_t OFF_DIAG_MASK
OFF diag mask.
Definition TLE92466ED_Registers.hpp:655
constexpr uint16_t OC_DIAG_EN
OC diag in OFF state.
Definition TLE92466ED_Registers.hpp:649
constexpr uint16_t OL_TH_7_8
7/8 of setpoint
Definition TLE92466ED_Registers.hpp:642
constexpr uint16_t OL_TH_5_8
5/8 of setpoint
Definition TLE92466ED_Registers.hpp:640
constexpr uint16_t OFF_DIAG_LS_ONLY
Low side current only.
Definition TLE92466ED_Registers.hpp:653
constexpr uint16_t SLEWR_5V0_US
5.0 V/µs
Definition TLE92466ED_Registers.hpp:623
constexpr uint16_t SLEWR_MASK
Slew rate mask.
Definition TLE92466ED_Registers.hpp:625
constexpr uint16_t OL_TH_2_8
2/8 of setpoint
Definition TLE92466ED_Registers.hpp:637
constexpr uint16_t OFF_DIAG_ENABLED
OFF diag enabled.
Definition TLE92466ED_Registers.hpp:652
constexpr uint16_t SLEWR_10V0_US
10.0 V/µs
Definition TLE92466ED_Registers.hpp:624
constexpr uint16_t I_DIAG_80UA
80 µA
Definition TLE92466ED_Registers.hpp:628
constexpr uint16_t OL_TH_4_8
4/8 of setpoint
Definition TLE92466ED_Registers.hpp:639
constexpr uint16_t SLEWR_2V5_US
2.5 V/µs
Definition TLE92466ED_Registers.hpp:622
constexpr uint16_t OL_TH_1_8
1/8 of setpoint
Definition TLE92466ED_Registers.hpp:636
constexpr uint16_t OFF_DIAG_HS_ONLY
High side current only.
Definition TLE92466ED_Registers.hpp:654
constexpr uint16_t OL_TH_6_8
6/8 of setpoint
Definition TLE92466ED_Registers.hpp:641
constexpr uint16_t OL_TH_FIXED_MASK
Definition TLE92466ED_Registers.hpp:647
constexpr uint16_t SLEWR_1V0_US
1.0 V/µs
Definition TLE92466ED_Registers.hpp:621
constexpr uint16_t I_DIAG_720UA
720 µA
Definition TLE92466ED_Registers.hpp:630
constexpr uint16_t OL_TH_FIXED_SHIFT
Definition TLE92466ED_Registers.hpp:646
constexpr uint16_t I_DIAG_MASK
I_DIAG mask.
Definition TLE92466ED_Registers.hpp:632
constexpr uint16_t I_DIAG_190UA
190 µA
Definition TLE92466ED_Registers.hpp:629
constexpr uint16_t OL_TH_3_8
3/8 of setpoint
Definition TLE92466ED_Registers.hpp:638
constexpr uint16_t I_DIAG_1250UA
1250 µA
Definition TLE92466ED_Registers.hpp:631
constexpr uint16_t OLSG_WARN_EN
OLSG warn enable.
Definition TLE92466ED_Registers.hpp:592
constexpr uint16_t OLSG_WARN_WINDOW_MASK
OLSG window mask.
Definition TLE92466ED_Registers.hpp:590
constexpr uint16_t MIN_INT_THRESH_MASK
Min threshold mask.
Definition TLE92466ED_Registers.hpp:588
constexpr uint16_t OLSG_WARN_WINDOW_SHIFT
OLSG window shift.
Definition TLE92466ED_Registers.hpp:591
constexpr uint16_t PWM_PERIOD_CALC_MODE
PWM calc mode.
Definition TLE92466ED_Registers.hpp:589
constexpr uint16_t DEFAULT
Default value.
Definition TLE92466ED_Registers.hpp:594
constexpr uint16_t ALL_CH_MASK
All channel bits.
Definition TLE92466ED_Registers.hpp:332
constexpr uint16_t DEFAULT
Default value.
Definition TLE92466ED_Registers.hpp:335
constexpr uint16_t CH_PAR_1_2
Parallel CH1/CH2.
Definition TLE92466ED_Registers.hpp:329
constexpr uint16_t EN_CH5
Enable Channel 5.
Definition TLE92466ED_Registers.hpp:326
constexpr uint16_t CONFIG_MODE
Config Mode (OP_MODE=0)
Definition TLE92466ED_Registers.hpp:338
constexpr uint16_t MISSION_MODE
Mission Mode (OP_MODE=1)
Definition TLE92466ED_Registers.hpp:340
constexpr uint16_t OP_MODE
Operation Mode.
Definition TLE92466ED_Registers.hpp:330
constexpr uint16_t ALL_PAR_MASK
All parallel bits.
Definition TLE92466ED_Registers.hpp:333
constexpr uint16_t EN_CH0
Enable Channel 0.
Definition TLE92466ED_Registers.hpp:321
constexpr uint16_t EN_CH1
Enable Channel 1.
Definition TLE92466ED_Registers.hpp:322
constexpr uint16_t CH_PAR_4_5
Parallel CH4/CH5.
Definition TLE92466ED_Registers.hpp:327
constexpr uint16_t EN_CH3
Enable Channel 3.
Definition TLE92466ED_Registers.hpp:324
constexpr uint16_t CH_PAR_0_3
Parallel CH0/CH3.
Definition TLE92466ED_Registers.hpp:328
constexpr uint16_t EN_CH4
Enable Channel 4.
Definition TLE92466ED_Registers.hpp:325
constexpr uint16_t channel_mask(uint8_t channel) noexcept
Get channel enable bit mask.
Definition TLE92466ED_Registers.hpp:345
constexpr uint16_t EN_CH2
Enable Channel 2.
Definition TLE92466ED_Registers.hpp:323
constexpr uint16_t DIRECT_DRIVE_DRV0
Direct drive via DRV0 pin.
Definition TLE92466ED_Registers.hpp:679
constexpr uint16_t FREE_RUN_MEAS
Free running measurement.
Definition TLE92466ED_Registers.hpp:681
constexpr uint16_t DEFAULT
Default (off)
Definition TLE92466ED_Registers.hpp:684
constexpr uint16_t ICC_CURRENT_CTRL
ICC current control.
Definition TLE92466ED_Registers.hpp:677
constexpr uint16_t OFF
Channel off.
Definition TLE92466ED_Registers.hpp:676
constexpr uint16_t DIRECT_DRIVE_DRV1
Direct drive via DRV1 pin.
Definition TLE92466ED_Registers.hpp:680
constexpr uint16_t MODE_MASK
Mode mask.
Definition TLE92466ED_Registers.hpp:682
constexpr uint16_t DIRECT_DRIVE_SPI
Direct drive via SPI.
Definition TLE92466ED_Registers.hpp:678
constexpr uint16_t FB_FRZ
Feedback Freeze Register.
Definition TLE92466ED_Registers.hpp:159
constexpr uint16_t DIAG_ERR_CHGR2
Diagnosis Error CH Group 2.
Definition TLE92466ED_Registers.hpp:166
constexpr uint16_t FB_VOLTAGE2
Feedback Voltage Register 2.
Definition TLE92466ED_Registers.hpp:189
constexpr uint16_t DIAG_ERR_CHGR3
Diagnosis Error CH Group 3.
Definition TLE92466ED_Registers.hpp:167
constexpr uint16_t DIAG_ERR_CHGR5
Diagnosis Error CH Group 5.
Definition TLE92466ED_Registers.hpp:169
constexpr uint16_t GLOBAL_DIAG2
Global Diagnosis Register 2.
Definition TLE92466ED_Registers.hpp:157
constexpr uint16_t GLOBAL_DIAG1
Global Diagnosis Register 1.
Definition TLE92466ED_Registers.hpp:156
constexpr uint16_t FAULT_MASK2
Fault Mask Register 2.
Definition TLE92466ED_Registers.hpp:180
constexpr uint16_t DIAG_WARN_CHGR0
Diagnosis Warning CH Group 0.
Definition TLE92466ED_Registers.hpp:171
constexpr uint16_t FB_VOLTAGE1
Feedback Voltage Register 1.
Definition TLE92466ED_Registers.hpp:188
constexpr uint16_t DIAG_WARN_CHGR1
Diagnosis Warning CH Group 1.
Definition TLE92466ED_Registers.hpp:172
constexpr uint16_t FB_STAT
Feedback Status Register.
Definition TLE92466ED_Registers.hpp:187
constexpr uint16_t DIAG_ERR_CHGR0
Diagnosis Error CH Group 0.
Definition TLE92466ED_Registers.hpp:164
constexpr uint16_t DIAG_WARN_CHGR2
Diagnosis Warning CH Group 2.
Definition TLE92466ED_Registers.hpp:173
constexpr uint16_t DIAG_ERR_CHGR4
Diagnosis Error CH Group 4.
Definition TLE92466ED_Registers.hpp:168
constexpr uint16_t CHIPID2
Unique Chip ID Register 2.
Definition TLE92466ED_Registers.hpp:192
constexpr uint16_t CHIPID0
Unique Chip ID Register 0.
Definition TLE92466ED_Registers.hpp:190
constexpr uint16_t DIAG_WARN_CHGR4
Diagnosis Warning CH Group 4.
Definition TLE92466ED_Registers.hpp:175
constexpr uint16_t FAULT_MASK1
Fault Mask Register 1.
Definition TLE92466ED_Registers.hpp:179
constexpr uint16_t ICVID
IC Version and ID.
Definition TLE92466ED_Registers.hpp:185
constexpr uint16_t VBAT_TH
VBAT Threshold Register.
Definition TLE92466ED_Registers.hpp:158
constexpr uint16_t PIN_STAT
Pin Status Register.
Definition TLE92466ED_Registers.hpp:186
constexpr uint16_t DIAG_WARN_CHGR5
Diagnosis Warning CH Group 5.
Definition TLE92466ED_Registers.hpp:176
constexpr uint16_t WD_RELOAD
SPI Watchdog Reload Register.
Definition TLE92466ED_Registers.hpp:161
constexpr uint16_t DIAG_ERR_CHGR1
Diagnosis Error CH Group 1.
Definition TLE92466ED_Registers.hpp:165
constexpr uint16_t CLK_DIV
Clock Control Register.
Definition TLE92466ED_Registers.hpp:181
constexpr uint16_t FB_UPD
Feedback Update Register.
Definition TLE92466ED_Registers.hpp:160
constexpr uint16_t DIAG_WARN_CHGR3
Diagnosis Warning CH Group 3.
Definition TLE92466ED_Registers.hpp:174
constexpr uint16_t CHIPID1
Unique Chip ID Register 1.
Definition TLE92466ED_Registers.hpp:191
constexpr uint16_t GLOBAL_CONFIG
Global Configuration Register.
Definition TLE92466ED_Registers.hpp:154
constexpr uint16_t GLOBAL_DIAG0
Global Diagnosis Register 0.
Definition TLE92466ED_Registers.hpp:155
constexpr uint16_t SFF_BIST
BIST Register.
Definition TLE92466ED_Registers.hpp:182
constexpr uint16_t CH_CTRL
Channel Control Register.
Definition TLE92466ED_Registers.hpp:153
constexpr uint16_t FAULT_MASK0
Fault Mask Register 0.
Definition TLE92466ED_Registers.hpp:178
constexpr uint16_t SPACING
Address spacing between channels.
Definition TLE92466ED_Registers.hpp:266
constexpr uint16_t CH0
Channel 0 base address.
Definition TLE92466ED_Registers.hpp:259
constexpr uint16_t CH2
Channel 2 base address.
Definition TLE92466ED_Registers.hpp:261
constexpr uint16_t CH3
Channel 3 base address.
Definition TLE92466ED_Registers.hpp:262
constexpr uint16_t CH1
Channel 1 base address.
Definition TLE92466ED_Registers.hpp:260
constexpr uint16_t CH5
Channel 5 base address.
Definition TLE92466ED_Registers.hpp:264
constexpr uint16_t CH4
Channel 4 base address.
Definition TLE92466ED_Registers.hpp:263
constexpr uint16_t FB_INT_THRESH
Feedback Integrator Threshold.
Definition TLE92466ED_Registers.hpp:288
constexpr uint16_t SETPOINT
Current Setpoint Register.
Definition TLE92466ED_Registers.hpp:273
constexpr uint16_t PERIOD
ICC PWM Frequency Controller.
Definition TLE92466ED_Registers.hpp:275
constexpr uint16_t FB_IMIN_IMAX
Feedback Min/Max Current.
Definition TLE92466ED_Registers.hpp:287
constexpr uint16_t DITHER_STEP
Dither Step Register.
Definition TLE92466ED_Registers.hpp:278
constexpr uint16_t CTRL_INT_THRESH
ICC Integrator Threshold.
Definition TLE92466ED_Registers.hpp:283
constexpr uint16_t CTRL
Control Register.
Definition TLE92466ED_Registers.hpp:274
constexpr uint16_t DITHER_CTRL
Dither Control Register.
Definition TLE92466ED_Registers.hpp:279
constexpr uint16_t FB_I_AVG
Feedback Average Current.
Definition TLE92466ED_Registers.hpp:286
constexpr uint16_t MODE
Channel Mode Register.
Definition TLE92466ED_Registers.hpp:281
constexpr uint16_t INTEGRATOR_LIMIT
ICC Integrator Limitation.
Definition TLE92466ED_Registers.hpp:276
constexpr uint16_t TON
On-Time Register.
Definition TLE92466ED_Registers.hpp:282
constexpr uint16_t CH_CONFIG
Channel Configuration.
Definition TLE92466ED_Registers.hpp:280
constexpr uint16_t DITHER_CLK_DIV
Dither Clock Register.
Definition TLE92466ED_Registers.hpp:277
constexpr uint16_t FB_VBAT
Feedback Average VBAT.
Definition TLE92466ED_Registers.hpp:285
constexpr uint16_t FB_DC
Feedback Duty Cycle.
Definition TLE92466ED_Registers.hpp:284
constexpr uint16_t DEEP_DITHER
Deep dither enable.
Definition TLE92466ED_Registers.hpp:703
constexpr uint16_t FAST_MEAS_QUAD
Quarter dither period.
Definition TLE92466ED_Registers.hpp:706
constexpr uint16_t FAST_MEAS_HALF
Half dither period.
Definition TLE92466ED_Registers.hpp:705
constexpr uint16_t DEFAULT
Default value.
Definition TLE92466ED_Registers.hpp:709
constexpr uint16_t STEP_SIZE_MASK
Step size mask.
Definition TLE92466ED_Registers.hpp:702
constexpr uint16_t FAST_MEAS_MASK
Fast meas mask.
Definition TLE92466ED_Registers.hpp:707
constexpr uint16_t FAST_MEAS_DITH
Dither period.
Definition TLE92466ED_Registers.hpp:704
constexpr uint16_t FLAT_MASK
Flat period mask.
Definition TLE92466ED_Registers.hpp:726
constexpr uint16_t STEPS_SHIFT
Steps shift.
Definition TLE92466ED_Registers.hpp:727
constexpr uint16_t STEPS_MASK
Steps mask.
Definition TLE92466ED_Registers.hpp:728
constexpr uint16_t DEFAULT
Default value.
Definition TLE92466ED_Registers.hpp:730
constexpr bool is_valid_device(uint16_t icvid) noexcept
Check if ICVID value is valid for TLE92466ED.
Definition TLE92466ED_Registers.hpp:225
constexpr uint8_t MIN_REVISION
Minimum silicon revision.
Definition TLE92466ED_Registers.hpp:218
constexpr uint16_t REVISION_MASK
Silicon revision mask [7:0].
Definition TLE92466ED_Registers.hpp:211
constexpr uint8_t EXPECTED_TYPE_92466ED
Expected device type code.
Definition TLE92466ED_Registers.hpp:215
constexpr uint16_t DEVICE_TYPE_MASK
Device type mask [15:8].
Definition TLE92466ED_Registers.hpp:210
constexpr uint8_t get_revision(uint16_t icvid) noexcept
Extract silicon revision from ICVID.
Definition TLE92466ED_Registers.hpp:242
constexpr uint8_t get_device_type(uint16_t icvid) noexcept
Extract device type from ICVID.
Definition TLE92466ED_Registers.hpp:235
constexpr uint16_t EN_PROT
Enable protection active.
Definition TLE92466ED_Registers.hpp:498
constexpr uint16_t INIT_DONE
Initialization done.
Definition TLE92466ED_Registers.hpp:499
constexpr uint16_t SUP_NOK_INT
Internal supply fault.
Definition TLE92466ED_Registers.hpp:496
constexpr uint16_t CLK_NOK_STAT
Clock fault status.
Definition TLE92466ED_Registers.hpp:500
constexpr uint16_t SUP_NOK_EXT
External supply fault.
Definition TLE92466ED_Registers.hpp:497
constexpr uint16_t DEFAULT
Default value.
Definition TLE92466ED_Registers.hpp:384
constexpr uint16_t V1V5_OV_TEST
1.5V OV test
Definition TLE92466ED_Registers.hpp:379
constexpr uint16_t VIO_SEL
VIO select (0=3.3V, 1=5V)
Definition TLE92466ED_Registers.hpp:382
constexpr uint16_t SPI_WD_EN
SPI watchdog enable.
Definition TLE92466ED_Registers.hpp:376
constexpr uint16_t UV_OV_SWAP
UV/OV swap test.
Definition TLE92466ED_Registers.hpp:381
constexpr uint16_t CRC_EN
CRC check enable.
Definition TLE92466ED_Registers.hpp:377
constexpr uint16_t OT_TEST
Over-temp test.
Definition TLE92466ED_Registers.hpp:380
constexpr uint16_t CLK_WD_EN
Clock watchdog enable.
Definition TLE92466ED_Registers.hpp:375
constexpr uint16_t V1V5_UV_TEST
1.5V UV test
Definition TLE92466ED_Registers.hpp:378
constexpr uint16_t COTERR
Central OT error.
Definition TLE92466ED_Registers.hpp:423
constexpr uint16_t FAULT_MASK
All fault bits.
Definition TLE92466ED_Registers.hpp:430
constexpr uint16_t VDD_UV
VDD undervoltage.
Definition TLE92466ED_Registers.hpp:420
constexpr uint16_t SPI_WD_ERR
SPI watchdog error.
Definition TLE92466ED_Registers.hpp:427
constexpr uint16_t VBAT_OV
VBAT overvoltage.
Definition TLE92466ED_Registers.hpp:417
constexpr uint16_t VBAT_UV
VBAT undervoltage.
Definition TLE92466ED_Registers.hpp:416
constexpr uint16_t DEFAULT
Default value.
Definition TLE92466ED_Registers.hpp:429
constexpr uint16_t POR_EVENT
Power-on reset.
Definition TLE92466ED_Registers.hpp:426
constexpr uint16_t CLK_NOK
Clock fault.
Definition TLE92466ED_Registers.hpp:422
constexpr uint16_t VDD_OV
VDD overvoltage.
Definition TLE92466ED_Registers.hpp:421
constexpr uint16_t VIO_UV
VIO undervoltage.
Definition TLE92466ED_Registers.hpp:418
constexpr uint16_t COTWARN
Central OT warning.
Definition TLE92466ED_Registers.hpp:424
constexpr uint16_t VIO_OV
VIO overvoltage.
Definition TLE92466ED_Registers.hpp:419
constexpr uint16_t RES_EVENT
Reset event.
Definition TLE92466ED_Registers.hpp:425
constexpr uint16_t DEFAULT
Default value.
Definition TLE92466ED_Registers.hpp:467
constexpr uint16_t VR_IREF_OV
Bias current OV.
Definition TLE92466ED_Registers.hpp:459
constexpr uint16_t VDD2V5_UV
2.5V supply UV
Definition TLE92466ED_Registers.hpp:460
constexpr uint16_t VPRE_OV
Pre-reg OV.
Definition TLE92466ED_Registers.hpp:464
constexpr uint16_t VDD2V5_OV
2.5V supply OV
Definition TLE92466ED_Registers.hpp:461
constexpr uint16_t REF_UV
Reference UV.
Definition TLE92466ED_Registers.hpp:462
constexpr uint16_t HVADC_ERR
HV ADC error.
Definition TLE92466ED_Registers.hpp:465
constexpr uint16_t REF_OV
Reference OV.
Definition TLE92466ED_Registers.hpp:463
constexpr uint16_t VR_IREF_UV
Bias current UV.
Definition TLE92466ED_Registers.hpp:458
constexpr uint16_t OTP_VIRGIN
OTP virgin/unconfigured.
Definition TLE92466ED_Registers.hpp:480
constexpr uint16_t DEFAULT
Default value.
Definition TLE92466ED_Registers.hpp:482
constexpr uint16_t REG_ECC_ERR
Register ECC error.
Definition TLE92466ED_Registers.hpp:478
constexpr uint16_t OTP_ECC_ERR
OTP ECC error.
Definition TLE92466ED_Registers.hpp:479
constexpr uint16_t AUTO_LIMIT_DIS
Disable auto-limit.
Definition TLE92466ED_Registers.hpp:538
constexpr uint16_t MAX_TARGET
Maximum safe target value (datasheet saturates above 0x6000)
Definition TLE92466ED_Registers.hpp:543
constexpr uint16_t calculate_current(uint16_t target, bool parallel_mode=false) noexcept
Calculate current from setpoint value.
Definition TLE92466ED_Registers.hpp:565
constexpr uint16_t TARGET_MASK
Target current mask.
Definition TLE92466ED_Registers.hpp:537
constexpr uint16_t calculate_target(uint16_t current_ma, bool parallel_mode=false) noexcept
Calculate setpoint value for desired current.
Definition TLE92466ED_Registers.hpp:551
constexpr uint16_t DEFAULT
Default (0A)
Definition TLE92466ED_Registers.hpp:540
Definition TLE92466ED.hpp:80
ChannelMode
Channel operation mode.
Definition TLE92466ED_Registers.hpp:754
@ DIRECT_DRIVE_DRV0
Direct drive via DRV0 pin.
@ DIRECT_DRIVE_DRV1
Direct drive via DRV1 pin.
@ FREE_RUN_MEAS
Free running measurement mode.
@ DIRECT_DRIVE_SPI
Direct drive via SPI TON register.
@ ICC
Integrated Current Control.
bool verify_frame_crc(const SPIFrame &frame) noexcept
Verify CRC in received frame.
Definition TLE92466ED_Registers.hpp:880
constexpr bool is_valid_channel(Channel ch) noexcept
Validate channel number.
Definition TLE92466ED_Registers.hpp:826
constexpr uint8_t to_index(Channel ch) noexcept
Convert channel to index.
Definition TLE92466ED_Registers.hpp:819
ReplyMode
SPI Reply Mode enumeration.
Definition TLE92466ED_Registers.hpp:123
@ REPLY_16BIT
16-bit reply frame
@ REPLY_22BIT
22-bit reply frame (extended data)
@ CRITICAL_FAULT
Critical fault frame.
Channel
Channel enumeration.
Definition TLE92466ED_Registers.hpp:740
@ COUNT
Total number of channels.
constexpr uint8_t calculate_crc8_j1850(const uint8_t *data, size_t length) noexcept
Calculate SAE J1850 CRC-8.
Definition TLE92466ED_Registers.hpp:846
ParallelPair
Parallel operation pairs.
Definition TLE92466ED_Registers.hpp:786
@ CH4_CH5
Channels 4 and 5 paralleled.
@ CH1_CH2
Channels 1 and 2 paralleled.
@ NONE
No parallel operation.
@ CH0_CH3
Channels 0 and 3 paralleled.
SPIStatus
SPI Status codes.
Definition TLE92466ED_Registers.hpp:133
@ SPI_FRAME_ERROR
SPI frame error.
@ INTERNAL_BUS_FAULT
Internal bus fault.
@ WRITE_RO_REG
Write to read-only register.
@ CRC_ERROR
Parity/CRC error.
SlewRate
Slew rate enumeration.
Definition TLE92466ED_Registers.hpp:766
@ FASTEST_10V0_US
10.0 V/µs
uint8_t calculate_frame_crc(const SPIFrame &frame) noexcept
Calculate CRC for SPI frame.
Definition TLE92466ED_Registers.hpp:869
DiagCurrent
OFF-state diagnostic current.
Definition TLE92466ED_Registers.hpp:776
constexpr uint16_t get_channel_register(Channel channel, uint16_t offset) noexcept
Get channel register address.
Definition TLE92466ED_Registers.hpp:812
constexpr uint16_t get_channel_base(Channel channel) noexcept
Get channel base address.
Definition TLE92466ED_Registers.hpp:802
32-bit SPI frame structure for TLE92466ED communication
Definition TLE92466ED_Registers.hpp:68
uint32_t reply_mode
Reply mode [23:22].
Definition TLE92466ED_Registers.hpp:84
static constexpr SPIFrame make_read(uint16_t addr) noexcept
Construct read frame (without CRC - must be calculated separately)
Definition TLE92466ED_Registers.hpp:93
uint32_t rw
Read/Write bit [16] (1=Write, 0=Read)
Definition TLE92466ED_Registers.hpp:74
struct TLE92466ED::SPIFrame::@1 rx_fields
MISO (Receive) frame structure.
static constexpr SPIFrame make_write(uint16_t addr, uint16_t data) noexcept
Construct write frame (without CRC - must be calculated separately)
Definition TLE92466ED_Registers.hpp:108
uint32_t rw_echo
R/W bit echoed [16].
Definition TLE92466ED_Registers.hpp:82
uint32_t address
Register address [23:17].
Definition TLE92466ED_Registers.hpp:75
uint32_t status
Status bits [21:17].
Definition TLE92466ED_Registers.hpp:83
uint32_t word
Complete 32-bit frame.
Definition TLE92466ED_Registers.hpp:69
struct TLE92466ED::SPIFrame::@0 tx_fields
MOSI (Transmit) frame structure.
uint32_t crc
CRC-8 SAE J1850 [31:24].
Definition TLE92466ED_Registers.hpp:76
uint32_t data
Data field [15:0].
Definition TLE92466ED_Registers.hpp:73