Hi!
One of the most common questions when using haptics drivers is related to the different modes and configurations that our devices support. In general, all our haptics drivers solutions support open and closed loop modes. Depending of the actuator load and the end application, the user must select one or another. Here there are some considerations and advantages when using closed or open loop.
- Closed-loop.
In some of the haptics devices, it is also named as smart-loop due to the advanced algorithms and configurations that involve the closed-loop system. A closed-loop mode consists in a device configuration based on the connected actuator. The internal algorithm optimizes the device parameters for a resonance tracking (in case of an LRA load), automatic level calibration, overdrive and braking levels, diagnostics routines, etc.
This closed loop mode is normally suggested for LRA loads. It is important to remember that the LRA requires of a resonance frequency to work. This frequency allows to reach the optimal value. Any variation of around 5Hz from the resonance frequency will cause a rapid drop in vibration performance. The smart-loop architecture allows to maintain the optimal frequency value even if there are tolerance values in the LRA specifications.
In both, the LRA and ERM loads, the overdrive and breaking algorithms allow to have the best actuator performance. The closed-loop feedback determines how high or how low must be the output voltage to accelerate or decelerate the actuator.
- Open-loop.
Contrary to the closed-loop system, the open-loop mode doesn't have a direct feedback from the driver output. This mode is not useful for cases where the user requires of a diagnostic or an automatic calibration of the output level based on the actuator characteristics. However, there are some cases where the user does't require to perform an automatic calibration (which usually takes some seconds) in the application. So, the user may define the device parameters (rated voltage, brake and overdrive time, LRA period, etc) based on the experience and testing of many LRA and ERM loads.
When the auto-calibration is not required in production, the fixed settings procedure is suggested to perform with an open-loop mode. This procedure is applied before the manufacturing stage. It consists in taking many LRA or ERM loads and configure them with auto-calibration. After a minimum of 10 units tested, the user can take an average value and fix it for production purposes. In that way, the application/product won't expend some time to calibrate the actuator when it is powered on.
- Registers configuration examples.
Here there are some examples of registers configuration for closed and open loop modes.
DRV2605L LRA mode. Closed loop. Auto-calibration:
Exported at :5/13/2019 10:37:21 AM ========Register Dump Start======== Reg:[0x0] = 0xe0 Status Reg:[0x1] = 0x7 Mode Reg:[0x2] = 0x0 Real-Time Playback Input Reg:[0x3] = 0x6 Library Selection Reg:[0x4] = 0x4 Waveform Sequencer 1 Reg:[0x5] = 0x0 Waveform Sequencer 2 Reg:[0x6] = 0x0 Waveform Sequencer 3 Reg:[0x7] = 0x0 Waveform Sequencer 4 Reg:[0x8] = 0x0 Waveform Sequencer 5 Reg:[0x9] = 0x0 Waveform Sequencer 6 Reg:[0xa] = 0x0 Waveform Sequencer 7 Reg:[0xb] = 0x0 Waveform Sequencer 8 Reg:[0xc] = 0x01 GO Reg:[0xd] = 0x0 OverDrive Time Offset Reg:[0xe] = 0x0 Sustain Time Offset, Positive Reg:[0xf] = 0x0 Sustain Time Offset, Negative Reg:[0x10] = 0x0 Break Time Offset Reg:[0x11] = 0x5 Audio-to-Vibe Control Reg:[0x12] = 0x19 Audio-to-Vibe Minimum Input Level Reg:[0x13] = 0x64 Audio-to-Vibe Maximum Input Level Reg:[0x14] = 0x19 Audio-to-Vibe Minimum Output Drive Reg:[0x15] = 0xff Audio-to-Vibe Maximum Output Drive Reg:[0x16] = 0x3d Rated Voltage Reg:[0x17] = 0xaa Overdrive Clamp Voltage Reg:[0x18] = 0x6 Auto Calibration Compensation Result Reg:[0x19] = 0xc6 Auto Calibration Back-EMF Result Reg:[0x1a] = 0xa6 Feedback Control Reg:[0x1b] = 0x93 Control1 Reg:[0x1c] = 0xf5 Control2 Reg:[0x1d] = 0x80 Control3 Reg:[0x1e] = 0x20 Control4 Reg:[0x1f] = 0x40 Control5 Reg:[0x20] = 0x30 LRA Open Loop Period Reg:[0x21] = 0xce VBAT Voltage Monitor Reg:[0x22] = 0x3c LRA Resonance Period ========Register Dump End========
DRV2605L ERM mode. Closed loop. Auto-calibration:
Exported at :5/13/2019 10:37:21 AM ========Register Dump Start======== Reg:[0x0] = 0xe0 Status Reg:[0x1] = 0x7 Mode Reg:[0x2] = 0x0 Real-Time Playback Input Reg:[0x3] = 0x6 Library Selection Reg:[0x4] = 0x4 Waveform Sequencer 1 Reg:[0x5] = 0x0 Waveform Sequencer 2 Reg:[0x6] = 0x0 Waveform Sequencer 3 Reg:[0x7] = 0x0 Waveform Sequencer 4 Reg:[0x8] = 0x0 Waveform Sequencer 5 Reg:[0x9] = 0x0 Waveform Sequencer 6 Reg:[0xa] = 0x0 Waveform Sequencer 7 Reg:[0xb] = 0x0 Waveform Sequencer 8 Reg:[0xc] = 0x01 GO Reg:[0xd] = 0x0 OverDrive Time Offset Reg:[0xe] = 0x0 Sustain Time Offset, Positive Reg:[0xf] = 0x0 Sustain Time Offset, Negative Reg:[0x10] = 0x0 Break Time Offset Reg:[0x11] = 0x5 Audio-to-Vibe Control Reg:[0x12] = 0x19 Audio-to-Vibe Minimum Input Level Reg:[0x13] = 0x64 Audio-to-Vibe Maximum Input Level Reg:[0x14] = 0x19 Audio-to-Vibe Minimum Output Drive Reg:[0x15] = 0xff Audio-to-Vibe Maximum Output Drive Reg:[0x16] = 0x3d Rated Voltage Reg:[0x17] = 0xaa Overdrive Clamp Voltage Reg:[0x18] = 0x6 Auto Calibration Compensation Result Reg:[0x19] = 0xc6 Auto Calibration Back-EMF Result Reg:[0x1a] = 0x26 Feedback Control Reg:[0x1b] = 0x93 Control1 Reg:[0x1c] = 0xf5 Control2 Reg:[0x1d] = 0x80 Control3 Reg:[0x1e] = 0x20 Control4 Reg:[0x1f] = 0x40 Control5 Reg:[0x20] = 0x30 LRA Open Loop Period Reg:[0x21] = 0xce VBAT Voltage Monitor Reg:[0x22] = 0x3c LRA Resonance Period ========Register Dump End========
DRV2605L ERM mode. Open loop. Library Effect:
Exported at :7/5/2019 12:24:02 PM ========Register Dump Start======== Reg:[0x0] = 0xe4 Status Reg:[0x1] = 0x0 Mode Reg:[0x2] = 0x0 Real-Time Playback Input Reg:[0x3] = 0x1 Library Selection Reg:[0x4] = 0x1b Waveform Sequencer 1 Reg:[0x5] = 0x0 Waveform Sequencer 2 Reg:[0x6] = 0x0 Waveform Sequencer 3 Reg:[0x7] = 0x0 Waveform Sequencer 4 Reg:[0x8] = 0x0 Waveform Sequencer 5 Reg:[0x9] = 0x0 Waveform Sequencer 6 Reg:[0xa] = 0x0 Waveform Sequencer 7 Reg:[0xb] = 0x0 Waveform Sequencer 8 Reg:[0xc] = 0x0 GO Reg:[0xd] = 0x0 OverDrive Time Offset Reg:[0xe] = 0x0 Sustain Time Offset, Positive Reg:[0xf] = 0x0 Sustain Time Offset, Negative Reg:[0x10] = 0x0 Break Time Offset Reg:[0x11] = 0x5 Audio-to-Vibe Control Reg:[0x12] = 0x19 Audio-to-Vibe Minimum Input Level Reg:[0x13] = 0x64 Audio-to-Vibe Maximum Input Level Reg:[0x14] = 0x19 Audio-to-Vibe Minimum Output Drive Reg:[0x15] = 0xff Audio-to-Vibe Maximum Output Drive Reg:[0x16] = 0x53 Rated Voltage Reg:[0x17] = 0xa4 Overdrive Clamp Voltage Reg:[0x18] = 0x6 Auto Calibration Compensation Result Reg:[0x19] = 0xf2 Auto Calibration Back-EMF Result Reg:[0x1a] = 0x27 Feedback Control Reg:[0x1b] = 0x93 Control1 Reg:[0x1c] = 0xf5 Control2 Reg:[0x1d] = 0xa1 Control3 Reg:[0x1e] = 0x20 Control4 Reg:[0x1f] = 0x40 Control5 Reg:[0x20] = 0x30 LRA Open Loop Period Reg:[0x21] = 0xce VBAT Voltage Monitor Reg:[0x22] = 0x36 LRA Resonance Period ========Register Dump End========