Solenoid Control Test - TLE92466ED ESP32-C6
Table of Contents
- Overview
- Purpose
- Hardware Requirements
- System Architecture
- Hardware Setup
- Configuration
- Building and Running
- Operation
- Real-Time Telemetry
- Control Algorithm
- Troubleshooting
- Performance Characteristics
- Safety Considerations
- Related Documentation
Overview
The Solenoid Control Test is a real hardware test application that demonstrates actual solenoid control using the TLE92466ED driver. This test uses ADC-based current control where an analog voltage input (0-3.3V) controls the current setpoint for two solenoids, with real-time telemetry monitoring.
Key Features
- Real Hardware Testing: Tests actual solenoids, not just driver logic
- ADC-Based Control: Analog voltage input (0-3.3V) maps to current percentage (0-100%)
- Dual Solenoid Setup: One single channel, one parallel pair
- Independent Current Ranges: Each solenoid has different min/max but same percentage mapping
- Real-Time Telemetry: Monitoring every 1 second
- Continuous Operation: Runs indefinitely until reset
Test Configuration
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Solenoid Configuration β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β Solenoid 1 (Single Channel): β
β ββ Channel: CH0 β
β ββ Mode: Single Channel (ICC) β
β ββ Current Range: 200-1500 mA β
β ββ Percentage Mapping: 0-100% β 200-1500 mA β
β β
β Solenoid 2 (Parallel Pair): β
β ββ Channels: CH1/CH2 (Parallel) β
β ββ Mode: Parallel Pair (ICC) β
β ββ Current Range: 400-3000 mA β
β ββ Percentage Mapping: 0-100% β 400-3000 mA β
β β
β Control Input: β
β ββ ADC Pin: GPIO0 (ADC1_CH0) β
β ββ Voltage Range: 0-3.3V β
β ββ Maps to: 0-100% current for both solenoids β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Purpose
This test serves multiple purposes:
- Real Hardware Validation: Tests actual solenoid operation with real loads
- Parallel Operation Verification: Validates parallel channel pairing works correctly
- Current Control Accuracy: Tests current regulation with real solenoids
- Telemetry Validation: Demonstrates real-time monitoring capabilities
- System Integration: Tests complete system from ADC input to solenoid output
- Performance Evaluation: Measures actual current regulation accuracy
Note: This test requires actual solenoids and proper power supplies. For driver-only testing without hardware, use the Driver Integration Test.
Hardware Requirements
Required Components
- ESP32-C6-DevKitC-1 development board
- TLE92466ED evaluation board or custom PCB
- Two Solenoids with appropriate current ratings:
- Solenoid 1: 200-1500mA range
- Solenoid 2: 400-3000mA range (parallel pair)
- 5.5-41V Power Supply for VBAT (5A+ recommended for parallel operation, typical: 12V or 24V automotive)
- 3.0-5.5V Power Supply for VIO (I/O level supply for SPI, typical: 3.3V or 5.0V)
- 5V Power Supply for VDD (internal logic supply) - Required for IC operation
- ADC Control Source: Potentiometer, DAC, or voltage source (0-3.3V)
- Current Sense Resistors (if using external current monitoring)
- Oscilloscope/Logic Analyzer (optional, for signal analysis)
- Connecting wires and appropriate connectors
Power Supply Requirements
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Power Supply Specifications β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β VDD (Internal Logic Supply): β
β ββ Voltage: 5V input to TLE92466ED β
β ββ Purpose: Powers central logic of the IC β
β ββ Required: YES (for IC operation) β
β β
β VIO (I/O Level Supply): β
β ββ Voltage: 3.0V to 5.5V (input) β
β ββ Purpose: Sets I/O voltage levels for SPI β
β ββ Typical: 3.3V or 5.0V β
β ββ Current: 10-20mA β
β ββ Required: YES (for SPI communication) β
β β
β VBAT (Load Supply): β
β ββ Voltage: 5.5V to 41V (recommended operating) β
β ββ Typical: 12V or 24V automotive β
β ββ Current: 5A+ (for parallel operation) β
β ββ Required: YES (for solenoid operation) β
β ββ Note: Must be capable of supplying peak currents β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Solenoid Specifications
Solenoid 1 (Single Channel):
- Recommended current range: 200-1500mA
- Typical resistance: 6-120Ξ©
- Power rating: 2.4-18W at 12V
- Must be rated for continuous operation
Solenoid 2 (Parallel Pair):
- Recommended current range: 400-3000mA
- Typical resistance: 3-60Ξ© (combined)
- Power rating: 4.8-36W at 12V
- Must be rated for continuous operation
- Requires proper current sharing between CH1 and CH2
System Architecture
Block Diagram
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β System Architecture β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β ββββββββββββββββ ββββββββββββββββββββ β
β β Control β β ESP32-C6 β β
β β Source β β β β
β β β β ββββββββββββββββ β β
β β Pot/DAC βββββββββ>β β ADC (GPIO0) β β β
β β 0-3.3V β β ββββββββ¬ββββββββ β β
β ββββββββββββββββ β β β β
β β βΌ β β
β β ββββββββββββββββ β β
β β β Control β β β
β β β Logic β β β
β β ββββββββ¬ββββββββ β β
β β β β β
β β βΌ β β
β β ββββββββββββββββ β β
β β β TLE92466ED β β β
β β β Driver β β β
β β ββββββββ¬ββββββββ β β
β βββββββββββΌβββββββββββ β
β β β
β βββββββββββ΄βββββββββββ β
β β β β
β βββββββββΌββββββββ βββββββββΌββββββββ β
β β TLE92466ED β β TLE92466ED β β
β β IC β β IC β β
β βββββββββ¬ββββββββ βββββββββ¬ββββββββ β
β β β β
β βββββββββΌββββββββ βββββββββΌββββββββ β
β β Solenoid 1 β β Solenoid 2 β β
β β (CH0) β β (CH1/CH2) β β
β β 200-1500mA β β 400-3000mA β β
β βββββββββββββββββ βββββββββββββββββ β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Control Flow
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Control Flow Diagram β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β 1. ADC Reading (100ms) β
β ββ> Read GPIO0 voltage (0-3.3V) β
β ββ> Convert to percentage (0-100%) β
β β
β 2. Current Calculation β
β ββ> Solenoid 1: percentage β 200-1500mA β
β ββ> Solenoid 2: percentage β 400-3000mA β
β β
β 3. Current Update β
β ββ> SetCurrentSetpoint(Solenoid 1) β
β ββ> SetCurrentSetpoint(Solenoid 2) β
β β
β 4. Telemetry Collection (1 second) β
β ββ> Read device status β
β ββ> Read channel diagnostics β
β ββ> Read voltages (VBAT, VIO) β
β ββ> Read currents (setpoint, actual) β
β ββ> Read duty cycles β
β ββ> Check faults and warnings β
β β
β 5. Display Telemetry β
β ββ> Format and print status β
β β
β Loop: Steps 1-5 repeat continuously β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Hardware Setup
Complete Wiring Diagram
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Complete Wiring β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β ESP32-C6 TLE92466ED β
β ββββββββ ββββββββββ β
β β
β GPIO2 βββββββββββββββββββ> MISO β
β GPIO7 βββββββββββββββββββ> MOSI β
β GPIO6 βββββββββββββββββββ> SCLK β
β GPIO18 βββββββββββββββββββ> CS β
β GPIO21 βββββββββββββββββββ> RESN β
β GPIO20 βββββββββββββββββββ> EN β
β GPIO19 <βββββββββββββββββββ FAULTN β
β GPIO0 <βββββββββββββββββββ [ADC Input] β
β β
β 5V βββββββββββββββββββ> VDD β
β 3.3V βββββββββββββββββββ> VIO β
β GND βββββββββββββββββββ> GND β
β β
β External Supply TLE92466ED β
β βββββββββββββββ ββββββββββ β
β β
β 5.5-41V (12-24V typical) ββ> VBAT β
β GND βββββββββββββββββββ> GND β
β β
β Solenoid 1 TLE92466ED β
β ββββββββββ ββββββββββ β
β β
β Solenoid+ ββββββββββββββββ> OUT0 (CH0) β
β Solenoid- ββββββββββββββββ> GND (via sense) β
β β
β Solenoid 2 TLE92466ED β
β ββββββββββ ββββββββββ β
β β
β Solenoid+ ββββββββββββββββ> OUT1 (CH1) βββ β
β βββββββββββββββββββΌββ> OUT2 (CH2) β
β β β β
β Solenoid- βββββββββββββββ΄ββββββββββββββββββ΄ββ> GND (via sense) β
β β
β Control Source ESP32-C6 β
β ββββββββββββββ ββββββββ β
β β
β Potentiometer: β
β 3.3V ββ[R1]βββ GPIO0 ββ[R2]βββ GND β
β (or DAC, voltage source, etc.) β
β β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Pin Assignment Table
| Function | ESP32-C6 GPIO | TLE92466ED Pin | Direction | Notes |
|---|---|---|---|---|
| SPI MISO | GPIO2 | MISO | Input | Data from TLE92466ED |
| SPI MOSI | GPIO7 | MOSI | Output | Data to TLE92466ED |
| SPI SCLK | GPIO6 | SCLK | Output | 1MHz SPI Clock |
| SPI CS | GPIO18 | CS | Output | Active Low |
| RESN | GPIO21 | RESN | Output | Reset pin (active low, must be HIGH) |
| EN | GPIO20 | EN | Output | Enable pin (active high) |
| FAULTN | GPIO19 | FAULTN | Input | Fault pin (active low) |
| ADC Input | GPIO0 | - | Input | Control voltage (0-3.3V) |
| VDD Supply | 5V | VDD | Power | 5V (Required) |
| VIO Supply | 3.3V/5V | VIO | Power | 3.0-5.5V (Required) |
| Load Supply | 12-24V typical | VBAT | Power | 5.5-41V, 5A+ recommended (Required) |
| Ground | GND | GND | Ground | Common reference |
Solenoid Connections
Solenoid 1 (Single Channel - CH0):
1
2
Solenoid Terminal+ ββββ> TLE92466ED OUT0
Solenoid Terminal- ββββ> GND (via current sense resistor if used)
Solenoid 2 (Parallel Pair - CH1/CH2):
1
2
3
Solenoid Terminal+ βββββ¬βββ> TLE92466ED OUT1 (CH1)
ββββ> TLE92466ED OUT2 (CH2)
Solenoid Terminal- ββββ> GND (via current sense resistor if used)
Important Notes:
- Both channels in parallel pair must be connected to the same solenoid
- Ensure proper current sharing between CH1 and CH2
- Use appropriate wire gauge for high currents (parallel operation)
- Add current sense resistors if external current monitoring is desired
ADC Control Input Setup
Option 1: Potentiometer
1
2
3
3.3V ββ[10kΞ© Pot]ββ GPIO0
β
GND
Option 2: DAC Output
1
DAC Output (0-3.3V) ββ> GPIO0
Option 3: Voltage Source
1
Variable Voltage Source (0-3.3V) ββ> GPIO0
ADC Configuration:
- Pin: GPIO0 (ADC1_CH0)
- Range: 0-3.3V
- Resolution: 12-bit (0-4095)
- Attenuation: 12dB (full range)
- Sampling: 1kHz
Configuration
Solenoid Configuration (main/SolenoidControlTest.cpp)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/**
* @brief Solenoid 1 Configuration (Single Channel)
*/
struct Solenoid1Config {
static constexpr Channel CHANNEL = Channel::CH0; // Single channel
static constexpr uint16_t MIN_CURRENT_MA = 200; // Minimum current (mA)
static constexpr uint16_t MAX_CURRENT_MA = 1500; // Maximum current (mA)
static constexpr bool PARALLEL_MODE = false; // Single channel mode
};
/**
* @brief Solenoid 2 Configuration (Parallel Pair)
*/
struct Solenoid2Config {
static constexpr ParallelPair PAIR = ParallelPair::CH1_CH2; // Parallel pair
static constexpr Channel PRIMARY_CHANNEL = Channel::CH1; // Primary channel
static constexpr uint16_t MIN_CURRENT_MA = 400; // Minimum current (mA)
static constexpr uint16_t MAX_CURRENT_MA = 3000; // Maximum current (mA)
static constexpr bool PARALLEL_MODE = true; // Parallel mode
};
To modify solenoid configuration: Edit these structs in main/SolenoidControlTest.cpp
ADC Configuration
1
2
3
4
5
6
7
8
9
10
11
12
/**
* @brief ADC Configuration
*/
struct ADCConfig {
static constexpr adc_unit_t UNIT = ADC_UNIT_1; // ADC unit (ADC1)
static constexpr adc_channel_t CHANNEL = ADC_CHANNEL_0; // ADC channel (GPIO0)
static constexpr adc_atten_t ATTEN = ADC_ATTEN_DB_12; // 0-3.3V range
static constexpr adc_bitwidth_t BITWIDTH = ADC_BITWIDTH_12; // 12-bit resolution
static constexpr float VREF_MV = 3300.0f; // Reference voltage (3.3V)
static constexpr float ADC_MAX = 4095.0f; // Maximum ADC value
static constexpr int GPIO_PIN = 0; // GPIO pin number
};
To change ADC pin: Modify CHANNEL and GPIO_PIN (ensure GPIO supports ADC)
Control Loop Timing
1
2
const TickType_t update_interval = pdMS_TO_TICKS(100); // 100ms current update
const TickType_t telemetry_interval = pdMS_TO_TICKS(1000); // 1 second telemetry
To modify timing: Edit these constants in main/SolenoidControlTest.cpp
Building and Running
Quick Start
1
2
3
4
5
6
7
8
9
10
cd examples/esp32
# Build the solenoid control test
./scripts/build_app.sh solenoid_control_test Debug
# Flash to ESP32-C6
./scripts/flash_app.sh solenoid_control_test Debug
# Monitor output
./scripts/monitor_app.sh solenoid_control_test
Manual Build
1
2
3
4
5
6
7
8
9
10
11
12
13
cd examples/esp32
# Set target
idf.py set-target esp32c6
# Build with APP_TYPE=solenoid_control_test
idf.py -DAPP_TYPE=solenoid_control_test build
# Flash
idf.py -p /dev/ttyUSB0 flash
# Monitor
idf.py -p /dev/ttyUSB0 monitor
Build Requirements
The solenoid control test requires the esp_adc component, which is automatically added by CMake when APP_TYPE=solenoid_control_test.
Operation
Startup Sequence
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Startup Sequence β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β 1. Initialize HAL β
β ββ> Create Esp32TleCommInterface β
β ββ> Initialize SPI bus β
β ββ> Configure GPIO pins β
β β
β 2. Initialize Driver β
β ββ> Create tle92466ed::Driver instance β
β ββ> Call Init() (resets device, verifies communication) β
β β
β 3. Initialize ADC β
β ββ> Configure ADC1 channel 0 (GPIO0) β
β ββ> Set attenuation for 0-3.3V range β
β ββ> Enable calibration (if available) β
β β
β 4. Configure Solenoids β
β ββ> Enter Config Mode β
β ββ> Set Solenoid 1 to ICC mode (CH0) β
β ββ> Enable parallel operation for Solenoid 2 (CH1/CH2) β
β ββ> Set Solenoid 2 to ICC mode (CH1) β
β ββ> Enter Mission Mode β
β ββ> Enable outputs (EN pin) β
β β
β 5. Enable Solenoids β
β ββ> Enable CH0 (Solenoid 1) β
β ββ> Enable CH1 (Solenoid 2, enables both in parallel) β
β β
β 6. Start Control Loop β
β ββ> Continuous operation begins β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Control Loop Operation
The control loop runs continuously with the following timing:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Control Loop Timing β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β Every 100ms: β
β ββ> Read ADC voltage (GPIO0) β
β ββ> Convert to percentage (0-100%) β
β ββ> Calculate currents for both solenoids β
β ββ> Update current setpoints β
β β
β Every 1 second: β
β ββ> Collect telemetry β
β ββ> Display formatted telemetry report β
β β
β Continuous: β
β ββ> Monitor for faults β
β ββ> Update currents based on ADC β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Current Calculation
The ADC reading (0-3.3V) is mapped to a percentage (0-100%), which is then used to calculate the current for each solenoid:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Current Calculation Formula β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β Step 1: ADC to Percentage β
β percentage = (ADC_voltage / 3.3V) Γ 100% β
β β
β Step 2: Percentage to Current β
β Solenoid 1: β
β current = 200mA + (1500mA - 200mA) Γ (percentage/100) β
β Range: 200-1500mA β
β β
β Solenoid 2: β
β current = 400mA + (3000mA - 400mA) Γ (percentage/100) β
β Range: 400-3000mA β
β β
β Example: β
β ADC = 1.65V (50%) β
β Solenoid 1: 200 + (1500-200)Γ0.5 = 850mA β
β Solenoid 2: 400 + (3000-400)Γ0.5 = 1700mA β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Real-Time Telemetry
Telemetry Display Format
Every 1 second, the system displays telemetry:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β REAL-TIME TELEMETRY β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ£
ADC Input: 1650.0 mV (50.0%)
Target Currents: Solenoid 1=850 mA, Solenoid 2=1700 mA
Device Status:
Mode: Mission | Init: Done | Fault Pin: OK
VBAT: 12000 mV | VIO: 3300 mV
Solenoid 1 (CH0):
Setpoint: 850 mA | Actual: 845 mA | Duty: 16384 (0x4000)
Current Error: -5 mA (-0.6%)
β
Status: Normal
Solenoid 2 (CH1):
Setpoint: 1700 mA | Actual: 1695 mA | Duty: 32768 (0x8000)
Current Error: -5 mA (-0.3%)
β
Status: Normal
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Telemetry Data Explained
Device-Level Telemetry
- Mode: Current device mode (Config or Mission)
- Init: Initialization status (Done or Pending)
- Fault Pin: Hardware fault pin state (OK or FAULT)
- VBAT: VBAT supply voltage in millivolts
- VIO: VIO supply voltage in millivolts
- Device Faults: Any global fault conditions (UV/OV, temperature, clock, etc.)
Per-Solenoid Telemetry
- Setpoint: Target current in milliamperes
- Actual: Measured average current in milliamperes
- Duty: PWM duty cycle (raw 16-bit value and hex)
- Current Error: Difference between setpoint and actual (mA and percentage)
- Faults: Channel-specific fault conditions
- Warnings: Channel-specific warning conditions
- Status: Overall channel status (Normal or with faults/warnings)
Telemetry Interpretation
Normal Operation
1
β
Status: Normal
- No faults or warnings detected
- Current regulation working correctly
- All systems operational
Current Error Analysis
1
Current Error: -5 mA (-0.6%)
- Negative error: Actual current is less than setpoint
- Positive error: Actual current is greater than setpoint
- Small errors (<5%): Normal for current regulation
- Large errors (>10%): May indicate load mismatch or regulation issues
Fault Conditions
1
2
3
4
β οΈ Faults:
- Over-current
- Short to Ground
- Open Load
- Over-current: Load drawing more than expected
- Short to Ground: Load or wiring shorted
- Open Load: No load connected or connection issue
- Over-temperature: IC or load overheating
Warning Conditions
1
2
3
β οΈ Warnings:
- Current Regulation Warning
- PWM Regulation Warning
- Current Regulation Warning: Current regulation may be at limits
- PWM Regulation Warning: PWM may be saturated
- OT Warning: Approaching temperature limits
Control Algorithm
Current Control Flow
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Current Control Algorithm β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β 1. ADC Reading β
β Input: GPIO0 voltage (0-3.3V) β
β Process: 12-bit ADC conversion β
β Output: Raw ADC value (0-4095) β
β β
β 2. Voltage Calculation β
β Input: Raw ADC value β
β Process: Convert to voltage (with calibration) β
β Output: Voltage in millivolts (0-3300mV) β
β β
β 3. Percentage Calculation β
β Input: Voltage (mV) β
β Process: percentage = (voltage / 3300) Γ 100 β
β Output: Percentage (0.0-100.0%) β
β β
β 4. Current Calculation (Per Solenoid) β
β Input: Percentage β
β Process: β
β current = min + (max - min) Γ (percentage / 100) β
β Output: Current in milliamperes β
β β
β 5. Current Update β
β Input: Calculated current β
β Process: SetCurrentSetpoint(channel, current) β
β Output: Current setpoint updated in TLE92466ED β
β β
β 6. Current Regulation (TLE92466ED) β
β Input: Current setpoint β
β Process: ICC (Integrated Current Control) β
β Output: Regulated current to solenoid β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Parallel Operation
For Solenoid 2 (parallel pair), the current is set on the primary channel (CH1), and the TLE92466ED automatically shares the current between CH1 and CH2:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Parallel Channel Current Sharing β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β Setpoint: 1700mA (on CH1) β
β β
β TLE92466ED automatically: β
β ββ> Shares current between CH1 and CH2 β
β ββ> Each channel: ~850mA β
β ββ> Total: ~1700mA to solenoid β
β β
β Current Sharing: β
β ββ> Automatic balancing by TLE92466ED β
β ββ> No manual current splitting required β
β ββ> Both channels must be enabled β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Troubleshooting
Common Issues
1. Solenoids Not Responding β
Symptom: No current flow, solenoids not activating
Root Causes:
- VBAT not connected or insufficient voltage
- EN pin not enabled
- Channels not enabled
- Device not in Mission Mode
- Solenoid wiring incorrect
Solutions:
1
2
3
4
5
6
7
Checklist:
β‘ VBAT: 5.5-41V connected (typical 12-24V) and sufficient current capacity
β‘ EN pin: HIGH (outputs enabled)
β‘ Channels: Enabled via EnableChannel()
β‘ Mode: Mission Mode (EnterMissionMode())
β‘ Wiring: Solenoid+ to OUT, Solenoid- to GND
β‘ RESN: HIGH (not in reset)
2. Current Not Regulating Correctly β οΈ
Symptom: Actual current doesnβt match setpoint
Root Causes:
- Load resistance mismatch
- Power supply voltage too low
- Current limits exceeded
- Solenoid resistance out of range
Solutions:
1
2
3
4
5
6
7
8
9
10
11
1. Check load resistance:
- Solenoid 1: R = VBAT / I_max = 12V / 1.5A = 8Ξ© minimum
- Solenoid 2: R = VBAT / I_max = 12V / 3.0A = 4Ξ© minimum
2. Verify power supply:
- VBAT voltage: 5.5V to 41V (typical 12-24V)
- Current capacity: 5A+ for parallel operation
3. Check telemetry:
- Current error should be <5% for good regulation
- Duty cycle should be <90% for headroom
3. ADC Reading Incorrect β οΈ
Symptom: ADC voltage doesnβt match control source
Root Causes:
- ADC pin not connected correctly
- Control source voltage out of range
- ADC calibration issue
- GPIO pin conflict
Solutions:
1
2
3
4
5
6
7
8
9
10
11
1. Verify connections:
- Control source connected to GPIO0
- Ground reference common
2. Check voltage range:
- Must be 0-3.3V
- Use voltage divider if needed
3. Verify ADC configuration:
- GPIO0 supports ADC1_CH0
- Attenuation set to 12dB (full range)
4. Parallel Operation Not Working β
Symptom: Solenoid 2 not working or current not shared
Root Causes:
- Parallel operation not enabled
- Only one channel enabled
- Wiring incorrect
- Current sharing imbalance
Solutions:
1
2
3
4
5
6
7
8
9
10
11
12
13
1. Verify configuration:
- SetParallelOperation(CH1_CH2, true) called
- Both CH1 and CH2 enabled (enabling CH1 enables both)
- Device in Config Mode when configuring
2. Check wiring:
- Solenoid+ connected to BOTH OUT1 and OUT2
- Solenoid- connected to GND
- Proper wire gauge for high current
3. Monitor telemetry:
- Check diagnostics for both channels
- Verify current is being shared
5. Faults Detected β οΈ
Symptom: Telemetry shows faults or warnings
Over-current:
- Load drawing too much current
- Reduce setpoint or check load resistance
- Verify power supply can deliver required current
Short to Ground:
- Load or wiring shorted
- Check continuity
- Inspect for solder bridges or damaged wiring
Open Load:
- No load connected (expected if testing without solenoid)
- Loose connection
- Load resistance too high
Over-temperature:
- IC or load overheating
- Add heatsink
- Reduce duty cycle
- Lower ambient temperature
- Check for adequate airflow
Performance Characteristics
Control Loop Performance
| Parameter | Value | Notes |
|---|---|---|
| Current Update Rate | 10 Hz (100ms) | Fast enough for smooth control |
| Telemetry Update Rate | 1 Hz (1 second) | Status display |
| ADC Sampling Rate | 1 kHz | 12-bit resolution |
| Current Regulation Response | <100ms | TLE92466ED ICC response time |
| Telemetry Latency | <50ms | Time to read all telemetry |
Current Regulation Accuracy
| Condition | Typical Error | Maximum Error |
|---|---|---|
| Normal Operation | Β±2-5% | Β±10% |
| Low Current (<500mA) | Β±5-10% | Β±15% |
| High Current (>1000mA) | Β±2-5% | Β±10% |
| Parallel Operation | Β±3-7% | Β±12% |
Note: Accuracy depends on load characteristics, power supply stability, and temperature.
Power Consumption
| Component | Typical Current | Notes |
|---|---|---|
| ESP32-C6 (Idle) | 20-30mA | Without WiFi/BLE |
| ESP32-C6 (Active) | 50-80mA | During operation |
| TLE92466ED (VDD) | - | 5V input (powers central logic) |
| TLE92466ED (VIO) | 10-20mA | I/O level supply (for SPI) |
| Solenoid 1 (Max) | 1500mA | At maximum setpoint |
| Solenoid 2 (Max) | 3000mA | At maximum setpoint (parallel) |
Safety Considerations
Electrical Safety
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Safety Guidelines β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β β οΈ HIGH VOLTAGE WARNING β
β ββ> VBAT can be up to 41V (recommended operating) β
β ββ> Use appropriate safety measures β
β ββ> Ensure proper grounding β
β β
β β οΈ HIGH CURRENT WARNING β
β ββ> Parallel operation can draw 3A+ β
β ββ> Use appropriate wire gauge β
β ββ> Ensure connectors are rated for current β
β β
β β οΈ THERMAL CONSIDERATIONS β
β ββ> TLE92466ED can get hot during operation β
β ββ> Add heatsink if needed β
β ββ> Monitor temperature via telemetry β
β β
β β οΈ SHORT CIRCUIT PROTECTION β
β ββ> TLE92466ED has built-in protection β
β ββ> Monitor FAULTN pin β
β ββ> Check telemetry for fault conditions β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Operational Safety
- Start with Low Currents: Begin testing at minimum current setpoints
- Monitor Telemetry: Watch for faults and warnings
- Check Temperatures: Ensure adequate cooling
- Verify Wiring: Double-check all connections before powering on
- Use Fuses: Add appropriate fuses in power supply lines
- Emergency Stop: Have a way to quickly disable power (EN pin or power supply)
Related Documentation
ESP32 Examples
- Driver Integration Test - Driver API validation (no hardware)
- Test Framework Reference - Framework API
- Hardware Configuration - Pin and parameter config
- ESP32-C6 CommInterface - CommInterface implementation
Driver Documentation
- Driver API Reference - Complete API documentation
- CommInterface Implementation Guide - Porting to new platforms
- Register Map - TLE92466ED register details
- Diagnostics - Fault detection and handling
Hardware Documentation
- TLE92466ED Datasheet - Complete IC specifications
- ESP32-C6 Technical Reference - MCU documentation
Notes
- This test requires actual solenoids and proper power supplies
- VBAT is required for solenoid operation (unlike driver integration test)
- Both solenoids use the same ADC percentage but different current ranges
- Parallel operation automatically shares current between channels
- Telemetry updates every 1 second
- Control loop updates every 100ms for responsive current control
- The test runs continuously until reset or power cycle
Example: Solenoid Control Test
Platform: ESP32-C6
Framework: FreeRTOS
Status: β
Production Ready
Hardware Required: TLE92466ED IC + Two Solenoids + Power Supplies