Troubleshooting
This guide helps you diagnose and resolve common issues when using the TLE92466ED driver.
Common Error Messages
Error: Initialization Failed
Symptoms:
Init()returnsDriverError::NotInitializedorDriverError::DeviceNotResponding- Driver not responding to SPI
Causes:
- SPI interface not properly initialized
- Hardware connections incorrect
- Power supply issues
- RESN pin held low
Solutions:
- Verify SPI Interface: Ensure SPI interface is initialized before creating driver
- Check Connections: Verify all SPI connections (SCK, SI, SO, CSN)
- Verify Power: Check power supply voltages (VBAT: 5.5V-41V, VIO: 3.0V-5.5V)
- Check RESN Pin: Ensure RESN is released (HIGH) for SPI communication
- Verify SPI Mode: Ensure SPI Mode 1 (CPOL=0, CPHA=1)
- Check SPI Speed: Try lower SPI speed (e.g., 1 MHz)
Error: Communication Error / CRC Error
Symptoms:
DriverError::CRCErrororDriverError::SPIFrameErrorreturned- No response from device
- CRC mismatches
Causes:
- SPI configuration incorrect
- Signal integrity issues
- CS timing problems
- CRC calculation mismatch
Solutions:
- Check SPI Mode: Ensure SPI Mode 1 (CPOL=0, CPHA=1)
- Verify Speed: Try lower SPI speed (e.g., 1 MHz, max 10 MHz)
- Check CS Timing: Verify CS assertion/deassertion timing
- Verify Connections: Check all SPI connections are secure
- Check CRC: Verify CRC-8 (SAE J1850) calculation matches device
- Check Frame Format: Ensure 32-bit frames are used
Error: Channel Not Working
Symptoms:
- Channel enabled but no output
- Current not flowing
- No voltage on OUTx pin
Causes:
- Channel not properly configured
- Channel not enabled
- Load not connected correctly
- Fault condition
- Wrong mode (Config vs Mission)
Solutions:
- Check Mode: Ensure in Mission Mode (
EnterMissionMode()) - Check Configuration: Verify channel configuration is correct
- Check Enable State: Ensure channel is enabled via
EnableChannel() - Verify Load: Check load connections (OUTx to load, load to VBAT)
- Check Faults: Read fault status to identify issues
- Check Channel Mode: Ensure channel mode is set (e.g., ICC mode)
Error: Overcurrent Protection
Symptoms:
ChannelDiagnostics.overcurrentis true- Channel disabled automatically
- Current reading shows fault
Causes:
- Load current exceeds limits
- Short circuit
- Incorrect current settings
- Parallel mode not configured correctly
Solutions:
- Check Load: Verify load is within specifications (2A max single, 4A parallel)
- Reduce Current: Lower current setpoint
- Check for Shorts: Verify no short circuits in wiring
- Clear Fault: Read diagnostics to clear, then reconfigure
- Check Parallel Mode: If using parallel, ensure
SetParallelOperation()called
Error: Open Load Detection
Symptoms:
ChannelDiagnostics.open_loadis true- No current flow
- Load not detected
Causes:
- Load not connected
- Broken connection
- Load impedance too high
- Open load threshold too sensitive
Solutions:
- Check Connections: Verify load is properly connected
- Check Wiring: Inspect for broken wires
- Verify Load: Ensure load impedance is appropriate
- Adjust Threshold: Increase open load threshold if false positives
Error: Wrong Mode
Symptoms:
DriverError::WrongModereturned- Operation not allowed
Causes:
- Attempting channel control in Config Mode
- Attempting configuration in Mission Mode
- Mode transition not completed
Solutions:
- Check Current Mode: Use
IsMissionMode()orIsConfigMode() - Enter Correct Mode:
- For channel control:
EnterMissionMode() - For configuration:
EnterConfigMode()
- For channel control:
- Wait for Transition: Allow time for mode transition to complete
Error: Invalid Parameter
Symptoms:
DriverError::InvalidParameterreturned- Invalid channel number
- Parameter out of range
Causes:
- Channel number out of range (must be 0-5)
- Current value out of range
- Invalid configuration values
Solutions:
- Check Channel Number: Use
Channel::CH0throughChannel::CH5 - Check Current Range:
- Single mode: 0-2000 mA
- Parallel mode: 0-4000 mA
- Verify Parameters: Check all configuration values are within valid ranges
Error: Device Not Responding
Symptoms:
DriverError::DeviceNotRespondingreturned- No SPI response
- Timeout errors
Causes:
- SPI bus not working
- Device not powered
- CS line issue
- RESN pin held low
Solutions:
- Check Power: Verify VBAT and VIO are within range
- Check RESN: Ensure RESN is HIGH (not in reset)
- Check CS: Verify CS line is properly controlled
- Check SPI Bus: Test SPI bus with simple read/write
- Check Connections: Verify all SPI connections
Error: Wrong Device ID
Symptoms:
DriverError::WrongDeviceIDreturned- Device ID mismatch
Causes:
- Wrong device connected
- Device not fully powered up
- Communication error
Solutions:
- Verify Device: Check that TLE92466ED is connected
- Wait for Power-Up: Allow time for device power-up
- Check Communication: Verify SPI communication is working
- Read ID Manually: Use
GetIcVersion()to check device ID
Debugging Tips
Enable Logging
cpp
// Enable driver logging (if supported by your SPI interface)
hal->SetLogLevel(tle92466ed::LogLevel::Debug);
cpp
Read Device Status
cpp
if (auto status = driver.GetDeviceStatus(); status) {
printf("Config Mode: %d\n", status->config_mode);
printf("Init Done: %d\n", status->init_done);
printf("Any Fault: %d\n", status->any_fault);
}
cpp
Read All Faults
cpp
if (auto faults = driver.GetAllFaults(); faults) {
driver.PrintAllFaults(); // Prints formatted fault report
}
cpp
Verify Device
cpp
if (auto verified = driver.VerifyDevice(); verified && *verified) {
printf("Device verified\n");
} else {
printf("Device verification failed\n");
}
text
Common Configuration Mistakes
- Forgetting to Enter Mission Mode: Channels can only be enabled in Mission Mode
- Configuring in Wrong Mode: Channel configuration requires Config Mode
- Not Setting Channel Mode: Must set channel mode before setting current
- Parallel Mode Mismatch: Forgetting to set
parallel_mode = truewhen using parallel pairs - Current Out of Range: Setting current above 2000mA in single mode
Next Steps
- Review Hardware Setup for wiring verification
- Check Platform Integration for SPI interface issues
- See Examples for working code samples
Navigation ⬅️ Examples | Back to Index