8.5.6 Auto Calibration Procedure
The calibration engine requires a number of bits as inputs before the engine can be executed (see Figure 25). When the inputs are configured, the calibration routine can be executed. After calibration execution occurs, the output parameters are written over the specified register locations. Figure 25 shows all of the required inputs and generated outputs. To ensure proper auto-resonance operation, the LRA actuator type requires more input parameters than the ERM. The LRA parameters are ignored when the device is in ERM mode.
Figure 25. Calibration-Engine Functional Diagram
Variation occurs between different actuators even if the actuators are of the same model. To ensure optimal results, TI recommends that the calibration routine be run at least once for each actuator. The OTP feature of the DRV2605L device can store the calibration values. Because of the stored values, the calibration procedure does not have run every time. Having a single set of calibration register values that can be loaded during the system initialization is possible.
The following instructions list the step-by-step register configuration for auto-calibration. For additional details see the Register Map section.
- Apply the supply voltage to the DRV2605L device, and pull the EN pin high. The supply voltage should allow for adequate drive voltage of the selected actuator.
- Write a value of 0x07 to register 0x01. This value moves the DRV2605L device out of STANDBY and places the MODE[2:0] bits in auto-calibration mode.
- Populate the input parameters required by the auto-calibration engine:
- ERM_LRA — selection will depend on desired actuator.
- FB_BRAKE_FACTOR[2:0] — A value of 2 is valid for most actuators.
- LOOP_GAIN[1:0] — A value of 2 is valid for most actuators.
- RATED_VOLTAGE[7:0] — See the Rated Voltage Programming section for calculating the correct register value.
- OD_CLAMP[7:0] — See the Overdrive Voltage-Clamp Programming section for calculating the correct register value.
- AUTO_CAL_TIME[1:0] — A value of 3 is valid for most actuators.
- DRIVE_TIME[3:0] — See the Drive-Time Programming for calculating the correct register value.
- SAMPLE_TIME[1:0] — A value of 3 is valid for most actuators.
- BLANKING_TIME[3:0] — A value of 1 is valid for most actuators.
- IDISS_TIME[3:0] — A value of 1 is valid for most actuators.
- ZC_DET_TIME[1:0] — A value of 0 is valid for most actuators.
- Set the GO bit (write 0x01 to register 0x0C) to start the auto-calibration process. When auto calibration is complete, the GO bit automatically clears. The auto-calibration results are written in the respective registers as shown in Figure 25.
- Check the status of the DIAG_RESULT bit (in register 0x00) to ensure that the auto-calibration routine is complete without faults.
- Evaluate system performance with the auto-calibrated settings. Note that the evaluation should occur during the final assembly of the device because the auto-calibration process can affect actuator performance and behavior. If any adjustment is required, the inputs can be modified and this sequence can be repeated. If the performance is satisfactory, the user can do any of the following:
- Repeat the calibration process upon subsequent power ups.
- Store the auto-calibration results in host processor memory and rewrite them to the DRV2605L device upon subsequent power ups. The device retains these settings when in STANDBY mode or when the EN pin is low.
- Program the results permanently in nonvolatile, on-chip OTP memory. Even when a device power cycle occurs, the device retains the auto-calibration settings. See the Programming On-Chip OTP Memory section for additional information.