To evaluate the Audio-to-Haptic performance, a
test bench was set up using the DRV2605L and a representative LRA actuator. The
hardware consisted of a TI DRV2605LEVM-MD evaluation module (which includes the
DRV2605L driver and an LRA on a small board) connected to a host controller. In a
real product, the host can be an application processor or microcontroller in the
hand-held console. Audio was fed into the DRV2605L and the LRA’s vibration output
was observed under various conditions. Key aspects of the setup and configuration
included:
- Audio Input and Coupling: An audio codec
or signal generator provided an analog audio signal into the DRV2605L’s IN pin.
The input was AC-coupled through a 1µF capacitor in series (as recommended) to
block any DC offset and allow the AC audio through. The DRV2605L’s input
impedance (about 100kΩ) and the 1µF capacitor form a high-pass filter with a
cutoff around 1.6Hz, which easily passes the audio frequencies of interest but
filters out DC. The audio signal amplitude was kept within the DRV2605L’s
acceptable range (no more than about 1.8V_peak-to-peak). In practice, our
100% volume test level corresponded to 1.0VRMS (about 2.8Vp-p), and
then scaled down from there for lower percentages. The DRV2605L’s built-in noise
gate was left at the default setting, which ignores any audio below a few
millivolts – this prevents background hiss or very faint sounds from
accidentally triggering the actuator when silence is expected.
- I²C Control and Mode Configuration: The host controller was connected to the DRV2605L’s I²C interface (SCL, SDA). Through I²C commands, the DRV2605L’s registers were configured for Audio-to-Haptic mode. Important register settings included selecting Mode 0x04 (Audio-to-Vibe), enabling LRA drive (as opposed to ERM mode), and enabling analog input with AC-coupling (this involved setting the DRV2605L’s control registers: for example, AC_COUPLE = 1 and N_PWM_ANALOG = 1 in the appropriate control registers). The rated voltage and overdrive clamp were also set for the LRA, but the auto-calibration (described next) can adjust those if needed. Figure 3-1 shows a simplified schematic of the setup, highlighting the connections between the host (application processor), the DRV2605L, and the LRA.
- Auto-Calibration: Before using
Audio-to-Haptic mode, the DRV2605L’s auto-calibration routine for the LRA was
run. This is a one-time (or infrequent) step that helps the driver measure the
LRA’s resonant frequency, rated drive voltage, and other parameters. To do this,
the DRV2605L was put in calibration mode (Mode register = 0x07) and the GO bit
was toggled through I²C. The driver briefly drives the LRA and measures the
response. After a few hundred milliseconds, a status bit indicated the
calibration was complete and successful. Auto-calibration set the designed for
drive parameters (like the effective resistance and back-EMF constants of the
LRA) so that closed-loop control can be accurate for our specific actuator.
Calibration was important for the first use of a new LRA; once calibrated, the
values were stored in registers and used for subsequent Audio-to-Haptic
operation.
- Measurement Instruments: To observe the
haptic behavior, a digital oscilloscope (Rigol DS series) with multiple probes
was used. One differential probe was connected across the LRA terminals to
monitor the voltage being applied to the LRA by the DRV2605L (this
differential voltage correlates with the force output of the LRA). Another
channel was connected to the audio input signal so the relationship between the
audio and the resulting vibration drive can be seen. For evaluating mode
switching, the oscilloscope was set to a slower time base (hundreds of
milliseconds per division) to capture the moments when modes were toggled. For
capturing steady-state waveforms (like the LRA response at a given frequency and
amplitude), a faster time base (microseconds to milliseconds scale) was used to
see the details of the PWM waveform and the envelope.
The DRV2605L is interfaced to an application
processor through I²C (SCL, SDA lines with pull-up resistors). The analog audio
input is fed through a coupling capacitor C(IN) into the IN/TRIG pin (with the
option to short this to ground if not used). The DRV2605L drives the LRA (or ERM)
with a differential output (OUT+ and OUT–); supply decoupling capacitors (C(REG),
C(VDD)) are shown for the regulator and supply rails. The EN pin can be used to
enable/disable the driver (tie high for always on). The 1µF input capacitor creates
a high-pass filter (about 1.6Hz cutoff) with the IN pin impedance, allowing
low-frequency audio to pass while blocking DC.
Using this setup, two main sets of experiments were conducted:
- Steady-State Audio-to-Haptic Performance:
Driving the LRA in Audio-to-Haptic mode at various audio frequencies and
amplitudes, to characterize how the LRA responds.
- Mode Switching Tests: Toggling the
DRV2605L between Audio-to-Haptic mode and real-time playback mode under
different conditions (with and without audio present) to make sure smooth
transitions. In the next section, waveform results for the first set of tests
(Audio-to-Haptic mode performance) are presented.
Initial I²C Configuration
Before operating the DRV2605L, an initial configuration must be applied through the DRV2605LEVM-MD GUI. Follow these steps:
- Open DRV2605LEVM-MD GUI and connect the
EVM through USB.
- Select Import Settings and load the
provided configuration file (initial table.txt).
The following register settings are essential for proper initialization:
Table 3-1 Installation Register
Settings
| Register |
Value |
Description |
| 0x01 |
0x04 |
Mode
(Audio-to-Haptic) |
| 0x03 |
0x06 |
Library
Selection |
| 0x04 |
0x06 |
Waveform
Sequencer 1 |
| 0x0C |
0x00 |
GO |
| 0x11 |
0x00 |
Audio-to-Vibe Control |
| 0x12 |
0x02 |
ATH
Minimum Input Level |
| 0x13 |
0x8D |
ATH
Maximum Input Level |
| 0x14 |
0x4C |
ATH
Minimum Output Drive |
| 0x15 |
0xFF |
ATH
Maximum Output Drive |
| 0x16 |
0x2C |
Rated
Voltage |
| 0x17 |
0x2C |
Overdrive Clamp Voltage |
| 0x1A |
0xB6 |
Feedback
Control (LRA Closed Loop) |
| 0x1B |
0xBB |
Control1
(AC coupling enabled) |
| 0x1C |
0xF5 |
Control2 |
| 0x1D |
0xA3 |
Control3
(Analog Input enabled) |
| 0x1E |
0x20 |
Control4 |
| 0x1F |
0x80 |
Control5 |
| 0x20 |
0x3F |
LRA Open
Loop Period |
These settings make sure of optimized performance,
proper calibration, and mode configuration for Audio-to-Haptic functionality.
Mode-Switching Procedure
After initialization, the DRV2605L can switch
between Audio-to-Haptic mode and the built-in library mode
dynamically. Use the following I²C commands through GUI's Register Write feature or
microcontroller I²C script:
- Switch to Audio-to-Haptic Mode:
Write Register 0x01 = 0x04
- Switch to Built-in Library Mode (Gaming
mode):
Write Register 0x01 = 0x00
Write Register 0x0C = 0x01 //Trigger vibration event
To make sure of smooth operation and avoid
continuous triggering, follow this timing recommendation:
- Wait approximately 20ms after triggering
the vibration event. If no further events occur:
Write Register 0x01 = 0x04 // Return to Audio-to-Haptic mode
This timing makes sure the device transitions
smoothly back to continuous audio-derived haptic feedback when explicit events
cease.
GUI Usage (DRV2605LEVM-MD)
- Open the DRV2605LEVM-MD GUI after
connecting the evaluation board.
- Import the provided initial configuration
(initial table.txt) using the GUI’s Import Settings button.
- To switch modes manually:
- Use the Write
option in GUI:
- Enter Reg= 0x01,
Val = 0x04 for Audio-to-Haptic mode.
- Enter Reg= 0x01,
Val = 0x00 for Built-in Library mode.
- Confirm and execute by
clicking the Write button.
This provides a straightforward way to confirm proper DRV2605L operation and quickly evaluate haptic feedback performance under different modes.
Example I²C Script for Automated Testing
For quick and automated testing, you can implement
the following script through your host microcontroller (pseudo-code example):
// Initialize DRV2605L (load settings from initial table)
I2C_Write(0x5A, 0x01, 0x04); // ATH mode by default
// When gaming event occurs (user presses button or game triggers event)
I2C_Write(0x5A, 0x01, 0x00); // Library mode
I2C_Write(0x5A, 0x0C, 0x01); // Trigger haptic event
Delay(20ms); // Allow the event vibration to
complete
// If no further events, revert back to ATH
I2C_Write(0x5A, 0x01, 0x04); // Audio-to-Haptic mode
This script can be integrated into gaming handheld firmware for effective and seamless haptic experience control.